论文名称:Agent models: Internalizing Chain-of-Action Generation into Reasoning models
论文链接:https://arxiv.org/abs/2503.06580
机构:北京交通大学
Github代码链接:https://github.com/ADaM-BJTU/AutoCoA
简介
这篇论文提出了一个自动行动链生成(AutoCoA)框架,目的是为了增强推理模型的多轮工具使用能力,尤其是那些需要长期推理和多步骤操作的任务,效果会非常好。
通篇看下来,工作还是非常扎实的,所以篇幅有点长,可以耐心看完,一起交流学习经验。
CoT vs CoA
在正式介绍论文开始,先说明下CoT和CoA的区别,有助于理解论文的内容,CoT大家应该都很熟悉了,就是你用DeepSeek这种模型的时候,模型的思考过程,但CoA对大部分人应该就很陌生了,主要是在Agent应用中用到,因为有动作(Action),涉及到使用具体的工具(Tool)。论文里面的图2,也展示了 CoT(Level 2)和 CoA(Level 3)的区别。

列一张表格说明下区别:
| 维度 | Chain-of-Thought (CoT) | Chain-of-Action (CoA) |
|---|---|---|
| 定义 | 思维链,强调模型通过分步推理生成中间逻辑步骤,逐步推导答案。 | 行动链,动态交织思维(Thought)与行动(Action),生成包含工具调用、环境交互的序列化动作序列。 |
| 核心目标 | 增强模型的逻辑推理透明度,解决复杂推理问题(如数学、逻辑问答)。 | 赋予模型自主决策何时及如何使用工具/环境的能力,实现推理与行动的无缝衔接,解决需要多步工具交互的任务。 |
| 交互方式 | 纯文本推理,依赖内部知识,无需外部工具或环境交互。 | 结合内部推理与外部工具调用(如API查询、计算器、知识库检索等),需与真实/数字环境互动。 |
| 决策自主性 | 仅决定“如何思考”,不涉及工具使用的触发或执行。 | 主动判断“是否需要行动”、“使用什么工具”、“如何执行动作”,具备工具使用的自主决策能力。 |
| 典型输出 | 推理过程文本(如“首先计算A,然后比较B和C,最后得出结论…”)。 | 包含动作指令的序列(如“调用天气API获取某地温度→根据温度推荐衣物→生成建议文本”)。 |
| 应用场景 | 数学题解答、逻辑推理、常识问答等纯文本推理任务。 | 开放域问答(需外部知识)、任务型对话(需调用工具)、机器人控制(需物理环境交互)等。 |
Agent Model
作者定义了Agent Model,它的推理过程可以想象成一个 AI助手帮你解决问题的过程,它需要 边想边做,中间可能还要用工具(比如查资料、调用 APP)。这个过程可以用 POMDP(部分可观察马尔可夫决策过程)来描述,核心是说:AI助手每次做决策时,既要想下一步该 “思考” 还是该 “行动”,又要根据环境反馈(比如工具返回的结果)调整策略。

POMDP
状态(State)
有个状态(State)的概念,可以理解成当前已知的所有信息,论文里的状态公式可以拆解为三个:
-
s0s_{0}s0(初始环境状态):问题开始时的“初始条件”,比如你想订外卖时的时间(晚上8点)、位置(公司地址)。
-
tctctc(任务上下文):用户的具体问题,比如“我想吃辣的,推荐附近的餐厅”。
-
x1:nx_{1: n}x1:n(历史生成序列):之前已经做过的事和得到的结果,比如“思考了‘附近有哪些川菜馆’→调用外卖APP搜索‘川菜 辣’→收到APP返回的餐厅列表”。

类比:就像你打开外卖APP时,APP知道你在哪、你说了“想吃辣”,还记录了你之前搜过什么、看过哪些餐厅的评价。
三种操作模式
每次决策时,AI助手可以选以下三种操作模式:
-
⟨think⟩(思考):纯内部推理,比如分析“用户要吃辣,可能需要排除不辣的菜”、“这家餐厅评分高但距离远,是否值得选”。 -
⟨action⟩(行动):调用外部工具,比如“打开地图查餐厅位置”、“调用计算器算配送时间和价格”、“搜索用户评价”。 -
⟨answer⟩(回答):给出最终结果,比如“推荐XX川菜馆,预计30分钟送达”。
关键:
-
选
⟨action⟩时,需要明确“用什么工具”(比如选外卖APP的“搜索”功能)和“怎么用”(比如搜索参数“川菜 辣 3公里内”),然后工具会返回结果(比如餐厅列表),这个结果会作为后续决策的依据。 -
整个过程是“思考→行动→观察结果→再思考→再行动……”的循环,直到能回答问题。
策略(Policy)
策略 πθ\pi_{\theta}πθ 就是AI助手的“决策规则”,它根据当前状态(已知信息)决定下一步该选⟨think⟩、⟨action⟩还是⟨answer⟩。
比如:
-
如果发现缺少关键信息(比如不知道餐厅地址),就选
⟨action⟩调用地图工具; -
如果信息足够,就选
⟨answer⟩结束流程。
实际案例说明
-
用户问题:“我在朝阳区望京SOHO,晚上8点想吃辣,推荐附近的餐厅”
-
初始状态:
-
s0s_{0}s0 = 位置(望京SOHO)、时间(20:00)
-
-

最低0.47元/天 解锁文章
1001

被折叠的 条评论
为什么被折叠?



