TrueForge 拆解:一个开源 Agent Harness 怎么把运行成本砍掉 75%,还附赠可复现 benchmark

TrueForge 拆解:一个开源 Agent Harness 怎么把运行成本砍掉 75%,还附赠可复现 benchmark

先收藏,回头一定用得上。

同样的 14 个企业任务,同样的模型,同样的工具。Claude Managed Agents 跑一次花 $11.8,TrueForge 跑一次花 $8.6,换成 GLM-5.2 之后只要 $3.0。精度不但没掉,还从 10.7/14 涨到了 11.7/14。

这是 TrueFoundry 上个月开源的 TrueForge 交出来的成绩单。项目 2026 年 7 月 23 日创建,一个月 3895 stars、253 forks,登过 Trendshift TypeScript 周榜。定位一句话说清:开源 Agent Harness,把 LLM 变成能干活的 Agent 的那层运行时

用四个词概括它:开箱即用、生产级、可扩展、带 benchmark。前三个词很多项目都敢说,第四个词是稀缺品。绝大多数 Agent 框架的 README 里只有 features 列表,TrueForge 的 README 里有一张对照 Claude Managed Agents 和 deepagents 的成本精度表,外加一个任何人可以下载重跑的 benchmark 目录。这个差异本身就是态度。

本文提纲

  1. TrueForge 是什么:一个月 3895 stars 的 Agent Harness
  2. 架构:一个内核,三种暴露方式
  3. Catalog:配置一次,Agent 挑着用
  4. Sandbox-as-a-tool:和主流反着来的设计
  5. 上下文工程四板斧
  6. Benchmark 拆解:数据、方法论、为什么便宜
  7. Generative UI:审批从读日志变成点界面
  8. 两条治理路径:TrueForge 与 Claude Tag
  9. 部署形态与清醒剂

TrueForge 是什么:一个月 3895 stars 的 Agent Harness

先交代出品方。TrueFoundry 是 2021 年成立的 MLOps 公司,GitHub org 描述写着 "Build fast, secure and cost-efficient ML/LLM Apps",名下 108 个公开仓库,主力产品是模型部署和应用托管平台。给 Kubernetes 写过 Helm 模块、给 AI Gateway 出过 SDK、做过 Kubernetes 资源优化控制器 CruiseKube。这个背景值得注意:他们不是从零起步写 Agent 框架的团队,而是把做了五年多的基础设施经验叠上来的。

TrueForge 的自我定义写在 README 第一行:

TrueForge runs the agent execution loop for you - model calls, MCP tools, skills, sandboxing, approvals, context management, and session state - and exposes it three ways: a chat UI, an HTTP API with a TypeScript SDK, and an embeddable UI SDK.

翻译过来:模型调用、MCP 工具、skills、沙箱、审批、上下文管理、会话状态,这些 long-running agent 的杂活全部包掉,然后从三个口子暴露给你用。

这和我们之前拆过的几个项目处在同一条赛道上。DeepSeek Harness 说「没有内核,只有插件」,把一切做成可替换组件;OpenAI 把 Codex 从 CLI 拆成 App Server + SDK + 协议,产品变基础设施。TrueForge 是第三个样本,而且是最直接对标 Claude Managed Agents 的那一个。它的文档里反复出现的参照物就是 CMA:hosted 模式的定位是 "a shared deployment for your team, like Claude's managed agents",UI SDK 的卖点是 "launch your own Claude Desktop-like interface"。

工程形态上这是个标准的 TypeScript monorepo,pnpm + changesets 管理,MIT 协议,要求 Node.js >= 22.14。仓库根目录除了 CONTRIBUTING.md 和 SECURITY.md,还躺着两个有意思的文件:AGENTS.md 和 CLAUDE.md。也就是说这个团队自己就是用 Agent 开发 Agent 的,仓库里的约定同时写给人类贡献者和 AI 贡献者看。

架构:一个内核,三种暴露方式

MERMAID_BLOCK_0

三个暴露口对应三种使用姿势。想直接聊,用内置 Chat UI,跟服务器同端口部署,不用多装任何东西。想从代码驱动,用 HTTP API 加 TypeScript SDK,REST + Server-Sent Events 流式返回,OpenAPI spec 挂在 /api/v1/docs,能交互式调试。想做成自己的产品,把 @truefoundry/trueforge-ui 嵌进 React 应用,主题换成你的品牌色,后端接你自己的 TrueForge 服务器。

monorepo 里五个包的文件数能看出重心分布:trueforge-sdk 723 个文件、trueforge-ui 351 个、trueforge 265 个、trueforge-core 168 个。SDK 和 UI 的体量加起来超过一半。这个分布说明一件事:TrueForge 认为自己的价值不只在 Agent 循环本身,同样在「让别人把 Agent 嵌进任意产品」这一层。这正是 harness 从工具变成平台的关键一步,Codex 走的是同样的路。

