跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

大模型 AI Agent 实现 Action 的机制与流程详解

深入解析大模型 AI Agent 如何通过 ReAct 模式执行 Action。涵盖 TAO(思考、行动、观察)循环原理,系统提示词设计,工具调用参数的结构化解析方法,以及通过有监督微调(SFT)增强 Agent 工具使用能力的技术细节。同时探讨了实施中的幻觉问题、错误处理及最佳实践,为构建可靠的智能体应用提供理论支撑与实操指南。

虚拟内存发布于 2025/2/6更新于 2026/7/2346 浏览
大模型 AI Agent 实现 Action 的机制与流程详解

大模型 AI Agent 实现 Action 的机制与流程详解

智能体(Agent)的表现能力高度依赖于底座大模型。如果你想做 AI 智能体方向的产品,必须对智能体运转的原理有大致了解,否则项目很可能在中期遇到瓶颈。Agent 有多种实现模式,其中 ReAct 模式是最早出现且目前使用最广泛的模式。本文将深入介绍 Agent 的组成部分、Action 的执行机制以及其背后的技术原理。

Agent 组成部分

ReAct 模式的典型流程可以用一个循环来描述:思考(Thought)→ 行动(Action)→ 观察(Observation),简称 TAO 循环。

  • 思考(Thought):和人一样,面对一个问题,LLM 需要进行深入的推理。这是一个推理步骤,它确定了 LLM 将如何解决问题并确定要采取的行动。基于思考,LLM 决定下一步操作。
  • 行动(Action):确定了思考的方向后,执行相应的措施或调用特定任务。例如调用 Wikipedia API 搜索数据,或查询天气接口。根据行动结果提供的新信息,LLM 进入观察阶段。
  • 观察(Observation):行动之后,必须仔细观察结果。这一步是检验行动是否有效,是否接近了问题的答案。如果 LLM 认为得到了答案,则结束问题;否则根据观察,LLM 再次产生新的想法,过程重复直到得到最终答案。

TAO 循环示意图如下所示:

[用户输入] -> [Thought]
    |
    v
[Action] -> [工具调用] -> [Observation]
    ^                    |
    |____________________|
         (循环)

实操案例:天气查询与穿衣建议

为了更直观地理解,我们构建一个包含两个工具的示例场景:

  1. get_current_weather:通过 API 查询给定城市的天气信息(温度、体感温度、湿度、风速)。输入参数为城市位置。
  2. get_current_time:查询当前时间。无输入参数。

用户输入:"今天我将从北京飞往三亚,请根据天气情况给我定制穿衣计划。"

TAO 循环真实案例:

{'role': 'user', 'content': '\nQuestion:今天我将从北京飞往三亚,请根据天气情况给我定制穿衣计划'},
{'role': 'assistant', 'content': 'Thought: 需要获取北京和三亚的实时天气信息。\nAction: get_current_weather\nAction Input: {"city_name": "北京"}'}, 
{'role': 'user', 'content': '\nObservation:{"城市位置": "北京", "温度": "23.94 C°", "体感温度": "23.28 C°", "湿度": "34%", "风速": "2.82 m/s"}'}, 
{'role': 'assistant', 'content': 'Thought: 需要获取三亚的实时天气信息。\nAction: get_current_weather\nAction Input: {"city_name": "三亚"}'},
{'role': 'user', 'content': '\nObservation:{"城市位置": "三亚", "温度": "30.09 C°", "体感温度": "36.28 C°", "湿度": "74%", "风速": "4 m/s"}'},
{'role': 'assistant', 'content': 'Thought: 根据获取到的天气信息,可以为从北京前往三亚的旅程制定穿衣计划。... Final Answer: ...'}

可以发现 TAO 循环的具体实现形式仍然是问答的形式。大模型通过思考了解需要分别调用工具查询北京和三亚的天气,并且最后在 Final Answer 提出着装建议。

Agent 如何进行 Action

在上述例子中,Observation 为工具 API 调用的结果。那么大模型是如何形成 TAO 循环、选择正确的 Action 并识别出 Action Input 的呢?这主要依赖于提示工程以及输出数据结构化。

提示工程

首先,需要构造系统提示词(system_prompt),它是模型输入的一部分。这里套用 ReAct 中的提示词模板,并结合上述两种工具进行设计:

Answer the following questions as best you can. You have access to the following tools:

get_current_weather: Call this tool to interact with the weather query API. What is the weather query API useful for? Based on the given city, obtain weather information including temperature, feels-like temperature, humidity, and wind speed. Parameters: [{'name': 'city_name', 'description': 'City name', 'required': True, 'schema': {'type': 'string'}}] Format the arguments as a JSON object.

get_current_time: Call this tool to interact with the current time API. What is the current time API useful for? Get the current system time. Parameters: [] Format the arguments as a JSON object.

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [get_current_weather,get_current_time]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can be repeated zero or more times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

Begin!

在系统提示词中,已将各个工具及其输入输出定义好,并明确告知大模型需按照 TAO 模式输出结果。光有 TAO 的能力还不够,工具调用输入参数的格式和数据类型有严格要求,稍错即导致调用失败。因此,设计系统提示词后,还需要解析大模型的输出内容,提取出工具 API 的输入参数。

结构化解析

在示例中,大模型需要调用查询天气工具接口。由于大模型训练数据中存在相关语料,输出可能存在幻觉问题。因此需要解析大模型输出,提取 Action 和 Action Input。

