1. Agent架构图例

请添加图片描述

一句话概括工作流程:用户提问 → Agent 构造上下文 → LLM 判断是否用工具 → Agent 执行工具 → 结果回注 → LLM 生成最终答案

2. 工作流程文字说明

2.1. 输入 User Prompt

用户输入自己的问题,如:女朋友肚子疼怎么办?

  • 流程开始
  • 输入是自然语言

2.2. 构建Prompt

Agent 会将用户输入加工为一个完整的 Prompt,其中包含:

  • System Prompt 系统提示词,角色设定
  • Memory 历史对话信息
  • 用户的当前问题
  • Tool Schema 可用工具列表

目的是让LLM知道:

  • 自己是谁
  • 能做什么(有哪些工具)
  • 当前任务是什么

2.3. 调用 LLM(模型推理)

Agent 把构造好的 Prompt 发给大模型,模型会返回两种可能:

  • 普通文本回答:多喝热水
  • Tool Call(结构化输出):
{
  "type": "call",
  "name": "web_browse",
  "args": {
    "url": "https://xxx.com"
  }
}

注意:模型不会真的调用工具,只是“建议调用”

2.4. Tool Call 解析(Agent 决策)

Agent 接收到 LLM 输出后,会做:

  • 判断是不是 tool call
  • 解析 JSON / function call
  • 提取:
    • 工具名(name)
    • 参数(args)
  • 参数校验(防止乱调用)

注意:Agent 才是“执行者”,模型只是“建议者”

2.5. 调用 MCP Server(执行工具)

如果需要调用工具:Agent 会通过 MCP 协议发送请求(本质类似:HTTP API)

Tool: web_browse
Args: { url: xxx }

2.6. MCP Server 返回结果(Tool Result)

工具执行完成后返回数据,可能是:

  • JSON(最常见)
  • HTML(网页内容)
  • Text(文本)
  • Binary(文件)

例如:

{
  "title": "...",
  "content": "..."
}

2.7. 结果注入上下文(Context Injection)

Agent 不会直接把结果给用户,而是:把 Tool Result 加入 Prompt

  • 用户问题 + 工具返回结果

然后重新组织成新的输入给 LLM (关键机制),LLM 必须“看到工具结果”才能生成正确答案

2.8. 再次调用 LLM(生成最终回答)

Agent 再次调用模型:

  • 输入
    • 原问题
    • 工具结果
  • 输出
    • 更准确、更有依据的回答

例如:

根据查询结果,可能是胃部不适,建议……

2.9. 返回最终答案给用户

Agent 将模型最终生成的回答返回给用户

  • 流程结束

3. 流程内可多轮循环

如:LLM → Tool → LLM → Tool → LLM …

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