被服务端调用的资源全部 bring your own:模型、MCP 服务器、沙箱,你配置,它编排。

Catalog:配置一次,Agent 挑着用

TrueForge 管配置的方式是目录化(catalog)。模型、MCP server、skills、沙箱,初始化的时候连一次,之后创建的每个 agent 从已经连好的资源池里挑。预设来自随包发布的 YAML catalog,可以自定义覆盖。

这个设计解决的是「每个 agent 重复配一遍」的痛。传统做法里,一个 agent 一份配置文件,换模型改十处,加工具改十处。catalog 把资源变成平台层的公共设施,agent 定义退化为「从目录里选哪几样、给什么指令」。配置的复用粒度从文件级升到了组织级。

模型侧支持 OpenAI、Anthropic、Google Gemini 这些 catalog 内的 provider,也支持任意 OpenAI 兼容端点。这意味着 Ollama、vLLM、DeepSeek、GLM 这类自建或第三方端点都能接,benchmark 里 GLM-5.2 能跑出最好的性价比,前提就是这条通路。

MCP 的支持是完整的企业级形态:远程 server,header auth 或 OAuth,还有对话内现场授权。最后这个细节体验很好:当某个 connector 需要授权时,聊天界面里直接出现 Connect 按钮,用户点一下完成 OAuth 流程,不需要切出去改配置文件。MCP 2.0 把远程 server 和 Registry 定为主线之后,谁能把远程 MCP 的授权体验做顺,谁就先拿到企业入场券,这是我们在 MCP 2.0 那篇里判断过的方向。

Skills 的实现走的是 Anthropic 定义的事实标准:git 仓库背书的 SKILL.md 指令包,按需加载进沙箱。加载机制叫 progressive disclosure:每个挂载的 skill 只把 name 和 description 送进输入上下文,完整正文等 agent 判断相关时再从沙箱读取。这个设计直接回应了「skill 一多上下文就爆」的问题,二十个 skill 挂上去,静态成本只有二十行描述。

Sandbox-as-a-tool:和主流反着来的设计

这一节是 TrueForge 架构里最值得停下来看的地方。

业界主流做法是把整个 agent 关进沙箱跑:安全边界清晰,但代价是每个 agent 常驻一份隔离环境,不管这一轮要不要执行代码。TrueFoundry 在文档里明确写了他们的反向选择:

Many harnesses run the agent inside a sandbox. TrueForge treats the sandbox as a tool: one is provisioned only when the agent actually needs to execute code. That's why one server can run many agents concurrently, and why turns that don't need code execution are cheaper and faster.

拆开看这个决定的三层含义。

第一层是资源经济学。沙箱按需点亮,用完就还,一个 server 能并发跑很多 agent。如果 agent 本身住在沙箱里,并发数被沙箱实例数卡死,成本随 agent 数量线性涨。

第二层是密钥安全。secrets 留在 harness 侧,不进沙箱。agent 循环在 server 上跑,密钥由 harness 持有,沙箱里只有代码、文件和 shell。哪怕沙箱里的执行被污染,攻击者也拿不到上游凭据。对比「agent 整体进沙箱」的方案,API key 必须跟着进去,沙箱逃逸等于密钥泄露。

第三层是调度精度。不需要代码执行的轮次直接跳过沙箱开销。纯对话轮次、纯工具调用轮次,省掉冷启动和资源占用。

目前沙箱 provider 支持 Daytona,文档说更多 provider 在计划中。这是当前生态里常见的单点,E2B、Modal、Fly Machines 都可能成为后续选项。

上下文工程四板斧

TrueForge 文档把 context engineering 定义得很干净:以正确的格式提供正确的信息,让 agent 可靠地完成任务。上下文分两段看,输入上下文在运行前就固定(instructions、skills、MCP 工具定义),运行时上下文随轮次增长(用户消息、工具调用、工具结果、subagent 输出)。膨胀问题主要出在后者,一次返回五万 token 的 JSON,几十步中间产物,窗口很快就满。

对运行时上下文,TrueForge 有四件武器,全部在 benchmark 的成本优势里出了力。

Subagents,上下文隔离。 根 agent 把重活派给 subagent,后者带着全新上下文出生,指令和工具齐全,但不继承任何消息历史。干完活只把最终结果交回来,中间的工具调用、大搜索结果、推理步骤一律不进根上下文。文档举的例子是给十人团队总结 PR:fan out 十个 subagent 并行跑,根 agent 收到十份短摘要,而不是十套原始工具输出。

