UNCUT教程:837行的无头Agent harness,"无损"是它的宗教

📌 项目日期:2026年11月 | 数据来源:GitHub官方仓库 | 星数:567+

📋 项目简介

当所有Agent框架都在加功能时,UNCUT 在做减法:一个 7MB的Go单静态二进制、837行实现、刻意没有TUI/遥测/插件系统/后台Agent/自动重试/上下文压缩。它的核心主张只有一条:Lossless by default——整个对话每次模型调用全量发送,文件内容和命令输出从不被它截断;如果厂商截断了响应,UNCUT 直接报错退出,绝不把残缺答案包装成成功。官方连bench都放出来让你自己验证。

它是Agent harness光谱的另一极:对比 ECC(全家桶操作系统) 与 mcode-stack(团队工作流),UNCUT回答的是"CI/管道里我只要一个诚实的执行器"。

🔧 设计取舍

有没有(刻意)
全量上下文每次发送摘要/剪枝/滑窗/静默输出上限
无头:结果到stdout,--json出NDJSON事件TUI、遥测、插件、后台Agent
厂商截断→报错退出自动重试
可选JSONL会话(append-only,可续跑)上下文压缩
Provider中立(OpenAI兼容端点,含本地)第三方Go依赖

📦 使用

# Releases下载单二进制(或go install)
uncut "修复这个失败的测试"        # 结果到stdout
uncut --json "..." > events.ndjson # 结构化事件流
# CI/管道/容器里当诚实执行器用
# 837行实现,直接fork改造

✅ 使用建议

📚 常见问题

UNCUT是什么?

一个极简编码Agent harness(Go单静态二进制约7MB),面向shell管道、CI任务、容器与Agent实验:无TUI、无遥测、无插件系统、无后台Agent、无自动重试、无上下文压缩。

"Lossless by default"什么意思?

整个对话每次模型调用全量发送;文件内容与合并的命令输出从不被UNCUT截断;若厂商在输出上限处截断响应,UNCUT直接报错退出——绝不把残缺答案包装成成功。官方提供bench证据与实测记录。

怎么接入模型?

Provider中立:任何OpenAI兼容Chat Completions端点都行,包括本地服务;可选append-only JSONL会话保存每条消息与工具结果,可断点续跑。