尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Unreal Agent 凭啥对标 Claude Code 与 Codex?Go 系框架的成本账与工程账一起算
Unreal Agent 凭啥对标 Claude Code 与 CodexGo 系框架的成本账与工程账一起算【免费下载链接】unreal-agentAsync-first agent harness项目地址: https://gitcode.com/gh_mirrors/un/unreal-agent2026 年 9 月底一款名为 Unreal Agent 的异步优先async-firstAgent 框架进入 GitHub 热榜社区传播中反复出现两个惊人数字相比 Codex 省 40% 成本、相比 Pi 省 20%。紧接着一篇又一篇中文社区文章开始拆解它的协调器、收件箱、会话存储和 Operation 机制——一个 Go 语言实现的 Agent harness凭什么跟闭源商业产品比成本这些百分比到底是什么口径本文结合社区情报与仓库源码把省 40%/20%的对比口径还原清楚再从工程账的角度讨论 Go 实现 vs Python/TS 实现的维护性差异最后落到一个更实际的问题同场景下谁更适合作为自建 Agent 的底座。一、省 40%/20%先还原对比口径1. 数字的出处与含义先看社区情报里最直接的一条CSDN《Unreal Agent一款具有最先进成本效率的开源 Agent 框架》2026-09-28其核心创新在于将工具调用完全异步化避免 LLM 空等显著降低 token 消耗——相比 Codex 省 40% 成本、Pi 省 20%性能无损。这里的关键词是异步化和避免 LLM 空等。翻译成工程语言传统 Code Agent 是同步循环——模型发出一条工具调用必须等工具执行完、拿到结果才能发起下一轮 LLM 请求而等待 Bash 执行、文件读写、甚至网络请求的时间窗口里模型处于空闲但仍在计费上下文的状态并且每一轮都要把完整上下文重新发一遍。Unreal Agent 的做法是把工具执行从模型回合里剥离出来模型在同一回合里发出 N 个互不依赖的工具调用这些调用立即全部启动、并行跑谁先完成谁先唤醒新一轮 LLM。于是省下来的 token 主要由两部分构成并行化减少了回合数也就减少了重复发送完整历史上下文的次数input token 的重复计费异步占位符机制让工具结果按完成顺序分批到达而非一票等齐进一步压缩空转轮次。2. 口径还原这是Token 量的账不是账单金额的账把仓库源码翻开会发现两个支撑省 token主张的硬机制。第一系统提示词在明示模型并发调用便宜。在 harness/contextbuilder/prompts/preamble.md 中harness 直接教导模型Each turn re-sends the whole conversation, so prefer to go wider with tool calls — they are cheap — rather than chaining them across a longer sequence of turns. When the next commands do not depend on each others output... issue them as separate tool calls in the same turn instead of one at a time.每一轮都会重发整段对话——这句话点破了 Agent 成本结构的本质上下文的重复计费是最大的成本项所以减少轮次就是省钱。而异步工具调用正是把并发不依赖的调用压缩进同一轮的手段。第二Coordinator 的事件循环是真正的异步引擎。看 harness/coordinator/loop.go 的Run方法主循环select同时监听五个来源inbox 输入、operation 完成事件、心跳、grace 超时、模型响应。模型调用通过requestModelResponse放进 goroutinego func() { ... }()工具操作则由 Operation Manager 在后台执行结果通过 channel 异步回流。这就是模型推理与工具执行彻底解耦的运行证明go func() { response, err : current.dependencies.LLM.Respond(requestContext, request, llm.RequestOptions{ CacheKey: string(current.dependencies.SessionID), }) select { case results - modelResponseResult{turnID: turn.ID, response: response, err: err}: case -ctx.Done(): } }()同时slurpChannelharness/coordinator/loop.go在极短空闲窗口1ms内批量收集同一时刻落地的 operation 更新让同时完成的结果在同一次模型回合里到达减少唤醒次数。3. 40% vs 20%的差异从哪来社区文章没有给出完整的复现方法论如模型、任务集、温度、上下文窗口设置因此必须谨慎40% 与 20% 大概率来自 Harbor 基准Terminal-Bench / AgentBench 体系上对 Codex 与 PiPixel 系 Agent的同任务对比。差异本身是合理的——不同基线产品的同步策略、提示词长度、工具粒度不同异步化带来的节省空间自然不同。这也意味着该数字不能外推成任何场景都省 40%但减少空转轮次能显著降本在机制上是被源码支持的结论仓库的基准适配器见 benchmarks/harbor/README.md正是为可复现设计的harbor run支持openai/、anthropic/、openrouter/、fireworks_ai/前缀并输出含 token 明细的 ATIF 轨迹benchmarks/harbor/src/harness_harbor/trajectory.py 统计prompt/completion/cached/reasoning/cache_write五类 token。顺带澄清一个易混淆点这些数字是Token 消耗量的对比而省 40% 成本字面上是金额——只有当两家按同样的 token 单价计费时才等价。仓库在轨迹转换处专门写了注释benchmarks/harbor/src/harness_harbor/trajectory.pyCosts are unknown: runner usage contains tokens, not billed amounts.所以严谨的说法是token 用量尤其 input 重复计费大幅下降金额降幅取决于单价。宣传口径可适度打折但机制成立。4. 与 prompt cache 的组合拳异步化省的是重复 input token而缓存省的是重复 input 的单价。仓库在两端都做了工程RequestOptions.CacheKey在 harness/llm/adapter.go 中定义Coordinator 用session.ID作缓存键harness/llm/responsesapi/adapter.go 将 CacheKey 做 SHA-256 后写入请求体prompt_cache_key字段或 HTTP 头适配不同厂商的缓存放置策略OpenAI、OpenAI Codex、Fireworks 的x-session-affinity头等Harbor 适配器在 benchmarks/harbor/README.md 中说明OpenRouter 请求开启自动 prompt 缓存1 小时 TTL并携带 session id让长对话保持在同一上游实例、跨长工具调用与推理回合。上下文在异步工具执行期间是连续增长的如果缓存键不稳定缓存会不断失效用 session ID 作键并配合各厂商的亲和性头正是为了让等待工具期间的增长仍能命中缓存前缀。这是异步省 token与缓存省单价两个机制能同时成立的工程前提。二、Go 实现 vs Python/TS工程可维护性账1. 单一二进制 vs 解释器生态Unreal Agent 的定位是async-first agent harness仓库结构清晰地分成三块库harness/、可执行程序cmd/与基准benchmarks/。其中 runner 和 TUI 都是 Go 编译出的单一静态二进制——go build -trimpath -o bin/unreal-agent-runnerMakefile。这对部署账是决定性的零运行时依赖不需要 Python 解释器、Node 运行时、venv 或 node_modules一条命令即沙箱可执行物Harbor 适配器的安装步骤就是上传一个二进制文件 一个 CA 证书见 benchmarks/harbor/src/harness_harbor/agent.py 的install方法——chmod 755后直接runner -h验证。对比 Python/TS Agent如多数 PyPI/npm 方案需要在沙箱里pip install/npm install拉一串依赖无论是镜像体积、构建时长还是供应链风险账都更清爽。2. 并发模型的账goroutine channel 直击 Agent 场景Agent 运行时本质上是一个高并发事件泵输入事件、模型响应、工具完成事件、心跳、控制消息同时涌入。用 Go 写harness/coordinator/loop.go 的select多路复用是最自然、最少样板代码的表达用 Python 写同样逻辑通常要引入 asyncio 事件队列 手动背压控制且 GIL 让 CPU 密集任务日志解析、输出截断、base64 编解码需要额外线程池用 TypeScript 写则要面对回调/微任务调度的隐式优先级。再看工具执行层。Operation Manager 是actor 运行时harness/operation/local_manager.go每个 operation 一个context.WithCancel生命周期原始事件进程启动、输出分块、退出、取消、计算完成通过单一primitiveEventschannel 汇入管理器的 select 循环。每个操作天然可取消、可恢复、可序列化——这一套在 Go 里是标准配置在 Python/TS 里要么依赖第三方 actor 框架要么手写状态机。一个更实际的例子Bash 操作把 stdout/stderr 落到文件并只把头尾 截断标记回传模型见 harness/operation/shell.go 的 phase 状态机以及 harness/operation/output.go 的boundOutput。这种文件级流式输出 有界上下文的组合在 Python 里要做到进程组取消、流式尾部读取、UTF-8 边界安全代码量和易错点都会显著增加。3. 类型系统与接口抽象的账可测、可替换仓库的组件划分非常接口化harness/llm/adapter.go 定义Adapter接口一行Respond(context.Context, Request, RequestOptions) (Response, error)harness/sessionstore/sessionstore.go 定义Store接口10 个方法harness/tool/tool.go 定义Registry/Translator接口。README 也明确声明alternative implementations of their interfaces are encouragedREADME.md。更关键的是纯函数的边界ContextBuilder 被设计为纯内存、无 I/O、无持久化依赖harness/contextbuilder/contextbuilder.go 的包注释Tool Translator 被要求在协调器事件循环上同步运行、不得执行 I/O 或挂起循环README.md 的 Glossary。这种把可测的纯逻辑与有副作用的执行分离的设计在 Go 的强类型 go vet-race测试Makefile 的test/check目标下能被极其廉价地验证。反面教材是我们都见过的 Python/TS Agent 项目LLM 调用、工具执行、状态持久化纠缠在同一批异步函数里想 mock 一个 provider 或换一种存储必须重写一大片。4. 持久化与恢复的账append-only 账本 崩溃恢复这是 Unreal Agent 工程账里最值钱的一块。会话历史是append-only 账本harness/sessionstore/sessionstore.goStore只有AppendInput/AppendTurn/AppendModelResponse/AppendToolCallStatus/SaveOperation没有修改删除落盘格式是 JSONLharness/sessionstore/localfile/codec.goformatVersion 2带版本校验。这套设计带来崩溃恢复是确定性的Resume会返回未完成操作 已见输入 IDharness/sessionstore/localfile/state.go 的resume()inbox 用这些 ID 重建去重集合防止重投递会话可分叉Fork按 turn 边界截断继承历史生成带ItemFork的新账本同一文件内forkStoredState——这对跑偏了回滚重试是杀手级能力审计即产品runner 通过AddObserver把每个持久化 item 同步输出为 JSONL 事件流cmd/internal/agentrunner/run.go 的ObserveHarbor 轨迹转换器直接消费这个流生成 ATIF 轨迹。日志、审计、可观测性不是后加的而是持久化层的天然产物。在 Python/TS 生态里会话存储 恢复 分叉 版本迁移通常要引入数据库或自研状态机而这里用 JSONL 版本号就完成了并且-race跑满全测试仓库中大量*_test.go包括 fuzz 与故障注入测试如 harness/coordinator/fault_fuzz_test.go、harness/coordinator/recovery_test.go。5. 扩展机制Skill 与 Provider 的配置化工程账还要算接入成本。仓库的 Provider 注册表cmd/internal/providers/providers.go内置 ollama、openai、openai-codex、openrouter、fireworks、anthropic 六家切换只需环境变量UNREAL_HARNESS_LLM_PROVIDERcmd/unreal-agent-runner/README.md并支持本地 ollama 完全离线跑。Skills 则是目录即注册.harness/skills/*/SKILL.md的 YAML frontmatter 自动发现harness/tool/registry.go 的DiscoverSkills通过SkillUse工具按需加载harness/tool/skill_use.go。这套零代码扩展与 Claude Code 的 skills 生态理念一致但对自建底座者意味着更低的维护税。三、同场景下谁更适合做自建 Agent 底座1. 三种路线的适用性画像维度Unreal AgentGo自写 Python/TS Agent闭源 CLIClaude Code / Codex成本可观测性内置 token 五分类明细 JSONL 全量审计需自建黑盒或受限运行时依赖单二进制解释器 依赖树闭源二进制受厂商策略约束定制自由度全接口可替换LLM/存储/Operation Manager高但全部自担低崩溃/恢复/分叉内置需自建内置但不可控基准可复现Harbor 适配器开箱即用需自写评测脚手架评测口径不透明2. 什么场景选 Unreal Agent把 Agent 当基础设施跑的生产团队需要确定性恢复、会话审计、多模型可切换、可复现的成本评测——benchmarks/harbor 的适配器已经把接入 Harbor/ATIF 轨迹做成了 make 目标对单次调用成本敏感的批处理/后台 Agent异步并发 prompt cache 亲和性 有界输出截断这套组合在源码层面就是为 token 账设计的想从用 CLI升级到控运行时的团队TUIcmd/unreal-agent-tui可日常使用runnercmd/unreal-agent-runner可编程调用底层 harness 可嵌入自有系统。3. 什么场景应该观望Agent 只是产品的一个小特性团队全是 Python/TS 背景学习 Go 事件循环、接口抽象的成本可能超过异步化省下的 token 钱——先算团队账依赖极细粒度的模型厂商新特性六家 Provider 的适配走的是归一化接口responsesapi/messagesapi 两套适配若某厂商发布接口外的独家能力需要自己改客户端需要与庞大 Python ML 生态深度集成的场景本地模型推理、数据处理、可视化都在 Python 侧Go harness 需要桥接。4. 最终结论账要分开算回到标题的三本账成本账省 40%/20% 是token 用量口径下的宣传数字机制成立异步并发 减少重发轮次 prompt cache 亲和但金额降幅依赖单价落地前建议用 Harbor 在自己的任务集上复测——仓库已经给了全套工具工程账Go 的单二进制、goroutine 事件泵、接口化组件、append-only 会话账本对生产级 Agent 运行时这个目标而言维护成本显著低于同规模 Python/TS 自研——尤其当你要做崩溃恢复、会话分叉、全量审计这些易错但难测的能力时强类型 竞态检测 fuzz 的价值会被放大底座账如果目标是自建、可控、可复现、长期演进的 Agent 基础设施Unreal Agent 是目前开源阵营里少有的把可靠性与成本效率当一等公民的选择如果目标是最短时间跑通一个 demo闭源 CLI 或熟悉语言的自研仍然更顺。值得一提的是社区情报显示该项目 2026 年 9 月进入 GitHub 周榜时配套的指南类文章已覆盖协调器、Inbox、Session、Operation、SkillUse、System Preamble、Harbor 适配等全部核心模块——生态的可学习性本身也是底座选型里被低估的账。【免费下载链接】unreal-agentAsync-first agent harness项目地址: https://gitcode.com/gh_mirrors/un/unreal-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

