【开源自荐】Context Weaver 又一 Fork: 努力做 ACE 平替, 完全本地的语义检索方案
- 内容介绍
- 文章标签
- 相关推荐
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
TL, DR
@hsingjui 原始项目: [开源] ContextWeaver 本地代码库语义检索工具,目标是ace平替
@lyy0709 Fork: 有没有可以替代 Augment Context Engine(ACE)的 MCP? - #9,来自 lyy0709
在两位佬友的项目基础上, 为 Context Weaver 进行了一些交互与功能的修改:
- 更精细明确的显式索引范围配置, 与索引前范围确认
- MCP 模式改为 SKILL 模式 (现阶段包含两个Skill)
- "提示词增强"作为 SKILL 融入 Agent CLI 工作流
- 清理索引数据库等实用小工具
GitHub - GowayLee/ContextWeaver: ContextWeaver 是一个利用 Tree-sitter...
ContextWeaver 是一个利用 Tree-sitter 和向量搜索为大语言模型提供本地代码库智能上下文编织与检索的工具
npm i -g @haurynlee/contextweaver
安装 Skills
cw install-skills --dir /path/to/skills
下面是废话()
背景
作为一个重度 Vibe Coding 患者, 一有空就折腾工具. 恰好近期的一些开发需求需要在中大型仓库中完成, 在L站刷贴的过程中接触到了 ACE (Augment Context Engine). 奈何晚了一步, Augment 已经开始收费没法爽用了. 同时已有的 ACE 等中转方案看起来都比较折腾而且可能不稳定, 所以我就开始在社区中寻找稳定的平替. 然后就发现了 Context Weaver.
Context Weaver 基于 tree-sitter 与向量搜索实现了类似 ACE 的索引效果(下文简称CW). 具体效果可以参考佬友的评测:
- https://linux.do/t/topic/1379378
- https://linux.do/t/topic/1404875
可以看出通用效果虽然不及闭源方案, 但是在一些特殊场景下亦有它的优势(查询带精确术语约束). 考虑到 CW 是一个开源纯本地的索引平台而且语义索引的使用频率并不高, 我认为它已经可以满足个人大部分需求而且极具潜力.
工作
配置逻辑
在实际体验原版 CW 时配置 ignorePatters 总是一个摩擦特别大的体验. 所以我们为它大范围改动了索引范围的配置. 现在支持项目级别配置 includePatterns 与 ignorePatterns, 这一配置基本上可以覆盖绝大多数的排除逻辑. 实测下来实装了精细配置的 CW 索引范围更加显式可控, 大幅度提升了语义检索的体验.
MCP → SKILL
在使用过程中归纳发现语义检索的使用概率其实并不高, 往往只有在 Task 起步阶段才会使用, 得到源文件目录后基本上不会再次使用. 所以 CW 作为 MCP 长期占据上下文并不优雅. 因此将 MCP 的形式改为了 SKILL+脚本. 而且 SKILL 拥有更多自定义说明空间, 可以更好地引导大模型使用 CW, 也为后续提升 CW 复杂度铺路.
提示词增强 (Prompt Enhancer)
佬友 @lyy0709 在原版 CW 的基础上加入了类 ACE 的提示词增强功能. 但是当前工作主要是实现了 CLI 功能以及一个 WebUI. 但是考虑到 CW 的使用场景大多在 CLI Agent, 为 Enhancer 额外配置一个 LLM 接口以及跳转浏览器交互体验可能并非最优. 结合将 MCP 迁移到 SKILL 的工作, 我们分析例佬友拆出来的增强逻辑, 将此功能也包装到一个 SKILL, 将它设计为一个能够融入 Agent 工作流的功能(不再需要依赖额外的 LLM 接口). (其实更好的实现是为各个 CLI 开发对应插件, 使用 Hook 来直接操作 Session, 但是工作量过大未考虑.)
实用小工具
一些大仓库的索引数据库的体积会很大: 400个 .py 文件的项目 (Astrbot) 的索引数据库大约为 35MB. 我们为 CW 增加了一个全局的项目索引注册表, 记录数据库与项目路径. 并提供一个命令可以检查项目路径失效的数据库, 方便清理无用数据库.
下一步
上述改进主要让 CW 在日常使用更加顺手, 并没有聚焦提升 CW 的核心索引以及检索能力, 而这些地方也是 CW 与闭源工具的差距所在.
未来计划尝试对 CW 的核心进行一些改进, 探索类似"提示词增强"这种语义检索+的功能.
网友解答:--【壹】--:
支持佬友
--【贰】--:
感谢分享
--【叁】--:
感谢大佬开源
--【肆】--:
前排支持!
--【伍】--:
让我想到写论文时为了精确表达,所以没有全称之前不能出现缩写确实是有道理的
--【陆】--:
先码住吧
--【柒】--:
关注了,到时候试用一下
--【捌】--:
感谢大佬
--【玖】--:
感谢佬友 我去试试
--【拾】--:
学习佬友
--【拾壹】--:
后面试试
--【拾贰】--:
感谢大佬的分享
--【拾叁】--:
感谢分享,看到ACE怎么第一时间想到游戏
--【拾肆】--:
感谢大佬分享
--【拾伍】--:
我第一次看到的时候也以为是团灭了
--【拾陆】--:
严肃支持
--【拾柒】--:
感谢佬友 我去试试
--【拾捌】--:
试用一下,看看效果
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
TL, DR
@hsingjui 原始项目: [开源] ContextWeaver 本地代码库语义检索工具,目标是ace平替
@lyy0709 Fork: 有没有可以替代 Augment Context Engine(ACE)的 MCP? - #9,来自 lyy0709
在两位佬友的项目基础上, 为 Context Weaver 进行了一些交互与功能的修改:
- 更精细明确的显式索引范围配置, 与索引前范围确认
- MCP 模式改为 SKILL 模式 (现阶段包含两个Skill)
- "提示词增强"作为 SKILL 融入 Agent CLI 工作流
- 清理索引数据库等实用小工具
GitHub - GowayLee/ContextWeaver: ContextWeaver 是一个利用 Tree-sitter...
ContextWeaver 是一个利用 Tree-sitter 和向量搜索为大语言模型提供本地代码库智能上下文编织与检索的工具
npm i -g @haurynlee/contextweaver
安装 Skills
cw install-skills --dir /path/to/skills
下面是废话()
背景
作为一个重度 Vibe Coding 患者, 一有空就折腾工具. 恰好近期的一些开发需求需要在中大型仓库中完成, 在L站刷贴的过程中接触到了 ACE (Augment Context Engine). 奈何晚了一步, Augment 已经开始收费没法爽用了. 同时已有的 ACE 等中转方案看起来都比较折腾而且可能不稳定, 所以我就开始在社区中寻找稳定的平替. 然后就发现了 Context Weaver.
Context Weaver 基于 tree-sitter 与向量搜索实现了类似 ACE 的索引效果(下文简称CW). 具体效果可以参考佬友的评测:
- https://linux.do/t/topic/1379378
- https://linux.do/t/topic/1404875
可以看出通用效果虽然不及闭源方案, 但是在一些特殊场景下亦有它的优势(查询带精确术语约束). 考虑到 CW 是一个开源纯本地的索引平台而且语义索引的使用频率并不高, 我认为它已经可以满足个人大部分需求而且极具潜力.
工作
配置逻辑
在实际体验原版 CW 时配置 ignorePatters 总是一个摩擦特别大的体验. 所以我们为它大范围改动了索引范围的配置. 现在支持项目级别配置 includePatterns 与 ignorePatterns, 这一配置基本上可以覆盖绝大多数的排除逻辑. 实测下来实装了精细配置的 CW 索引范围更加显式可控, 大幅度提升了语义检索的体验.
MCP → SKILL
在使用过程中归纳发现语义检索的使用概率其实并不高, 往往只有在 Task 起步阶段才会使用, 得到源文件目录后基本上不会再次使用. 所以 CW 作为 MCP 长期占据上下文并不优雅. 因此将 MCP 的形式改为了 SKILL+脚本. 而且 SKILL 拥有更多自定义说明空间, 可以更好地引导大模型使用 CW, 也为后续提升 CW 复杂度铺路.
提示词增强 (Prompt Enhancer)
佬友 @lyy0709 在原版 CW 的基础上加入了类 ACE 的提示词增强功能. 但是当前工作主要是实现了 CLI 功能以及一个 WebUI. 但是考虑到 CW 的使用场景大多在 CLI Agent, 为 Enhancer 额外配置一个 LLM 接口以及跳转浏览器交互体验可能并非最优. 结合将 MCP 迁移到 SKILL 的工作, 我们分析例佬友拆出来的增强逻辑, 将此功能也包装到一个 SKILL, 将它设计为一个能够融入 Agent 工作流的功能(不再需要依赖额外的 LLM 接口). (其实更好的实现是为各个 CLI 开发对应插件, 使用 Hook 来直接操作 Session, 但是工作量过大未考虑.)
实用小工具
一些大仓库的索引数据库的体积会很大: 400个 .py 文件的项目 (Astrbot) 的索引数据库大约为 35MB. 我们为 CW 增加了一个全局的项目索引注册表, 记录数据库与项目路径. 并提供一个命令可以检查项目路径失效的数据库, 方便清理无用数据库.
下一步
上述改进主要让 CW 在日常使用更加顺手, 并没有聚焦提升 CW 的核心索引以及检索能力, 而这些地方也是 CW 与闭源工具的差距所在.
未来计划尝试对 CW 的核心进行一些改进, 探索类似"提示词增强"这种语义检索+的功能.
网友解答:--【壹】--:
支持佬友
--【贰】--:
感谢分享
--【叁】--:
感谢大佬开源
--【肆】--:
前排支持!
--【伍】--:
让我想到写论文时为了精确表达,所以没有全称之前不能出现缩写确实是有道理的
--【陆】--:
先码住吧
--【柒】--:
关注了,到时候试用一下
--【捌】--:
感谢大佬
--【玖】--:
感谢佬友 我去试试
--【拾】--:
学习佬友
--【拾壹】--:
后面试试
--【拾贰】--:
感谢大佬的分享
--【拾叁】--:
感谢分享,看到ACE怎么第一时间想到游戏
--【拾肆】--:
感谢大佬分享
--【拾伍】--:
我第一次看到的时候也以为是团灭了
--【拾陆】--:
严肃支持
--【拾柒】--:
感谢佬友 我去试试
--【拾捌】--:
试用一下,看看效果

