Vesta,Claude Code 的自适应本体
Vesta 是一个面向 Claude Code 的插件,通过后台构建仓库的引用图、业务词汇本体和既有会话结论,让 AI 代理无需通读代码即可回答结构性问题。它默认作为助手运行,在关键时刻提示已存在的问题、规则和此前结论,并以斜杠命令提供全部功能。Vesta 完全在本地推理,不读取隐藏文件或依赖目录,也不发起网络请求,大部分效果尚未被量化。
Vesta 是一个面向 Claude Code 的插件,旨在让 AI 代理不再为了回答仓库的结构性问题而反复阅读代码。它会解析仓库中“谁引用了谁”的依赖关系,构建工作区命名与业务概念之间的本体,并把之前会话已经得出的结论沉淀下来。安装后无需额外操作,插件会在后台默默建立图谱,并随代码变化持续更新。
在平时的开发过程中,Vesta 默认作为助手运行。当代理即将修改某个文件时,它会提示该文件中已经存在的、被吞掉的失败(swallowed failure)——第一次提到某个文件时会说明,再次提到同一文件则不再重复。它还会记录你在日常工作中说出的规则,并在后续操作可能违背这些规则时提醒。如果提示涉及某个定义,Vesta 会附上先前会话从哪些代码区域得出相关结论,方便代理核对而不是盲信。对于没有指名任何对象的提示,Vesta 不会打扰用户。
用户可以通过斜杠命令主动询问。/vesta:shape 用于在打开文件前了解仓库的组成;/vesta:touches 显示一次改动会影响到哪些范围、哪些测试覆盖它;/vesta:does 用日常语言描述一类工作,然后返回这些工作通常发生在代码中的何处;/vesta:defects 会自动寻找值得修复的问题;/vesta:decided 列出你已经声明的规则,并检查代码是否遵守;/vesta:tutorial 则让你在自己的仓库中一页一页地学习。/vesta:help 可以查看全部命令。其中 /vesta:does 并不等价于 grep——它需要把业务词汇(如“重试失败请求”“对提交去重”)翻译成代码中的实际命名,这种词汇映射每个仓库只需要推导一次。
在空目录中请求构建整个项目时,Vesta 会提供两种选择:交互式构建,或先达成契约再自动运行到完成。如果选择交互式,之后不会再询问;自动化模式绝不会被未经确认地触发,也不会在已经有人工作过的仓库中主动提供。
Vesta 使用代理自身的推理能力运行,不持有 API 密钥,也不会发起任何网络请求。它根据任务类型选择模型:读取定义并打标签这类对每个定义只发生一次的操作使用小模型,因为大规模使用大模型会让方案过于昂贵;而生成需要被采纳的合同、规格等合成内容时才使用一次更大模型。所有推导结果保存在 ~/.vesta 下,可以随时删除。/vesta:held 可以报告当前保存了哪些内容,并回收已删除仓库的缓存。任何数据都不会离开用户的机器。
Vesta 也有明确的边界:它不读取任何隐藏文件——包括 .env、.aws、.ssh 等点开头文件——也不会进入 venv、node_modules、site-packages、vendor 等依赖目录。它不会断言自己没有推导过的内容;规则只依据你实际说出的、经过转录验证的语句记录。遇到无法解析的引用时,它会如实报告,而不是暗示已经得到完整答案。工作区中项目之间的引用若未纳入图谱,也会明确标注。
运行要求包括 Python 3.10 或更高版本,以及对应语言的语言服务器,例如 Python 使用 pyright-langserver、Rust 使用 rust-analyzer、Go 使用 gopls。Vesta 首次使用时会构建自己的运行时,不需要用户安装额外依赖;如果某个仓库使用的语言没有对应服务器,它也会报告,而不是悄悄给出不完整的解析。
项目公开了一组成本测量数据。针对本仓库的只读结构性问题,以相同提示词、宿主自带的 /cost 进行对照实验:不安装 Vesta 的对照组花费 0.4872 美元;由代理主动调用工具的实现花费 0.3747 美元,降低 23.1%;将信息以注入方式提前放到代理面前的实现花费 0.2980 美元,降低 38.8%。注入模式在代理做任何决定前只输出了 799 个字符,而工具模式通过三次调用给出了 21,905 个字符。更多细节见 doc/measurements.md,测试框架位于 trial/ 目录。不过作者也明确承认,大部分效果尚未被量化——例如在编辑文件时及时呈现缺陷能否改善最终产出、词汇映射能否发现 grep 发现不了的问题、规则提取是否值得保留,这些都还没有验证。相关开放问题记录在 doc/open-questions.md。
Vesta 以 Apache 2.0 许可发布,具体条款见 LICENSE 与 NOTICE.md。安装命令为 /plugin marketplace add https://gitlab.com/causum/vesta.git 和 /plugin install vesta@causum。