我发起了一个项目 - Codetrip,一个面向编码智能体的开源代码智能引擎。
我想解决的问题很简单:
大多数代码图工具在索引之后才有用,但一旦代理编辑了代码库,其源代码搜索和图查询可能会暂时描述代码的不同版本。这使得在实际编码过程中,调用链和影响分析的结果难以保证其可靠性。
Codetrip 采用了不同的方法:
一次编辑,一次查询,一个一致的图。
它监控代码库,逐步重建受影响的图,并且只有在相关的源代码、符号、关系和元数据都准备就绪后才会发布新的版本。查询永远不会看到部分更新的版本。
新发布的 v0.3.0 版本还引入了 brief,这是一个面向编码智能体的确定性上下文包命令。给定一个符号,它会在一个有界响应中返回定义、调用者、被调用者、相关文件、测试和影响信号。
例如:
codetrip brief --repo my-project --symbol CreateOrder
无需让智能体重复搜索符号、打开文件、查找引用、追踪调用者和定位测试,只需执行一个结构化查询即可。
一些设计选择:
-
完全本地化且开源
-
Codetrip 内部无需 LLM
-
提供 CLI、MCP 服务器和 Go 库三种使用方式
-
提供适用于 Linux、macOS 和 Windows 的单二进制版本
-
混合词法、语义和图检索
-
支持多语言解析,目前 Go 和 TypeScript 已通过最严格的实际代码库验证
我还在代码库中发布了基准测试方法和原始结果。在一个编辑后工作流程基准测试中,Codetrip 仅需一次产品工具查询,而其他测试的多查询工作流程则需要三到四次。这些结果是可复现的项目测量结果,而非普遍适用的结论,并欢迎进行独立测试。
GitHub:https://github.com/mengshi02/codetrip
v0.3.0 版本发布:
https://github.com/mengshi02/codetrip/releases/tag/v0.3.0
欢迎大家试用,也希望大家能给我一些反馈:
-
版本一致性在您的编码代理工作流程中是否真的有价值?
-
您希望符号上下文包包含哪些信息?
-
接下来我应该验证、精调哪种语言或代码库?
该项目尚处于早期阶段,因此错误报告、批评意见和基准测试复现步骤都非常宝贵。