面向 Agent 开发者的工程与范式探索


引言:从“语言理解”到“执行推理”

在我的几何 AI 项目中,模型第一次尝试“画一个等腰三角形”时,图形看似完美,实际上两边长度并不相等。

AI画得像,却没画对。

几何画图任务并非自然语言理解,而是 构造 + 约束 + 验证 的闭环过程。

传统的 “Planner + DSL + Verifier” 体系虽然可控,但在动态构造与反复验证中显得笨重。

我开始思考:

如果让 AI 不再只是描述,而是直接写出代码、执行代码、并根据结果再思考呢?

这正是 CodeAct(Executable Code Actions Elicit Better LLM Agents)所提出的核心理念。

CodeAct 不再让语言模型“说怎么做”,而是让它“自己去做”。



CodeAct 的底层机制解析

让模型写代码只是表象,真正的关键是形成一个可执行的闭环思维循环。

1. ReAct 与 CodeAct

对比项 ReAct CodeAct
表达形式 Thought + Action + Observation(文本) Thought + <execute> + Observation(代码执行)
动作实现 由外部解析器调用预定义工具 直接生成并执行函数
控制流 受限(多步靠多轮调用) 原生支持 if / for / try
可观察性 文本输出 代码执行结果(return/stdout/error)
优势 安全、可控 执行力强、贴合训练分布
局限 动作空间有限 执行安全、调试成本高

CodeAct 的核心在于:让 LLM 的输出成为可直接执行的程序,并用执行结果作为新的输入。

这种结构让模型不仅描述动作,而是直接拥有动作。


2. 执行循环机制

典型逻辑(伪代码)

1
2
3
4
5
6
while (!done) {
const thought = llm.generate(context)
const code = extractExecuteBlock(thought)
const result = sandbox.run(code)
context.push(`Execution Output:\n${result}`)
}

执行过程包含四个核心步骤:

  1. 抽取代码块:识别 <execute>...</execute> 中的代码片段
  2. 沙箱执行:运行在受限函数或容器中
  3. 结果反馈:stdout / return / error 都回写上下文
  4. 下一轮推理:模型读取结果、修复代码、继续执行

CodeAct 通过这个循环,实现了 “思考 → 执行 → 观察 → 再思考” 的闭环,而这正是传统 ReAct 模式所缺乏的。



几何 AI:CodeAct 的落地场景

几何画图任务天然契合 CodeAct,因为它具备以下特征:

  • 构造性:点、线、圆的依赖顺序明确;
  • 约束性:角度、平行、对称等条件必须验证;
  • 可验证性:每次执行都能计算验证结果。

在我的项目中,LLM 会直接生成 TypeScript 代码来驱动几何引擎:

1
2
3
4
5
6
7
<execute>
const A = point(0, 0)
const B = point(2, 0)
const C = perpendicular(A, B, 1.5)
drawTriangle(A, B, C)
return checkIsosceles(A, B, C)
</execute>

执行结果会返回布尔值或错误信息(如“点C未定义”),再交回给模型进行下一步思考。
这使得“构造—验证—修正”形成完整闭环。



五、范式比较与适用场景

当然,CodeAct 不是所有场景的答案,而是执行密集型任务的最优解。

范式 核心思想 典型场景 优势 局限
ReAct Text-based reasoning + action schema 工具调用、问答代理 结构简单、安全 不支持循环、执行力弱
CodeAct 代码即行动,可执行推理 几何、数据分析、自动化流程 灵活、图灵完备 安全与可控性挑战
Planner + DSL + Verifier 高层规划 + 安全执行 企业工作流、合规系统 可治理性强 扩展性低

这些范式不是“演化关系”,而是“任务匹配曲线”:

  • 若你需要稳定且可控的 Agent,ReAct 足够;
  • 若你希望模型主动执行与验证,CodeAct 更高效;
  • 若你构建大型协作系统,PEER/Planner 才是路径。


写在最后

CodeAct 的潜力在于它把 “生成式 AI” 推向 “行动式 AI”。
今天我们已经看到:

  • Runtime 自检(Self-checking Runtime):模型生成代码 → 执行 → 自动生成测试样例验证输出;
  • 静态分析 + 动态执行结合:利用 AST 检查危险调用;
  • 跨语言统一执行层:JS/Python/Go 均可成为 Action carrier;
  • Agent Runtime 生态:不同 CodeAct 系统可互通共享执行上下文。

CodeAct 让模型拥有代码生成力、执行力与修正力。

在几何 AI 的世界里,这意味着从 “我能解释几何” 到 “我能构造几何”。

也意味着从语言智能迈向行动智能的转折。







延申阅读