Skip to main content

构建第一个 Agent

本指南构建一个简单的 Agent,它可以使用工具来回答问题。你将看到完整的循环:用户消息 → LLM 推理 → 工具调用 → 工具结果 → 最终响应。

定义工具

工具是用 @tool 装饰的异步函数:
要点:
  • 工具必须是 async def
  • 文档字符串成为 LLM 看到的工具描述
  • Best Practices 部分会被注入到系统提示词中作为使用指南
  • 返回类型注解告诉框架期望什么

定义 Agent

要点:
  • @llm_chat 创建多轮 Agent(相对于单次调用的 @llm_function
  • toolkit=[...] 让 Agent 可以使用工具
  • stream=True 启用流式响应
  • history 参数名是特殊的——框架通过它管理对话状态
  • 文档字符串就是 Agent 的系统提示词

运行并消费事件

@llm_chat 返回 ReactOutput 的异步生成器——包含响应片段或生命周期事件:

底层发生了什么

这就是 ReAct 循环——推理、行动、观察、重复。框架处理所有这些。你只定义了一个函数签名和一个工具。

添加更多工具

下一步

多轮对话

管理更长的对话,包括历史和流式输出。

为什么这样设计?

理解为什么 LLM 调用是函数,而不是链。