在实际工程中,通常使用正则表达式或专门的 JSON 解析库(如 json_repair)来处理模型输出的非标准 JSON。对于复杂业务场景,大模型可能会选错工具或解析报错。此时需要考虑以下优化策略:

  1. 工具描述优化:确保工具名称和描述清晰无歧义。
  2. Few-Shot 示例:在 Prompt 中加入成功的调用示例,引导模型遵循格式。
  3. 错误重试机制:当解析失败时,捕获异常并将错误信息反馈给模型,让其修正输出。

此外,应用效果不佳时也可以尝试微调。单纯预训练和指令微调就算设计提示工程也不能完全实现复杂的 TAO 循环,Agent 能力也依赖于大模型的训练。

为什么 Agent 能够进行 Action

Agent 能力的增强与有监督微调(SFT)类似,需要构建基于 Agent 数据的多轮对话问答对。下面提供一个 Agent 能力微调数据示例,格式为 ShareGPT:

{
    "conversations": [
      {
        "from": "human",
        "value": "你好,我出生于 1990 年 5 月 15 日。你能告诉我我今天几岁了吗?"
      },
      {
        "from": "function_call",
        "value": "{\"name\": \"calculate_age\", \"arguments\": {\"birthdate\": \"1990-05-15\"}}"
      },
      {
        "from": "observation",
        "value": "{\"age\": 31}"
      },
      {
        "from": "gpt",
        "value": "根据我的计算,你今天 31 岁了。"
      }
    ],
    "tools": "[{\"name\": \"calculate_age\", \"description\": \"根据出生日期计算年龄\", \"parameters\": {\"type\": \"object\", \"properties\": {\"birthdate\": {\"type\": \"string\", \"description\": \"出生日期以 YYYY-MM-DD 格式表示\"}}, \"required\": [\"birthdate\"]}}]"
  }

在 ToB 业务场景中,可针对系统内部接口准备数据开展 Agent 能力微调。推荐使用 llama_factory,里面已定义好数据格式,并支持市面上主流 LLM。按照标准去准备数据,就可以增强 Agent 能力。

实施最佳实践与常见问题

1. 幻觉控制

大模型在生成 Action Input 时容易产生幻觉,特别是对于数值型参数或特定枚举值。解决方案包括:

  • 在 Prompt 中明确约束参数范围。
  • 增加校验层,在调用 API 前验证参数合法性。
  • 使用函数调用(Function Calling)专用模型,而非通用文本生成模型。

2. 并发与延迟

Agent 可能需要多次调用工具才能完成任务,这会显著增加响应延迟。优化方法:

  • 并行调用不依赖的工具(如同时查询两地天气)。
  • 设置超时熔断机制,防止死循环。
  • 流式输出中间状态,提升用户体验。

3. 安全与权限

Agent 拥有执行工具的能力,存在安全风险。必须注意:

  • 限制 Agent 可访问的工具范围,避免敏感操作。
  • 对用户输入进行过滤,防止注入攻击。
  • 记录所有 Action 日志,便于审计和回溯。

总结

本文详细解析了大模型 AI Agent 如何通过 ReAct 模式执行 Action。核心在于 TAO 循环的设计、系统提示词的精准构造、输出内容的结构化解析以及通过 SFT 微调增强工具使用能力。在实际落地过程中,还需重点关注幻觉控制、延迟优化及安全性问题。随着技术的演进,Agent 将在更多复杂场景中发挥关键作用,成为连接大模型能力与实际业务价值的桥梁。

目录

  1. 大模型 AI Agent 实现 Action 的机制与流程详解
  2. Agent 组成部分
  3. 实操案例:天气查询与穿衣建议
  4. Agent 如何进行 Action
  5. 提示工程
  6. 结构化解析
  7. 为什么 Agent 能够进行 Action
  8. 实施最佳实践与常见问题
  9. 1. 幻觉控制
  10. 2. 并发与延迟
  11. 3. 安全与权限
  12. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Node.js 最新安装教程及环境变量配置
  • CentOS 系统上实现 Python 定时邮件任务的五种方案
  • 基于 LLaMA-Factory 和 LoRA 在 AutoDL 上微调 GPT-OSS-20B 模型
  • 前端营销实战:业务理解与技术架构解析
  • tksheet完整指南:Python Tkinter表格组件的终极解决方案
  • 相干伊辛机在医疗与医疗 AI 领域的应用前景
  • WebPShop 插件详解:Photoshop 处理 WebP 图像完整指南
  • SpringBoot+Vue+Java 企业员工信息管理系统(含工资考勤)
  • Python 转行程序员:决策逻辑与学习路径指南
  • 深入理解 HTML5 Web Workers:提升网页性能的关键技术
  • OpenClaw 框架深度解析:AI Agent 的安全挑战与演进路径
  • 使用 Z-Image-Turbo 进行本地 AI 绘画:16GB 显存支持与中英提示词
  • C/C++ const 关键字详解:变量、指针、函数与类用法
  • Stable Diffusion v1.5 故障艺术与赛博朋克融合效果生成指南
  • Microi 吾码开源低代码平台部署与实战指南
  • AI Copilot 代码推荐出错率高?8 项调试技巧提升准确率
  • FPGA 实现任意角度图像旋转原理
  • 自然语言处理在金融领域的应用与实战
  • 基于 Chainlit 的 Phi-3 模型插件开发:思维链可视化与 Token 统计
  • Golang Gin 框架中的表单处理与数据绑定

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online