JuliusBrussee/caveman

GitHub 2026-09-16T03:01:13.379990

项目简介

caveman 是一个让 AI 编码 Agent「说话像原始人」的开源技能与本地代理,通过压缩输出措辞和输入上下文,官方声称可削减约 65% 的 token 消耗。

它由两部分组成:一份免费、永久开源的规则文件(Skill),用一条命令注入 30+ 款编码 Agent,让模型的自然语言回答从「求职信体」变成极简短句;以及一个跑在本机的 Proxy,横在 Agent 与模型服务商之间,把日志、测试输出、JSON、diff、搜索结果等「被读取」的内容先压缩再送进上下文。二者可叠加使用,且不改变模型的诊断与修复能力——代码、命令、路径、报错原文一律原样保留。

技术亮点

架构解析

整体可分为三层。最上层是 Skill 层:一份规则文件通过安装器写入各 Agent 的系统提示或 skill 目录,属于纯 Prompt Engineering,不引入任何运行时依赖。中间是 Proxy 层:作为本地反向代理拦截 Agent 发往模型服务商的 HTTP 请求,把上下文中的长文本载荷(日志、diff、JSON)交给压缩器处理,同时写入备份存储以供回取。底层是 适配与分发层:CLI(npm 上的 @caveman-ai/cli)负责检测 Agent、安装规则、启动代理,wrap profile 则针对不同 Agent 的请求格式做适配,使同一套压缩策略可以用在异构工具链上。许可上 CLI 为 MIT、运行时为 BSL-1.1。

适用场景

生态对比

LLMLingua 等 Prompt 压缩方案相比,caveman 不做 token 级剪枝,而是通过行为约束改变模型表达方式,因此不会把关键句剪成语义碎片;与 LiteLLM 这类 LLM 网关相比,后者解决路由、计费与可观测性,但不做内容级压缩,二者定位互补而非替代;与 GPTCache 等语义缓存相比,缓存只在命中时省钱,首次请求仍然全价,而 caveman 对每一次调用都生效。相比 Agent 原生的上下文摘要(如 compaction),caveman 粒度更细、并且保留了原文回取通道。

延伸阅读

项目信息

查看原文