Python 开源 Agent Harness 深度对比分析

## 一、概念界定:什么是 Agent Harness 业界目前最广为引用的定义来自 Addy Osmani:...

一、概念界定:什么是 Agent Harness

业界目前最广为引用的定义来自 Addy Osmani:Agent = Model + Harness——”如果你不是模型,那你就是 harness”。Harness 指模型之外的一切执行层代码:

Agent loop:收集上下文 → 采取行动 → 验证结果 → 循环,直到任务完成 – 工具定义与执行:工具 schema、执行环境、结果回填 – 上下文管理:历史裁剪、压缩(compaction/condenser)、笔记/计划落盘、子代理隔离 – 权限与沙箱:审批流、容器隔离、危险命令拦截 – 扩展机制:MCP、hooks、skills、插件 – 可恢复性:会话持久化、断点续跑、确定性重放

与相邻概念的分层(Winder.AI / LangChain 的共识):模型(推理)→ Harness(运行单个 agent)→ Framework(编排多个 agent)→ Platform(跨团队长期运行)。一句话:Frameworks compose agents. Harnesses run them.

本文的研究对象是:用 Python 编写、开源、且核心价值在于”运行 agent 的执行层”的项目。既包括完整的 coding harness(如 OpenHands、mini-swe-agent),也包括提供了 harness 级原语的 agent 框架(如 Pydantic AI、AgentScope)。

二、全景格局

2.1 两大阵营

TS/Claude Code 阵营:Claude Code(专有)、OpenCode(开源事实领袖)、Pi、Codex(Rust/TS)、Goose(Rust)——多为”终端交互式 coding harness”。 – Python 阵营:OpenHands、mini-swe-agent、smolagents、Pydantic AI、AgentScope、nanobot 等——多走”评测驱动 + SDK 化”路线,与学术界(Princeton、Berkeley)和数据/训练生态衔接更深。

分野的实质不是语言,而是产品形态:TS 阵营卖”装好的终端产品”,Python 阵营卖”可编程的执行层 + 可复现的评测”。

2.2 第一代 Python 编程 agent 的覆灭(2023 届)

项目结局
gpt-engineer(55k★)已归档,创始人转向 Lovable
GPT Pilot(33.7k★)停止维护,转向商业产品 Pythagora.ai;2025-08 遭供应链蠕虫投毒(恶意提交窃取凭证,潜伏至 2026-06 才被发现)
Open Interpreter(68k★)Python 版已死,原仓库转为 OpenAI Codex 的 Rust fork;Python 经典版移交社区 fork
aider(48.7k★)半死不活:2026-02 后近 7 个月零发版,续命靠社区 fork aider-ce

教训:“代码生成器”形态被”agent harness”形态淘汰。2025 年后的分水岭是:工具循环 + 权限系统 + 上下文工程 + subagent,缺一项就出局。

2.3 现役 Python 阵营主力(2026-09)

项目定位Stars许可证状态
OpenHands(software-agent-sdk)全功能 coding harness SDK86k(主仓)/ 1k(SDK)MIT主力开发
mini-swe-agent极简 coding harness6.9kMIT主力开发
smolagentsCodeAct 极简 agent 库29.1kApache-2.0缓慢维护
AgentScope 2.0Claude Code 式 harness 框架30.6kApache-2.0最活跃(日更)
Pydantic AI 2 + pydantic-ai-harness类型安全框架 + harness 层19.7k / 0.9kMIT高频迭代
OpenAI Agents SDK(Python)多 agent SDK29.2kMIT0.x 迭代中
Qwen-AgentQwen 模型配套框架17.1kApache-2.02026 中后放缓
SWE-agent研究型 harness(ACI 奠基)20.2kMIT维护模式(被 mini 取代)
Agent-SGUI 自动化 agent12.2kApache-2.0低速维护
Letta~~Python 记忆 agent 平台~~24.6k已转 TypeScript(letta-code)