大结果离载。 单次工具调用返回的数据超过阈值,harness 把完整输出写进沙箱文件,上下文里只留一份短预览加文件路径。agent 后续要用,按路径去沙箱里读。这一招对「一个工具返回成千上万行 JSON」的场景是硬解法,benchmark 里好几个任务要扫几万条记录,没有离载机制直接 max_tokens breached

Code Mode。 agent 在沙箱里写 Python 脚本去调 MCP 工具,在代码里处理结果,只有 print 出来的 summary 进上下文。这等于把「读 JSON、拼字段、做聚合」这类机械活从模型的注意力里挪到了解释器里,模型负责写代码和读结论。

Compaction。 上下文涨过阈值(benchmark 里配的是 60000 token),harness 把较老的历史替换成结构化的上下文内摘要,agent 接着干活。

四板斧之上还叠了一层 deferred tool loading:MCP server 默认 preload: false,只贡献 name 和 description,具体工具 schema 按需发现。挂十个 MCP server,每个几十个工具,光 schema 就能吃掉大半个窗口的日子结束了。

这套组合拳不是 TrueForge 独家,deepagents 也有 subagents 和虚拟文件系统。差异在实现哲学,下一节的数字会说明这个差异值多少钱。

Benchmark 拆解:数据、方法论、为什么便宜

先看数据。DevRev 开源的 Enterprise-Bench L1-L2 子集,14 个跨系统任务,三个 MCP server(Jira 式项目管理、Salesforce 式 CRM、Drive 式文档库),每个任务要求 agent 自己发现 schema、跨系统做 join、落地成有据可查的答案。每个配置跑 3 轮取均值,盲评 LLM judge 只看评分标准和答案,不知道是哪个 harness 产出的,全部标准命中才算过,没有部分分。

配置 解决 / 14 $ / 次 Token / 次
Claude Managed Agents · Opus 4.8 10.7 $11.8 10.0M
TrueForge · Opus 4.8 10.7 $8.6 3.7M
TrueForge · GLM-5.2 11.7 $3.0 3.8M
deepagents · Opus 4.8 10.0 $21.2 16.5M
deepagents · GLM-5.2 12.0 $9.1 11.9M

三个读数。

第一,同模型同精度下,TrueForge 比 CMA 便宜 27%。$11.8 对 $8.6,token 消耗 10.0M 对 3.7M。注意精度是 10.7 打平的,成本差全来自循环效率。

第二,换 GLM-5.2,成本再砍 65%,精度反而涨到 11.7。$3.0 一次,是 CMA 的四分之一。开源模型加省 token 的 harness,两个变量叠乘出 75% 的总降幅。

第三,诚实地说,deepagents 没有输在精度上。它配 GLM-5.2 拿到全场最高的 12.0,输在 $9.1 的成本和 11.9M 的 token 上。TrueForge 的胜利宣言是 "same accuracy, lower cost",不是 "higher accuracy",文档在这点上没吹牛。

为什么能便宜?TrueFoundry 的归因一针见血:

Most of the cost in an agent run is the loop, not the final answer - every tool round-trip ships the growing context back to the model.

Agent 运行的大头开销在循环不在答案。每跑一轮工具,都要把越滚越长的上下文重新发给模型。于是三个杠杆决定成本:

  1. 每轮上下文更瘦。 TrueForge 用紧凑指令驱动,deepagents 每轮都背着 planning 状态、虚拟文件系统和 subagent 机制。
  2. 工具调用更少。 同样的任务,TrueForge 平均 19 次调用,两个对手分别是 32 次和 40 次。
  3. Compaction 替代 replay。 裁剪历史、离载大结果,而不是把累积上下文原样重发。deepagents 逐步重读全部累积上下文,同样的活 token 消耗是三到四倍。

方法论的严谨度也值得单独说。成本不是估的,是按真实 token 计数乘 provider 牌价算的:(uncached_input × in_rate + output × out_rate + cache_read × cache_read_rate + cache_write × cache_write_rate) / 1e6。不同框架的 token 语义有差异(有的把 cache 读写算进 input,有的分开),aggregate.py 做了归一化再比。bench 目录四个脚本走完全流程:setup.py 建环境,bench_matrix.py 跑全部「框架 × 任务 × 轮次」单元(可断点续跑,带超时重试),judge.py 盲评,aggregate.py 出表。README 里那句 "no hidden scoring, no per-task hints, one uniform prompt for every framework" 是对这个 benchmark 最好的自我约束。

当然要打折扣听。自家框架自家跑分,集成度天然占优,CMA 是 beta,deepagents 的配置深度也未必调到最优。但这个 benchmark 的价值不在绝对名次,在于把「harness 的循环效率值多少钱」这个此前没人量化的问题摆上了台面,且给了所有人重跑的工具。这和 HarnessEval-W 用 0.93 的 Spearman 相关系数把「harness 质量可测」变成事实,是同一种贡献。

