caveman-ai/trim-1
机器学习一个 1.2 MB 的按行筛选模型,只保留 AI 智能体当前问题所需的上下文行。
如果你在用智能体处理日志或长文档,并希望在上游模型读到之前低成本地裁掉无关内容,trim-1 值得花几分钟了解。它是个专注的按行筛选器,不是通用摘要工具。
解决什么问题
当智能体被问到“构建为什么失败”时,它往往会把整份构建日志塞进上下文,再从上万行里找一个错误。全读既花 token 也分散注意力。trim-1 改变的是这一步:你传入原始上下文和当前问题,拿回的是原文中的行、保持原有顺序,被删掉的地方用标记隔开。标识符、路径和报错原文不会被改写,原样保留。
有什么不同
它并非神经网络,而是 712 棵梯度提升树,打包成一个 1.2 MB 的 Go 程序,模型内嵌,只用标准库。因此它确定、本地:不需要 GPU,不发起网络请求,相同输入总得到相同输出,作者称单核上几千 token 只需毫秒级。实际使用中,调用方可以对每个工具结果调用它,而不必维护一个推理服务。
代价很明确:每删掉一行,下游模型就少读一行信息,作者也说明裁得越狠质量越差。长文档检索是它主打的场景,用 balanced;编码智能体的工具输出短而密集,应保持 balanced 或 conservative,节省幅度也小。它还会拒绝处理小输入和已处理过的输入:空查询、低于 2,000 字节、超过 8 MiB 或 200,000 行、已含删除标记的上下文,以及删除比例低于 10% 的情况,都会原样返回并在 stderr 说明原因。这种保守行为让失败可预期,但也意味着有些调用根本没有节省。作者的基准数字放在模型卡上,质量结论要看那份证据,而不是凭使用观感。
谁值得试
适合:正在构建 Go 智能体或数据接入步骤、经常把大日志或文档送给模型、希望用一个不依赖额外运行时的本地筛选器的人。可以直接调用 Compress,也可以用 Score 拿到每行的保留概率,自行决定取舍,适合想自己调策略的团队。不适合:主要处理短工具输出的场景,文档给的预期就是节省有限;以及非 Go 环境,因为安装路径要求 Go 1.23 或更新版本,见项目说明。如果你的流程依赖模型侧摘要,那解决的是另一个问题:这里要的是逐行原样保留,不是改写式压缩。
使用条件与边界
需要 Go 1.23 或更新版本才能安装命令行工具或引入库;README 没有给出其他接入方式,所以其他语言只能调用编译出的二进制。尺寸限制(2,000 字节到 8 MiB、20 万行)界定了有用范围,而原样返回的规则意味着你必须读 stderr,否则会以为它在正常工作。确定性和零依赖让运行简单,但模型是固定的:想改进筛选效果只能等新模型,仓库也没有提供重新训练的方法。删除标记检查还意味着 trim-1 的输出不应再作为输入喂回自身。
HotRepo 点评
HotRepo 记录时仓库只有 11 天、共 188 颗星,2026-10-25 位列新项目榜第 19;现有样本只覆盖 2026-10-24 至 2026-10-25,因此还无法判断热度能否持续。采用前先核对模型卡的基准测试方法和测试输入是否接近你的上下文,因为 README 里的节省说明是目前唯一关于预期效果的依据。
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。