对照组(明确排除在”Python 现役”之外):claude-agent-sdk-python(Anthropic 官方,开源 SDK 皮 + 捆绑闭源 CLI)、pi(TS)、Goose(Rust)、nanobot(Python 极简,HKUDS)。

三、核心项目深度档案

3.1 OpenHands V1(software-agent-sdk)——工程化程度最高的全功能 harness

2024 年以 OpenDevin 起家(V0 是 Web GUI + 事件流单体),2025-09 宣布重构,2026 年主仓转型为 Agent Canvas(自托管”编码 agent 控制中心”,可经 ACP 协议接入 Claude Code、Codex 等第三方 agent)。真正的 harness 内核在 software-agent-sdk(附论文 arXiv:2511.03690)。

架构精髓:事件溯源(Event Sourcing)

– Agent 是无状态、不可变、可序列化的配置对象,通过 on_event() 回调发出结构化事件 – 一切交互都是不可变 Event 追加进日志;ConversationState 是唯一可变组件 – 事件逐条存 JSON,支持确定性重放与断点恢复——这是四者中唯一生产级的可恢复性设计 – 动作先经 SecurityAnalyzer 评级,默认高危动作需人工确认(ConfirmationPolicy)

上下文管理:Condenser(无状态压缩器)——超限时删事件换成摘要,以 CondensationEvent 入库、全量日志保留,默认 LLMSummarizingCondenser 降低 API 成本约 2 倍。

工具与沙箱:Pydantic 定义 Action–Execution–Observation;官方工具 TerminalTool / FileEditorTool / TaskTrackerTool + 浏览器;MCP 一等公民(支持 OAuth)。沙箱 Local/Docker/K8s 三态,本地转远程只需改两行;Agent Server 提供 REST + WebSocket,官方镜像捆绑 VSCode Web、VNC、Chromium;SecretRegistry 自动掩码敏感输出。

成绩:SWE-bench Verified 72.8%(Sonnet 4.5);SDK README 口径 77.6%。经 LiteLLM 支持 100+ 模型。

优劣:优势是唯一具备事件溯源/恢复/安全审查/多租户完整工程化的 Python harness;劣势是仓库碎片化后定位漂移(Canvas 转型引发社区困惑),V0 时代曾背”140+ 配置字段”的复杂度债务。

3.2 mini-swe-agent——”极简主义”流派的旗手

Princeton 原班人马对 SWE-agent 复杂 ACI 路线的公开反叛:”如果 agent 简单 100 倍但效果几乎不降呢?” Agent 核心类 default.py100 行,环境/模型/run 脚本各约 100 行。

三个激进设计决定:

1. 除 bash 外没有任何工具,甚至不用模型的 tool-calling 接口(任何模型都能跑); 2. 不维护有状态 shell 会话——每步动作通过独立 subprocess.run 执行,天然隔离,沙箱化只需换成 docker exec; 3. 无 condenser、无压缩——上下文线性增长,赌模型长上下文。

设计红利:消息历史与发给 LM 的内容完全一致,轨迹纯净,是微调/RL 训练的理想 baseline(不会过拟合特定 scaffold)。

成绩:SWE-bench Verified >74%,Claude Opus 4.5 下 76.8%——与复杂 harness 相当甚至更高。用户含 Meta、NVIDIA、IBM、Anyscale;Ramp 的商业评测由它驱动。

优劣:优势是极简、快、轨迹纯净、可 hack;劣势是无浏览器/GUI 工具、无上下文压缩、单 agent、无 MCP/hooks。

3.3 SWE-agent——ACI 概念的奠基者(已入维护模式)

NeurIPS 2024 论文(Agent-Computer Interfaces)约 2500 次引用,核心遗产是 ACI 方法论:接口设计对 LM 如同 prompt 设计。

– 文件查看器每轮只显示 100 行(实验最优)+ 滚动/搜索 – edit 命令内置 linter,语法错误直接拒绝写入 – 搜索只返回文件名不展示上下文(实验证明展示反而让模型困惑) – 整个行为由单个 YAML 驱动(模板、工具、history processor) – 执行由姊妹项目 SWE-ReX 承担(Docker/远程 modal/AWS,持久 shell 会话)

