13. InterCode:把交互式编程环境变成强化学习的训练场
InterCode 把代码执行环境包装成一个强化学习接口:Agent 写代码、执行、看结果、再写代码,每一轮都有明确的奖励信号。它提供了一个标准化的框架,让不同的 Agent 策略可以在相同的环境里对比
把问题拆开,用实验和代码留下可以复查的答案。
InterCode 把代码执行环境包装成一个强化学习接口:Agent 写代码、执行、看结果、再写代码,每一轮都有明确的奖励信号。它提供了一个标准化的框架,让不同的 Agent 策略可以在相同的环境里对比
MapCoder 把代码生成分成四个 Agent:检索相似问题、提取解题思路、制定计划、生成代码。类比已知问题的解法,比从零开始想更稳定,尤其是对模型本身不擅长的题目类型
AgentCoder 把代码生成任务拆成三个角色:程序员负责写代码,测试设计师负责生成测试用例,测试执行器运行测试并返回结果。角色分离让每个 LLM 调用更专注,也减少了单个 prompt 需要同时承担太多任务的问题
AlphaCodium 不是靠更强的模型,而是靠更好的流程设计来提升代码生成质量。它把任务分成几个阶段:先理解问题、生成测试、再迭代改代码直到通过测试,这个顺序和人类写代码的方式更接近
LATS 把蒙特卡洛树搜索的结构和 LLM 的反思能力结合起来:在树的每个节点上生成多个候选动作,用执行反馈评估,失败的路径生成反思后剪枝,好的路径继续扩展
Reflexion 让 Agent 在每次失败后用自然语言写下反思,把反思存入记忆,在下一轮的上下文中读取。不更新参数,靠语言描述的经验来改进后续尝试
SWE-bench 用 2294 个真实 GitHub Issue 测试 Agent 能否修复生产代码库里的 bug。SWE-agent 为这个任务设计了 Agent-Computer Interface,把 bash、编辑器、搜索工具整合成适合 LLM 使用的接口
代码写出来跑不通是常态。Self-Debugging 研究的是 LLM 能否像程序员一样:看执行结果、读错误信息、定位问题、修改代码。这个能力在 Code Agent 里属于基础组件
与其让 Agent 输出 JSON 工具调用,不如让它直接写 Python。CodeAct 对比了两种方式,在多步推理和混合任务上,代码执行作为动作空间有明显优势
Voyager 把 Minecraft 变成了一个 Agent 的实验场:用 JavaScript 代码作为动作,用技能库作为长期记忆,用课程机制驱动自主探索。它是较早系统性研究代码驱动终身学习的工作之一