benchmark 配置本身还是一份生产参考:iteration_limit 500、动态 subagents 开、compaction 阈值 60000、大结果离载开、generative_ui 和 ask_user_questions 关(headless 跑分不需要交互)。照抄这套配置上生产,基本就是官方调优过的姿势。

Generative UI:审批从读日志变成点界面

人类在环这块,TrueForge 的常规项是 tool approval(写操作和破坏性工具执行前暂停等待批准)和 ask-user-questions(运行中途结构化提问)。

真正出彩的是 Generative UI。agent 能在对话里渲染真正的 UI 组件:表格、表单、图表、可点击的操作卡片。审批流里用户看到的是一张可视化的变更卡片,字段、影响范围、确认按钮一目了然,而不是一段要逐行读的文字日志。

这个能力改变的是审批的摩擦曲线。人类审批 agent 行为的最大成本不是点那一下确认,是看懂 agent 要干什么。文字日志要求审批者脑内重建状态,可视界面把状态直接画出来。审批越轻,人机协作的频次上限越高,agent 的自动化半径就越大。UI SDK 甚至支持整套主题定制,企业可以把这套审批界面长在自己的品牌体系里。

两条治理路径:TrueForge 与 Claude Tag

把 Generative UI 和审批流放在一起看,能看到治理正在被编码成基础设施。这里有一个现成的对照样本,就是我们之前写过的 Claude Tag,Anthropic 内部的 CI/CD 故障第一响应者。

Claude Tag 的架构是编排 Agent 并行读取 Grafana、日志、PagerDuty、GitHub、Kubernetes 和 Slack,结合调查 Skill、playbook 和持续更新的 lessons 文件生成态势报告。官方披露的数据:近期相关事故的首份报告通常在 15 分钟内完成,中位首份证据分析 14 分钟,最快 4 分钟定位根因。

Claude Tag 展示的是治理在闭源托管体系里怎么被编码:审批边界、技能沉淀、lessons 学习,全部长在 Anthropic 自家的 harness 里,外界只能通过博客观摩。TrueForge 展示的是同一种治理在开源自建体系里的样子:tool approval 是配置项,Generative UI 是渲染能力,skills 是 git 仓库,lessons 文件没有任何魔法,就是 agent 工作目录里一份持续追加的 markdown。

两条路径指向同一个判断:Agent 的治理不再是文档里的规范,是 harness 里的代码。区别只在于你打算租一套(Claude Managed Agents,起步快,$11.8 一轮),还是自建一套(TrueForge 加 GLM-5.2,$3.0 一轮,数据和密钥全在自己手里)。TrueForge 的 benchmark 恰好把这两条路径的价格标签都贴了出来。

部署形态与清醒剂

部署两种形态,Agent 能力完全一致,变的只是外闱设施。

Local Hosted
适合 个人试用,单进程 团队共享,多副本
运行方式 npx @truefoundry/trueforge Docker Compose 或 Helm
存储 SQLite Postgres
额外设施 Postgres + Redis
副本 单进程 负载均衡后多副本,Redis 做副本间协调

Redis 的用法值得一提:多副本场景下,流和取消操作通过 Redis 在副本间跟随客户端,连接断了换一个副本接着收。Helm chart 和 Docker Compose 都是官方维护的,Kubernetes 出身的团队做这些是本职。

官方对 local 模式的警告写得罕见地直白:默认无登录,数据在本地 SQLite 文件里,只许跑在 localhost,不要暴露到生产网络,出问题概不负责。共享或生产部署走 hosted 模式,开 OIDC 登录。这段警告比多数项目的免责声明诚实。

清醒剂也得灌几口。项目才一个月大,23 个 open issues,沙箱 provider 只有 Daytona 一家,TypeScript 单技术栈(对 Python 团队的吸引力存疑),benchmark 是自家跑的。deepagents 在 GLM-5.2 上精度更高这个事实,说明它的开销换来了某种探索深度,低 token 不永远是优点。把它直接搬进生产之前,先在 benchmark 目录里用自己的任务跑一遍,那才是属于你的数字。

一个月 3895 stars 说明市场在等一个「带 benchmark 的开源 harness」。这个等法很务实:feature 列表谁都会写,成本表谁都想要。

参考文档与链接

你的 Agent 一次运行花多少钱?评论区聊聊你的账单。觉得有用点个赞,让更多人看到这份成本表。


作者: itech001
来源: 公众号:AI人工智能时代(the-ai-era)
网站: https://www.theaiera.top/
关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

本文首发于 AI人工智能时代,转载请注明出处。

posted @ 2026-08-24 18:56  iTech  阅读(7)  评论(0)    收藏  举报