SWE-agent 1.0 + Claude 3.7 曾达 SWE-bench Verified SOTA(约 62%)。官方 README 明确宣布被 mini-swe-agent 取代,仅建议在”实验不同工具接口”时使用。它留下的最重要启示:Princeton 自己用实验证明了自己的复杂路线过度设计。

3.4 AgentScope 2.0——定位上最接近”开源 Claude Code”的 Python 框架

阿里出品,2026 年最活跃(调研前一天仍在推送)。0.x(多 agent 消息平台)→ 1.0(2025-08,转向 ReActAgent 中心)→ 2.0(2026),哲学:”利用模型自身的推理与工具能力,而非用固化编排约束它”。

2.0 构建块(对标 Claude Code 的程度惊人):

– ReAct agent:结构化输出、实时中断与恢复、批量顺序/并发工具调用 – Toolkit 自带 Bash/Grep/Glob/Read/Write/Edit + task/plan 工具——即 Claude Code 的完整工具集 – Context 层:自动 compaction、tool-result offload、中间件注入 – Permission & HITL:细粒度工具确认 + bypass 模式 – 六层 Middleware 钩子(reply/reasoning/acting/model calling/permission/context compression) – Sandbox:local/Docker/Apple Container/Bubblewrap/E2B/OpenSandbox/Daytona/K8s 八种 – MCP & Skill Hub(对接 GitHub MCP Registry)、Agent Service(FastAPI 多租户后端 + Web UI + leader-worker 编排)、Console(终端运行界面)、Channels(飞书/Discord/钉钉)

定位:launch_console(agent) 即得终端体验——Claude Code 给你装好的产品,AgentScope 给你 Claude Code 的全部内脏让你自建。劣势:抽象层多、上手重于单文件工具;终端产品化打磨仍逊于 Claude Code/OpenCode。

3.5 Pydantic AI 2 + pydantic-ai-harness——”capability 化”的 harness 新范式

Pydantic 官方团队出品,v2.0 稳定版 2026-06-23 上线(当前 2.38.0,迭代最频繁)。核心是类型安全:Agent(model, deps_type=..., output_type=...),结构化输出验证失败自动回喂重试;复杂控制流走 pydantic-graph(类型化图状态机,可持久化恢复)。

v2 的关键演进:Capability 原语 + 官方 Harness 库——这是 2026 年最值得注意的抽象创新:

– instructions、tools、hooks、model settings 捆绑为单一 capability,可常驻也可 defer_loading=True 像技能一样按需加载(与 Claude Code 的 Skills 同构) – pydantic-ai-harness(官方,2026-03 创建)提供开箱 harness:Coder() = FileSystem(路径穿越防护)+ Shell(命令白名单 + 剥离 LLM API key 环境变量)+ RepoContext(自动加载 AGENTS.md)+ Planning + 只读 explorer sub-agent + 上下文控制(ClearToolResultsWarnNearLimitsToolOutputLimits) – Code Mode:在 Monty 沙箱中用一个 Python 脚本批量调 N 个工具——解决 tool-call JSON 的 token 膨胀(与 CodeAct 思路合流) – durability 是独门卖点:Temporal / DBOS / Prefect 官方共同维护,agent 运行可跨进程崩溃恢复;Logfire(OTel)可观测

劣势:抽象层次多、v2 有迁移成本;无自动分层记忆(哲学是显式 message_history + history processors)。

3.6 smolagents——CodeAct 路线的极简代表

HuggingFace 出品,”barebones library for agents that think in code”,核心逻辑约 1000 行。