告别AI失忆:用claude-mem为Claude打造长期记忆层

告别AI失忆:用claude-mem为Claude打造长期记忆层

你有没有遇到过这种情况:一个星期前刚跟 AI 助手确定过技术栈,今天开新会话,它又一脸无辜地反问你“这个项目到底用的什么框架?”我有过,而且不止一次。一开始我怀疑是不是模型本身出了问题,后来发现真相很…

📅 2026/10/10 17:18:42
基于SpringBoot的个性化推荐小说阅读网管理系统设计与实现

基于SpringBoot的个性化推荐小说阅读网管理系统设计与实现

先说一句大实话:如果你正在为毕业设计或者简历项目发愁,又恰好对“管理系统”和“推荐算法”这两个方向都有点兴趣,那么“基于SpringBoot的个性化推荐在线小说阅读网管理系统”是一个性价比非常高的选择。它既有传统管理系统的完整骨架——用…

📅 2026/10/10 17:18:42
LVM磁盘管理到文件系统扩容备份:Ubuntu运维练习题解析

LVM磁盘管理到文件系统扩容备份:Ubuntu运维练习题解析

这套练习题我刚拿到手就赶紧刷了一遍,说实话,比我想象中要扎实。第2章磁盘、LVM、文件系统与扩容备份,这几个东西单独拎出来都能讲半天,组合在一起更是日常服务器运维的高频场景。题目不光是考命令背得熟不熟,更多的是…

