引言:从“语言理解”到“执行推理”
在我的几何 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. 执行循环机制
典型逻辑(伪代码)
while (!done) { const thought = llm.generate(context) const code = extractExecuteBlock(thought) const result = sandbox.run(code) context.push(`Execution Output:\n${result}`)}
执行过程包含四个核心步骤:
-
抽取代码块:识别
<execute>...</execute>中的代码片段 -
沙箱执行:运行在受限函数或容器中
-
结果反馈:stdout / return / error 都回写上下文
-
下一轮推理:模型读取结果、修复代码、继续执行
CodeAct 通过这个循环,实现了 “思考 → 执行 → 观察 → 再思考” 的闭环,而这正是传统 ReAct 模式所缺乏的。
几何 AI:CodeAct 的落地场景
几何画图任务天然契合 CodeAct,因为它具备以下特征:
-
构造性:点、线、圆的依赖顺序明确;
-
约束性:角度、平行、对称等条件必须验证;
-
可验证性:每次执行都能计算验证结果。
在我的项目中,LLM 会直接生成 TypeScript 代码来驱动几何引擎:
<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 的世界里,这意味着从 “我能解释几何” 到 “我能构造几何”。
也意味着从语言智能迈向行动智能的转折。
延申阅读
-
Wang, Xingyao et al.
Executable Code Actions Elicit Better LLM Agents.
-
CodeAct GitHub 实现 – github.com/xingyaoww/c… github.com/langchain-a…
-
Mohsin Mubarak, CodeAct: Revolutionizing LLM Agents with Executable Code Actions
Medium
, 2024.
-
Survey: Code Reasoning for Code Tasks: A Survey and A Call to Action. OpenReview 2024
本文使用 markdown.com.cn 排版