CodeAct 是最大卖点:CodeAgent 不用 JSON tool calling,LLM 每步直接写一段 Python 作为 action,解释器执行后结果回填(Thought → Code → Observation)——源自 ICML 2024 论文(arXiv:2402.01030,精度提升最高约 20%) – 论据:代码可组合(变量复用、嵌套、任意控制流)、省 token、工具更少效果更好(曾以小模型登顶 GAIA) – 沙箱:默认本地执行(安全风险),生产用 E2B 云沙箱/Docker/Pyodide(Wasm 浏览器内) – 多 agent:manager 模式,编排本身也写在生成的代码里,灵活性极高 – 局限:无持久化、无分层记忆、无上下文压缩,需自建;企业级 durability/可观测缺失;2026 年中后发版放缓

3.7 OpenAI Agents SDK(Python)——平台化 SDK,2026 年开始 harness 化

前身是实验性 Swarm,2025-03 发布。核心抽象:Agent(instructions + tools + guardrails + handoffs + 类型化 output_type),Runner.run() 驱动扁平循环(非图状态机)。

– 编排两种原语:handoff(控制权整体交接)与 agents-as-tools – 内置全链路 tracing(默认上传 OpenAI dashboard,可导出 Logfire/Galileo)、并行 guardrails、Realtime/Voice pipeline – Sessions(SQLite/SQLAlchemy/Redis)做会话持久化;durable execution 走 Temporal – 2026-04 关键转向:加入 Sandbox agents(SandboxAgent + Manifest + GitRepo + Docker/本地沙箱客户端),使 SDK 能做长时程 coding 任务——明显吸收 Codex 的 harness 技术回馈到 SDK

劣势:0.x API 不稳定;最佳体验绑定 OpenAI 平台;无长期记忆原语。

3.8 其他值得记录的项目

Letta(原 MemGPT):MemGPT 式三层自编辑记忆(core/recall/archival,”记忆即工具”)+ sleep-time compute(空闲期离线记忆巩固,arXiv:2504.13171)是其核心遗产;但 2026 年 Python 线已终止,活跃开发转入 TypeScript 的 letta-code。对 Python 用户而言是断档。 – Qwen-Agent:阿里官方框架,现直接作为 Qwen Chat 的后端(生产背书);技术亮点是 1M token 超长文档 RAG 与 Docker 沙箱 code interpreter;但本质是模型配套框架而非 harness,无权限系统/compaction/subagent,2026 中后更新乏力。 – Agent-S(Simular):唯一 GUI 自动化 agent,OSWorld 上以 bBoN(Behavior Best-of-N,并行 rollout 择优)达 72.6%,2025-12 宣布首个超越人类水平的 computer-use 成绩;不面向代码仓库任务。 – nanobot(HKUDS):约 4000 行的 Python 极简 harness,自比”agent 内核层”,极简流派的另一选手。 – claude-agent-sdk-python(Anthropic 官方):wheel 里直接捆绑 Claude Code CLI,SDK 只是驱动子进程的 async 薄层。代码 MIT 但运行受商业条款约束——“闭源 harness + 开源 SDK 皮”,与全开源替代品有本质区别,选型时需清醒。

四、架构维度横向对比

4.1 Agent Loop 设计

项目Loop 形态状态管理
OpenHands SDK事件驱动单循环事件溯源,可重放可恢复
mini-swe-agent线性消息 append轨迹 = 消息历史,零差异
AgentScope 2.0ReAct 循环 + 中断恢复Memory 可插拔(ReMe/Mem0)
Pydantic AI固定循环 + 图状态机message_history 显式传入 + 持久化后端
smolagentsCodeAct 循环仅循环内历史
OpenAI Agents SDKRunner 扁平循环 + handoffSessions 抽象
SWE-agentYAML 驱动单循环HistoryProcessor 压缩

4.2 工具系统与”代码即动作”的合流

三条技术路线:

1. JSON tool calling(主流):OpenAI Agents SDK、AgentScope、Pydantic AI——schema 驱动,兼容一切模型,但长工具列表 token 膨胀; 2. CodeAct / code-as-action:smolagents、OpenHands(CodeAct 统一动作空间)、pydantic-ai-harness 的 Code Mode——把编排写在生成的代码里,可组合、省 token;Anthropic 官方也在其工程博客中合流到同一观点(“code is precise, composable, infinitely reusable”); 3. bash-only 极简:mini-swe-agent——不用 tool-calling 接口,一个 shell 走天下,换取模型无关性。

一个被反复验证的事实:工具接口设计就是 prompt 设计(SWE-agent 的 ACI 论文):查看器行数、linter 拒写、搜索输出裁剪,每个细节都有可测量的性能影响。

4.3 上下文管理四流派

流派代表机制
压缩器OpenHands Condenser超限删事件换摘要,全量日志保留,成本降 ~2x
自动 compactionAgentScope 2.0 / Claude Code阈值触发摘要 + tool-result offload
显式上下文工程Pydantic AI history processors用户自写截断/摘要策略,ClearToolResults(0.7) 等
放弃压缩mini-swe-agent线性增长,赌长上下文窗口
结构化持久aider repo-map(历史方案)/ planning-with-filestree-sitter 符号图 PageRank 裁剪;task_plan.md/findings.md/progress.md 三文件落盘

值得注意的是 planning-with-files(26.5k★)代表的”harness 模式即插件”流派:Manus 风格的文件化计划(hash 校验、压缩后可恢复)可以叠加到任意 harness 上,说明上下文工程正在从框架内部实现解耦为可移植模式。

4.4 沙箱与权限

最完整:AgentScope(八种沙箱)+ OpenHands(SecurityAnalyzer 动作评级 + ConfirmationPolicy) – 最小可行:mini-swe-agent(独立 subprocess,换 docker exec 即沙箱) – 代码执行特化:smolagents(E2B/Monty/Pyodide)、pydantic-ai-harness Shell(命令白名单 + 密钥环境变量剥离——细节很讲究) – 教训(Winder.AI):沙箱管住了文件系统不等于管住了账单和网络;权限模型要按”爆炸半径”设计

4.5 扩展机制(MCP / hooks / skills)

MCP 一等公民:OpenHands(含 OAuth)、AgentScope(Skill Hub)、Pydantic AI(capabilities=[MCP(...)] 一行接入)、OpenAI Agents SDK – MCP 的反思同样重要:Anthropic 自己提出 “code execution with MCP”(按需加载工具,上下文开销从 26% 降到 1.6%);极简派指出 Playwright MCP 开场即耗 13.7k tokens,主张 CLI 工具 + README 的渐进披露 – Skills 化:Pydantic AI 的 deferred capability 与 Claude Code 的 Skills 同构;OpenHands 有 Skills/插件市场——“能力按需加载”是 2026 年 harness 的共同演进方向

五、实证:Harness 本身就是最大的性能变量

这是本次调研中最重要的横向发现——同一模型在不同 harness 下成绩差异可达 5-30 个百分点:

– arXiv 论文 “The Scaffold Effect in Coding Agents”:同一模型下 OpenHands-SDK 69% vs Goose/OpenCode 仅 38% – Terminal-Bench 2.0:同一 Opus 模型在不同 harness 中名次差距 25 位 – SWE-bench Verified 榜单 99/100 为自报分数 – 反例:Letta Code 凭持久记忆在 HAL 上 59.1% 超过 Claude Code 的 41.6%(同为 Anthropic 模型)——证明复杂特性在特定负载下有真实收益

为此 Princeton 建了 HAL(Holistic Agent Leaderboard) 在受控条件下对比 harness。选型启示:任何”模型 X 达到 Y%”的解读都必须先问 harness 是什么;反过来,自建 agent 产品时,投在 harness 上的工程收益可能大于换模型。

极简 vs 全功能的裁决(截至 2026-09,未决):极简派的弹药是 mini-swe-agent 76.8% 不输复杂 harness、Pi 四工具即可打;全功能派的证据是事件恢复、安全审批、记忆在长时程/生产环境不可替代。目前的合理结论:基准分数上极简不输,生产工程上全功能仍有护城河;模型越强,harness 该越薄

