跳转到主要内容
Dedalus 帮助你构建和交付具备以下特性的智能体工作流:
  • 与提供商无关:通过一个统一的 应用程序编程接口 API 即可使用 OpenAI、Anthropic、Google、xAI、DeepSeek 等多种服务。
  • 原生支持 tool 和 模型上下文协议 (MCP):让模型调用本地函数和托管的 MCP 服务器。
  • 可直接用于生产环境:支持流式传输、结构化输出、路由/交接以及运行时策略。

你想要构建什么?

安装

uv pip install dedalus-labs
## 设置 API 密钥
控制台 中获取 API 密钥,并将其设置为环境变量:
export DEDALUS_API_KEY="your-api-key"
或者使用 .env 文件:
DEDALUS_API_KEY=your-api-key

你的第一个请求

让我们一步一步来。
### 1) 与模型对话
import asyncio
from dedalus_labs import AsyncDedalus, DedalusRunner
from dotenv import load_dotenv

load_dotenv()

async def main():
    client = AsyncDedalus()
    runner = DedalusRunner(client)

    response = await runner.run(
        input="影响天气模式的关键因素有哪些?",
        model="anthropic/claude-opus-4-6",
    )

    print(response.final_output)

if __name__ == "__main__":
    asyncio.run(main())
### 2) 添加一个 MCP 服务器
这里我们接入一个常用的 MCP 服务器,并让模型调用它。
import asyncio
from dedalus_labs import AsyncDedalus, DedalusRunner
from dotenv import load_dotenv

load_dotenv()

async def main():
    client = AsyncDedalus()
    runner = DedalusRunner(client)

    response = await runner.run(
        input="What's the weather forecast for San Francisco this week?",
        model="anthropic/claude-opus-4-6",
        mcp_servers=["windsornguyen/open-meteo-mcp"],  # 通过 Open-Meteo 获取天气预报
    )

    print(response.final_output)

if __name__ == "__main__":
    asyncio.run(main())
### 3) 添加本地工具
使用类型注解和文档字符串定义一个函数,然后将其传递给 runner.run()。软件开发工具包(SDK)会自动提取该函数的 schema,并在模型决定调用该工具时负责执行。
import asyncio
from dedalus_labs import AsyncDedalus, DedalusRunner
from dotenv import load_dotenv

load_dotenv()

def as_bullets(items: list[str]) -> str:
    """Format items as a bulleted list."""
    return "\n".join(f"• {item}" for item in items)

async def main():
    client = AsyncDedalus()
    runner = DedalusRunner(client)

    response = await runner.run(
        input=(
            "获取旧金山的 7 天天气预报,"
            "然后使用 as_bullets 将每日天气状况格式化为项目符号。"
        ),
        model="anthropic/claude-opus-4-6",
        mcp_servers=["windsornguyen/open-meteo-mcp"],
        tools=[as_bullets],
    )

    print(response.final_output)

if __name__ == "__main__":
    asyncio.run(main())
### 4) 流式传输的输出
import asyncio
from dedalus_labs import AsyncDedalus, DedalusRunner
from dedalus_labs.utils.stream import stream_async
from dotenv import load_dotenv

load_dotenv()

async def main():
    client = AsyncDedalus()
    runner = DedalusRunner(client)

    stream = runner.run(
        input="用一段话解释天气预报的工作原理,边写边进行流式传输。",
        model="anthropic/claude-opus-4-6",
        stream=True,
    )

    await stream_async(stream)

if __name__ == "__main__":
    asyncio.run(main())

后续步骤

深入了解工具 · MCP 服务器 · 结构化输出 · 流式传输

获取最新的 SDK

通过 模型上下文协议 (MCP) 将 以编程方式连接这些文档 到 Claude、VSCode 等,以获取实时解答。
Last modified on March 10, 2026