简短回答:Cetas 和 Caveman 有相似的优化目标,但我们选择直接优化 Agent 的工作过程,而不是默认增加一层代理。你仍然可以在 Cetas 中使用 Caveman Skill。
Caveman 是一个优秀的开源项目。它尝试减少 AI Coding Agent 的 Token 消耗:让回答更简短,让模型少读取无关内容,并提供模型路由、脚本复用等功能。
这些能力值得借鉴。但对 Cetas 来说,并不是每项能力都需要以独立插件的形式存在。
Cetas 已经做了什么?
让不必要的信息从一开始就不进入上下文
Cetas 的 run_code 可以让模型编写一段 MoonBit 程序,在沙箱中完成多次工具调用、循环和过滤,只把需要的结果返回对话。中间数据不必先发送给模型,再想办法压缩。
子代理也可以承担独立的调查任务,避免把全部工作过程堆进主会话。
控制长期对话的上下文大小
Cetas 支持自动和手动上下文压缩。对话接近模型上下文限制时,可以整理已有信息,继续工作,而不必从头开始。
减少工具与网页带来的无关内容
Cetas 使用按需加载的工具机制。内置 webfetch 也会清理网页中的部分无关 HTML,将内容转换成更适合模型阅读的 Markdown,并支持分页获取。
这些机制不等同于 Caveman 的全部功能,但它们解决了同一类问题:减少模型不需要处理的信息。
那么,还有哪些差距?
有。特别是工具执行结果的自动压缩。
例如,一次构建生成了几万行日志,但真正需要关注的可能只有几条错误。目前 Cetas 并没有为所有工具结果提供统一的、可恢复的结构化压缩机制。
这是值得继续改进的地方。
但我们不会为了缩短输出,简单地丢弃可能重要的信息。被省略的内容应当能够找回,错误诊断不能被隐藏,优化是否有效也应当用完整任务的实际成本和成功率验证。
为什么不自动选择模型?
这是有意的产品选择。
不同模型在成本、速度、上下文长度和行为上存在差异,但没有一个可靠的规则能够保证:某类任务一定应该交给某个模型。
同一个任务在不同代码库、约束条件和用户偏好下,也可能需要完全不同的能力。
因此,Cetas 让你决定使用哪个模型,以及使用什么推理强度。我们可以帮助你了解模型的能力和成本,但不会在每次提问时擅自替换它。
Cetas 应该优化你选择的模型如何工作,而不是替你决定应该使用哪个模型。
我还能使用 Caveman 吗?
可以。如果你喜欢 Caveman 简短直接的回复风格,可以只安装它的 Skill:
npx skills add JuliusBrussee/caveman安装后可在 Cetas 的 /skills 中检查,通过 /caveman 按需启用。
这与安装 Caveman 的完整 Proxy 不同:Skill 主要调整回复风格,不会自动启用工具结果压缩等运行时优化。
你可以根据需要使用它,不必等待 Cetas 内置相同的风格。
不安装 Caveman,会错过明显的成本节省吗?
这取决于你的实际工作。
如果任务主要涉及多次文件搜索、代码检查或程序化数据处理,Cetas 已有的 run_code、子代理和上下文管理可以减少部分冗余开销。
如果任务经常产生大量日志、JSON 或测试输出,Caveman 的工具结果压缩可能有额外价值。这也是 Cetas 仍需要改进的地方。
但压缩后的文本变短,不代表整次任务一定更便宜。若模型因缺少关键信息而重新读取文件、重复运行命令,最终成本可能反而增加。
我们的目标不是让每一条工具输出尽可能短,而是让 Cetas 在不牺牲任务质量的前提下,减少不必要的 Token 消耗。
这也是为什么 Cetas 不直接打包 Caveman,却会继续吸收其中有价值的技术思路。