六、选型建议

六维选型框架

1. 形态匹配:要”装好的终端工具”还是”可编程执行层”?Python 阵营几乎全是后者; 2. 模型耦合度:供应商中立(mini/AgentScope/Pydantic AI)vs 平台绑定(OpenAI SDK 最佳体验在 OpenAI); 3. 上下文工程自主度:显式控制(Pydantic AI)vs 自动化(OpenHands/AgentScope)vs 无(mini); 4. 可恢复性/durability:长时程任务是否需要崩溃恢复?(OpenHands 事件溯源 / Pydantic AI Temporal 是最强) 5. 安全模型:权限粒度、沙箱隔离范围、审计; 6. 可评测性:能否进 HAL/SWE-bench 复现,自建 evals 成本(mini 轨迹最纯净,最适合 RL/微调闭环)。

按场景推荐

场景首选理由
学习 harness 原理 / 二次开发起点mini-swe-agent100 行核心,每一行都是设计决定
构建生产级 agent 产品(全功能)OpenHands SDK 或 AgentScope 2.0前者工程化最深(事件溯源),后者工具集/权限/compaction 最像 Claude Code 且最活跃
类型安全 + 长事务 durability 的企业后端Pydantic AI 2 + harnessTemporal/DBOS 官方维护,capability 抽象最新
快速原型 / 科研实验 / GAIA 类任务smolagentsCodeAct 省 token,与 HF 生态无缝
训练/微调/RL 数据闭环mini-swe-agent轨迹与 LM 输入完全一致,无 scaffold 过拟合
GUI/电脑操作自动化Agent-SOSWorld 超人类水平,无同级对手
深度绑定 Qwen 生态Qwen-Agent模板级配合 + 1M RAG,但接受其更新放缓
愿意接受闭源内核换开箱即用claude-agent-sdk-python注意:闭源 harness + 商业条款

三条决策启发法

1. 别比功能清单,比预设假设——功能已趋同,差异在各 harness 替你做了哪些决定; 2. 选型期按 18 个月算——这个领域洗牌速度(参考第一代覆灭史)不支持五年规划; 3. harness 只会移动不会消失——compaction、重试逻辑会随模型升级作废,而沙箱、权限、审计规则不会;自建时优先把后者握在自己手里。

七、结语:三个趋势判断

1. 收敛于”代码即动作”:smolagents、OpenHands、pydantic-ai-harness Code Mode,连 Anthropic 官方都在同一论点上合流——JSON tool calling 的霸权正在被侵蚀; 2. harness 层的”薄化”与”能力按需加载”并行:模型越强核心 loop 越薄(mini/pi 路线),而 skills/deferred capability 让重量级能力变成按需挂载的插件(Pydantic AI、Claude Code Skills); 3. Python 阵营的独特生态位是评测、训练与 SDK 化:TS 阵营赢得终端产品,Python 阵营承接”把 harness 变成可复现、可训练、可嵌入产品的基础设施”。Letta 的离场说明这个生态位并非安全,但 OpenHands SDK、AgentScope 2.0、Pydantic AI 三线并进的势头表明,2026 年的 Python harness 战争才刚刚进入正赛。

附:主要信息源

OpenHands / software-agent-sdk · V1 路径博客 · SDK 论文 arXiv:2511.03690mini-swe-agent · SWE-agent · ACI 论文 arXiv:2405.15793 · HALAgentScope · Pydantic AI v2 · pydantic-ai-harnesssmolagents · CodeAct 论文 arXiv:2402.01030 · OpenAI Agents SDKAddy Osmani: Agent Harness Engineering · Mario Zechner: Pi · Anthropic: Claude Agent SDK · Anthropic: 长时程 harness · Simon Willison: Designing agentic loopsWinder.AI harness 对比 · Scaffold Effect 论文 · Agent-S · Letta sleep-time compute

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1