DashScope Tool Use
Give a DashScope qwen-plus agent web search tools and stream sync and async responses.
"""
Dashscope Tool Use
==================
Cookbook example for `dashscope/tool_use.py`.
"""
import asyncio
from agno.agent import Agent
from agno.models.dashscope import DashScope
from agno.tools.websearch import WebSearchTools
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=DashScope(id="qwen-plus"),
tools=[WebSearchTools()],
markdown=True,
)
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
# --- Sync + Streaming ---
agent.print_response("What's happening in AI today?", stream=True)
# --- Async + Streaming ---
async def main():
await agent.aprint_response(
"What's the latest news about artificial intelligence?", stream=True
)
asyncio.run(main())Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno ddgs openaiConfigure regional DashScope access
Activate Alibaba Cloud Model Studio and create an API key for your region and workspace. Agno's default endpoint is Singapore: https://dashscope-intl.aliyuncs.com/compatible-mode/v1.
export DASHSCOPE_API_KEY="your_singapore_api_key"For another region or a workspace-specific domain, pass the matching base_url to DashScope. Use the OpenAI-compatible endpoint guide to match the URL, key and available model. The documented Singapore default remains functional.
Run the example
Save the code above as tool_use.py, then run:
python tool_use.pyFull source: cookbook/90_models/dashscope/tool_use.py