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

你想要构建什么?

与模型聊天

发送一个 prompt,并从任意提供商/模型获得响应。

为模型装备工具

让模型调用你实现的带类型标注的 Python/TS 函数。

流式输出智能体结果

在生成时实时打印响应(非常适合 UI/CLI)。

添加 MCP 服务器

用一行代码即可连接托管的 MCP 服务器。

获取可靠的 JSON

根据模式验证模型输出(Pydantic/Zod)。

跨模型路由

提供多个模型;智能体可以按阶段进行路由/切换。

安装

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

Python 软件开发工具包(SDK)

dedalus-labs/dedalus-sdk-python

TypeScript 软件开发工具包(SDK)

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