摘要

本次调研沿 Exo 当前源码追踪了 --harness 从 CLI 解析、Agent 配置持久化、Rust Executor 装配、宿主机 TypeScript Runner 到 Codex Sandbox 进程的完整路径,并区分了 Exo 用户侧 REPL 与 Prime Agent 模型侧持久 IPython REPL。结果表明,Codex 等内置名称是 TypeScript preset 而非底层独立 Harness 类型;Exo 的核心差异在可信状态底座与可替换 Executor,而 Prime Agent 更侧重可编程上下文和 RLM。(来源:原始调研记录(本地存档))

核心内容

  • Exo 将事件、Secret、Artifact 与 Sandbox 生命周期放在 ExoHarness,将 Prompt、工具和控制流放在可替换 Executor;“递归自我改进”主要发生在非参数 Harness 层。(来源:原始调研记录(本地存档))
  • 持久枚举只有 Basic、RLM、TypeScript 与 Exo。codex、claude-code、cursor、pi 是 CLI 对 TypeScript 模块、Sandbox 镜像和网络默认值的硬编码组合。(来源:同上,“--harness 的真实实现”)
  • Agent 的 Executor 配置作为版本化 config/executor.json Artifact 保存;--harness 对已有 Agent 是选择与一致性检查,不是临时覆盖。(来源:同上)
  • TypeScript Runner 是宿主机 Node 进程,通过逐行 JSON 与 Rust 通信;真正的 Codex App Server 再运行于 Exoharness Sandbox。自定义 TypeScript Harness 因此属于可信宿主代码。(来源:同上,“Rust 与 TypeScript 的进程桥”)
  • exo repl 是用户入口;Prime Agent 的 IPython REPL 是模型的可编程行动空间。两者都保留长期状态,但分别采用 substrate-first 与 RLM-first 的设计重心。(来源:同上,“Exo 与 Prime Agent”)
  • Exo 自带的 RLM Executor 比 Codex preset 更接近 Prime Agent,但当前使用每轮重建的 Boa JavaScript 状态和一次性 subquery,尚不具备 Prime Agent 的持久 Kernel 与长期子 Agent。(来源:同上)
  • 本机具备 Docker 等基础条件,但 Rust 版本低于仓库要求,且 setup 脚本只检查命令存在性;正式安装应先用仓库级 mise 工具链规避版本误判。(来源:同上,“本地安装可行性快照”)

相关页面

来源

  • 原始文件:原始资料(本地存档)
  • Exo 源码快照:exoharness/exo@7801005e
  • 官方仓库与文档核实日期:2026-09-03

待核实问题

  • 尚未本地构建或运行 Exo,安装脚本的工具链版本误判仍需端到端复现。
  • 尚未在统一任务、模型和预算下比较 Exo、Exo+Codex、Exo RLM 与 Prime Agent。
  • 项目 API 与 main 分支仍快速变化,模块路径、Provider 和历史恢复行为需在安装时按锁定提交复核。