Summary

一篇 survey,将代码重新定位为 agent 的”操作基底”(agent harness),而非仅仅是 LLM 的输出。提出三层分类法:harness interface(代码作为推理/行动/环境建模的接口)、harness mechanisms(规划/记忆/工具使用/反馈控制)、multi-agent orchestration(多 agent 协同与状态同步)。

Problem & Motivation

现有 agent 研究多聚焦模型能力(reasoning、tool use)或系统基础设施(API、sandbox),但忽略了 agent 主动生成的代码制品(agent-initiated code artifacts)作为连接模型输出与长期行动的关键层。代码不仅是输出,更是可执行、可检查、有状态的操作载体。本文系统化梳理”代码作为 agent harness”这一视角下的已有工作,识别设计模式与开放问题。

Method

这是一篇 survey,不提出新方法,而是组织现有文献。核心贡献是三层分类法:

Layer 1: Harness Interface(§2)

代码作为模型与环境的接口,承担三种角色:

Code for Reasoning(§2.1)

  • Program-delegated reasoning: 将计算外化为可执行代码(如 PAL、Program-of-Thoughts),分离推理与计算
  • Formal verification interfaces: 使用 Lean、Isabelle、Coq 作为机器可验证的证明语言(如 DeepSeek-Prover、Goedel-Prover-V2)
  • Iterative code-grounded reasoning: 生成-执行-验证-修正循环,利用执行反馈(如 CodeRL、EG-CFG)

Code for Acting(§2.2)

  • Grounded skill selection: 将语言意图映射到可执行技能,带可行性约束(如 SayCan、KnowNo)
  • Programmatic policy generation: 生成代码作为机器人/GUI agent 的控制策略(如 CaP、RoboCodeX、Code-BT)
  • Lifelong code-based agents: 持久化技能库,随时间积累(如 Voyager、LYRA)

Code for Environment(§2.3)

  • 结构化世界表示、执行轨迹建模、代码驱动的评估环境、可验证环境构建

Layer 2: Harness Mechanisms(§3)

Planning(§3.1): 线性分解、结构驱动规划、基于搜索的规划(如 CodeTree)、编排式规划

Memory(§3.2): 六类子类别——工作记忆、语义记忆、经验记忆、长期记忆、多 agent 记忆、上下文压缩/状态卸载

Tool Use(§3.3): 函数导向、环境交互、验证驱动、工作流编排四类工具使用

Harness Control(§3.4): “plan, execute, and verify” 循环,包括调试级控制、“规划即合约形成”、沙盒执行与权限状态转换、通过确定性传感器验证

Adaptive Harness Optimization(§3.5): 深度遥测作为优化基底、进化 agent 自我改进、受治理的 harness 变异

Layer 3: Multi-Agent Orchestration(§4)

  • 角色专业化: manager、planner、coder、reviewer、tester agents
  • 交互模式: 协作合成、批评/修复、对抗验证、推理辩论
  • 工作流拓扑: 预定义启发式 vs. 目标驱动自适应拓扑
  • 共享 harness 同步: 共享黑板、并行分支与合并、层次化内存
  • Harness-state 收敛: 正确性、安全性、性能、基于分数、共识、隐式收敛

Key Results

作为 survey,本文无实验结果。主要贡献是:

  • 识别出 agent-initiated code artifacts 这一相对未被充分探索的层次
  • 提出三层分类法,系统化组织 200+ 篇文献
  • 总结设计模式:代码作为 harness 的三大属性——executable(模型输出成为可形式化验证的操作)、inspectable(中间计算暴露为结构化轨迹)、stateful(演化的程序表示任务进展,持久且可修改)
  • 识别七大开放问题(§5.2):harness 级评估、语义验证、自演化 harness 无回归、事务性共享程序状态、人类在环安全、多模态 code-harness 系统、harness 工程学

Strengths & Weaknesses

Strengths:

  • 视角新颖: 将代码从”LLM 输出”重新定位为”agent 操作基底”,填补了模型能力与系统基础设施之间的概念空白
  • 分类清晰: 三层分类法(interface / mechanisms / orchestration)结构合理,覆盖面广
  • 实用价值: 识别的设计模式(如 “context management is the tax of implicit shared state”、“topology complexity inversely correlates with harness-state formality”)对 agent 系统设计有指导意义
  • 开放问题聚焦: 七大挑战(尤其是 harness-level evaluation、semantic verification、self-evolving harnesses)指向真实痛点

Weaknesses:

  • Survey 通病: 无实验验证,分类法的有效性未经实证检验。三层划分是否是最优组织方式?
  • 边界模糊: “agent-initiated code artifacts” 与 “system-provided harness infrastructure” 的边界在实际系统中往往模糊(如 Voyager 的 skill library 是 agent 生成的,但也是系统提供的持久化机制)
  • 深度不足: 对每个子类别的讨论较浅,更像是文献列表而非深度分析。例如 Memory(§3.2)列出六类,但未深入讨论它们之间的权衡与设计选择
  • 缺少量化: 未提供各类方法的成功率、适用场景的统计分析,难以判断哪些模式更有效
  • 开放问题泛泛: 七大挑战虽然重要,但缺少具体的解决方向或初步尝试,更像是”待办清单”而非研究 roadmap

对领域的影响:

  • 提供了一个组织 agent 系统设计的新框架,可能影响后续 agent benchmark 和评估方法的设计
  • GitHub repo(Awesome-Code-as-Agent-Harness-Papers)可能成为该方向的文献入口
  • 但作为 survey,其影响力取决于社区是否接受”code as harness”这一概念框架

Mind Map

mindmap
  root((CodeAgentHarness))
    Interface
      Code for Reasoning
        Program-delegated reasoning
        Formal verification
        Iterative code-grounded reasoning
      Code for Acting
        Grounded skill selection
        Programmatic policy generation
        Lifelong code-based agents
      Code for Environment
    Mechanisms
      Planning
      Memory
      Tool Use
      Harness Control
      Adaptive Optimization
    Multi-Agent
      Role specialization
      Interaction modes
      Workflow topologies
      Shared harness sync
      Harness-state convergence

Notes

  • 与我的研究相关性: 中等。GUI agent / computer-use agent 是我的核心方向,本文 §2.2(Code for Acting)和 §5.1(GUI/OS Agents)直接相关。但作为 survey,更多是文献索引而非方法创新
  • 可借鉴的点:
    • “代码作为可执行、可检查、有状态的操作载体”这一视角,可用于重新审视 GUI agent 的 action space 设计
    • §3.4 的 “planning as contract formation” 和 “sandboxed execution with permissioned state transitions” 对构建安全的 computer-use agent 有启发
    • §5.2 的 “harness-level evaluation beyond final task success” 指向一个真实痛点:现有 GUI agent benchmark 只看最终成功率,忽略中间步骤的质量
  • 疑问:
    • 三层分类法是否过于复杂?是否存在更简洁的组织方式?
    • “agent-initiated code artifacts” 与 “prompt engineering”(如 ReAct、chain-of-thought)的边界在哪里?后者也是”代码化”的推理结构
    • 多 agent orchestration(Layer 3)是否应该独立成层?感觉更像是 Layer 2 mechanisms 的组合应用