LemonCrow:为编码 Agent 加挂本地代码图,自测节省约三成输出成本
LemonCrow 是一个本地运行的上下文工程中间层,可挂在 Claude Code、Codex 等编码 Agent 之…
LemonCrow 是一个本地运行的「上下文工程」运行时,以独立工具层的形式挂在 Claude Code、Codex、opencode 等编码 Agent 之下,通过本地代码图检索、定向行级读取、输出截断与压缩等方式,改变 Agent 的工作集合,从而降低调用大模型 API 的实际花费。项目作者强调,所有数字均以「美元账单」而非 token 计数进行端到端衡量,并随仓库附带 BENCHMARKS.md 供复核。
核心思路与定位
作者表示,自己在使用编码 Agent 时经常在周一就耗尽周额度,而市面上多数「省 token」工具给出的都是 token 百分比,并不反映真实账单成本。LemonCrow 的目标是在不改变用户工作流的前提下,把 Agent 实际消耗的美元数压到尽可能低。其部署方式有两种:从签名校验后的 GitHub Release 一键安装,或从源码本地构建;初始化通过 lc init 在项目目录内完成,不需要账号、不依赖网络。
工具被设计为「运行时壳」,包裹在现有 Agent 宿主之外:模型、宿主、工作流保持不变,只是替换部分内置能力为更受约束、更结构化的本地工具。
主要能力
LemonCrow 在 Agent 上下文中通过四个阶段重塑工作流:
- Find:基于 tree-sitter 的符号表与调用图,按中心度排序返回符号定义、调用方与被调方,以及精确的源代码行区间,替代暴力 grep 循环。
- Read:返回文件大纲或指定行范围(如
:L10-L40),并对命令、Web 输出做截断,超出部分写入可恢复的溢出文件。 - Carry:通过持久化内存、去重、压缩清单与交接包保留任务状态。
- Verify:在没有测试或检查的情况下识别变更,在 Agent 宣告完成前进行提醒。
在 Claude Code 上,lc init 会替换 Agent 的五类内置工具为本地受控实现:
code_search替代 Grep、Glob;read替代 Read;edit替代 Edit、Write,支持一次调用做跨文件验证修改;bash替代 Bash,输出受预算约束并结构化;web_fetch替代 WebFetch,将抓取页面清洗为 Markdown。
其他兼容宿主则复用其暴露的最强近似控制能力。仓库还内置一组 Agent 子能力(code / auto / solve / execute / general / bare / explore / plan / review / research)和可选技能(/lemoncrow /benchmark /orchestrate /swarm 等),覆盖从交互式编码到只读探索、计划评审、对抗性 review 与联网研究等场景。
自测基准与收益
项目声称以下数字均在 BENCHMARKS.md 中可复核,并以美元成本而非 token 计数给出:
- 检索 MRR 约
ripgrep的1.9x; - 在 SWE-bench Verified 上输出 token 比基线减少
27.9%。
作者同时明确,这些差异「不保证在你的仓库上复现」,实际效果因任务、代码库和模型而异。
运行环境与边界
- 本地化:核心能力离线运行,不连 LemonCrow 自有服务器;遥测默认关闭,遵循
DO_NOT_TRACK=1/LEMONCROW_TELEMETRY=off全局开关;不外发标识、仓库路径、源码或符号名,无崩溃上报;唯一主动外联是用户手动触发的lc update。 - 模型与宿主:不替代用户模型,需自行配置 Anthropic、OpenAI、Ollama 等提供方与 API Key;正式支持 Claude Code、Codex、opencode,Copilot、Cursor、Hermes、Antigravity 在接入中;任何 MCP 兼容宿主都可接入同一套工具。
- 系统要求:Python 3.12–3.13,使用 uv 管理;主要支持 Linux 与 macOS,Windows 为部分支持、未充分测试;可选用 mypyc 构建以提速,纯 Python 构建无需 C 工具链。
- 不在范围内:不是托管服务,不跑模型,不保证上述基准在你项目上同样成立;宿主间行为存在差异,例如「会话结束验证」在 Claude Code 上强制执行,在其他宿主上是提示性建议。
项目公开了 lc session stats(只读汇报浪费的工具调用和往返)以及 lc session replay(用真实工具回放录制会话),用于本地复盘,无需重跑模型。