📅 2026/10/10 17:18:42
MORE NEWS

更多资讯

📰

505B 开源了,但「世界第一」还差一段距离:盘古全量开源的野心与尴尬

505B 开源了,但「世界第一」还差一段距离:盘古全量开源的野心与尴尬 【免费下载链接】openPangu-2.0-Pro 昇腾原生的openPangu-2.0-Pro语言模型 项目地址: https://ai.gitcode.com/ascend-tribe/openPangu-2.0-Pro 2026 年 6 月,余承东…

📰

Linux内核学习:构建心智模型与设计哲学

我一直觉得,Linux内核学习最大的门槛不是C语言,也不是数据结构,而是一上来就被各种宏定义、链表操作和调度器代码砸晕。很多人买了好几本内核巨著,翻了几十页就放弃了,问题不在于不努力,而在于脑子里缺少一…

📰

YOLOv8行人检测实战:数据集转换、训练调参与PyQt5界面部署一步到位

简介:面向计算机视觉初学者、算法工程师及智能交通开发者的YOLOv8行人检测完整方案,集成数据集、训练权重与PyQt可视化界面,解决街道和交通场景中行人实时检测及界面化部署需求。压缩包共2000个文件,涵盖1991个txt标注文件、2个Py…

📰

可穿戴传感器时间序列数据增强:Python实战与避坑指南

简介:这份资源面向从事可穿戴传感器、人体活动识别与帕金森病监测等时间序列研究的学生和算法工程师,提供一套可直接运行的数据增强示例代码,用于缓解传感器样本不足、模型泛化能力弱的问题。资源包共5个文件,压缩后约892KB&#…

📰

Android仿抖音上下滑动视频切换:ViewPager2+ExoPlayer实践

简介:仿抖音上下滑动切换视频是一份面向Android开发者的完整工程实现,基于RecyclerView、SnapHelper与自定义LayoutManager搭建类抖音的视频信息流交互,解决上下滑动时页面精准停靠与播放器联动等常见难点,适合已有Android基础、希…

📰

让 AI Agent 亲自读合同:Docling-MCP 接入桌面助手全流程

让 AI Agent 亲自读合同:Docling-MCP 接入桌面助手全流程 【免费下载链接】docling Get your documents ready for gen AI 项目地址: https://gitcode.com/GitHub_Trending/do/docling 把一份几十页的 PDF 合同丢给聊天助手,让它"总结付款条…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