ByteNoteByteNote
agent 偷偷截断上下文?uncut 一个字都不许丢
字

字节笔记本

2026年11月6日 · 约 2 分钟读完

agent 偷偷截断上下文?uncut 一个字都不许丢

API中转
¥120

别的 agent 套壳都在想办法「省上下文」,Balanov 的 uncut(610 星、MIT)反其道而行:上下文一个字都不许丢,丢了就报错。整个对话每次模型调用都完整发送;文件内容与合并后的命令输出绝不被截断;如果服务商在输出上限处截断了回复,它直接报错退出,而不是把半截答案当成功交给你。

uncut 仓库

形态极简得近乎偏执:837 行 Go 实现、四个工具、一种服务商协议、一个 agent 循环;Linux、macOS、Windows 全平台,amd64 加 arm64;服务商中立,走 OpenAI 兼容的 Chat Completions 接口(包括本地服务);最终文本走 stdout,结构化 NDJSON 事件可用 --json 输出。不做的事清单更长:无 TUI、无遥测、无插件系统、无后台 agent、无自动重试、无上下文压缩、不做摘要、不做剪枝、不做滑动窗口。可选的 append-only JSONL 会话保留每条消息与工具结果,随时可恢复。安装一行 curl,二进制丢进 ~/.local/bin 即可,当前 v0.1.1。

它解决的 bug 值得单独说:长任务跑到一半,服务商在输出上限处悄悄截断,半截答案被当成成功交差,这是 agent 场景里最难查的故障之一,因为「看起来完成了」。uncut 的选择是把这种静默失败变成显式报错。

照例把代价说全:无损的代价是每次调用都发完整对话,token 账单会涨,README 自己也承认这一点;它只有四个工具、没有 TUI、没有自动重试、没有上下文压缩,适合管道、CI、容器与 agent 实验这类场景,不适合开一个交互会话慢慢聊;v0.1.1 非常早期,17 个 fork,遇到问题要自己修或等作者。和 Balanov 自家此前两件工具对照也成一套体系:latch 管 agent 对外契约,equal 管流量确定性,uncut 管对话保真。对把 agent 用在生产流水线里的人,「运行时保真」这道闸值得装。

相关文章

分享: