逆向复现augment ACE进展与求助!
如题,augemtn的AceTool 开始收费了。我查阅了一些已有的方法,以下是目前的一些拙见,我希望能和愿意动手的人一起,把它背后的思路拆开、跑通,最后做出一个可复现、可替代的开源方案。 我自己能力有限,看到这的佬们,如果有推荐算法、大模型岗位的经历,刚好也对代码检索/代码索引感兴趣,请私信我,一起把这件事推进下去。
以下是正文:
从augment的博文描述来看,它大概率用了自研的 embedding 模型,对代码的逻辑关系处理得更好。它的代码索引 API 几乎是瞬间返回,而且能细到行号级别,因此我推测它的做法是先把代码切chunk,再对 chunk 做 embedding 并建立索引。
但这条路线如果直接用通用 embedding 模型,几乎很难达到同样效果。
站内有佬复现了ace,[开源] ContextWeaver 本地代码库语义检索工具,目标是ace平替 ,基本上可以平替ace,但是搜索到的内容没有ace的精准,大部分命中的都是文档。我也试了 qdrant 的 MCP,用 all-MiniLM-L6-v2 去做 RAG,检索出来的文档而不是代码的内容,而且大多数是混乱不香干的。
博客里还提到他们做了量化,并在量化后的 embedding 上用 ANN 做近邻搜索,但没说明具体算法猜测可能是 HNSW。至于增量更新的方法,原文示意图如下
在缺少高质量 code embedding 模型的情况下,如果我们要给代码库建立索引,就需要把信息组织得更结构化,而不是只依赖向量相似度。
我目前想到一个相对可行的方案是:既然代码embedding的效果达不到闭源效果,那就让 LLM 来做分层摘要,用摘要来承载语义,结构承载关系。
具体做法为先对每个文件生成摘要,要求覆盖文件职责、关键函数/类、重要数据结构、对外接口、依赖关系等。然后从文件递归到根目录,每次把子节点摘要汇总到父节点,逐层形成目录树摘要。最终根目录摘要应包含整个仓库最重要的信息与入口。得到这棵树之后,检索时从根开始做深搜,每一层计算 top-k 节点的相似度,逐层往下。这样总体计算量约 d·k,不用对全量文件做相似度。当树检索把候选范围缩到 k 个或更少文件后,再对这些文件进行 chunk 化 RAG,或者直接让 LLM 在候选文件里定位具体行号。
假设一个 50k LOC ,500 文件 的仓库,一行代码约 10 token,如果每个文件摘要要求覆盖到函数级信息,那么即便按 输入 2k、输出 1k 来算,总消耗约是:3k token/文件 × 500 文件 ≈ 1.5M token,如果用 1 token 1刀的模型(大部分佬都有免费token),成本大约 1.5~2 美元,我觉得是可以接受的。
不过,对复杂的仓库,同一个功能往往跨越多个目录与层级:前端、后端、数据库、消息队列、配置、异步任务,语义搜索只能命中显性写出来的文件,它所调用的函数、隐藏的依赖就很难被一起带出来。因此我认为还需要将pub sub、http、import等关系提取出来,提取为有向无环图,再对涉及到的文件进行类似HNSW的广搜,得到N个文件,最终得到N+K个文件。
说在最后:我知道这篇文章里很多想法都很粗糙,但我依然想把它发出来,我相信这件事靠一个人很难做成,需要更多有经验的佬共创。
欢迎佬们给方向、指正错误!如果你做过向量检索、ANN/HNSW、代码分析、RAG/Agent、或者做过大型仓库的工程化落地、或者有逆向工程的经历,请私信我!我会持续的将开发的进展更新在L站。
21 posts - 20 participants
Read full topic
via LINUX DO - 热门话题 (author: yxp934)
Invalid media: image
如题,augemtn的AceTool 开始收费了。我查阅了一些已有的方法,以下是目前的一些拙见,我希望能和愿意动手的人一起,把它背后的思路拆开、跑通,最后做出一个可复现、可替代的开源方案。 我自己能力有限,看到这的佬们,如果有推荐算法、大模型岗位的经历,刚好也对代码检索/代码索引感兴趣,请私信我,一起把这件事推进下去。
以下是正文:
从augment的博文描述来看,它大概率用了自研的 embedding 模型,对代码的逻辑关系处理得更好。它的代码索引 API 几乎是瞬间返回,而且能细到行号级别,因此我推测它的做法是先把代码切chunk,再对 chunk 做 embedding 并建立索引。
但这条路线如果直接用通用 embedding 模型,几乎很难达到同样效果。
站内有佬复现了ace,[开源] ContextWeaver 本地代码库语义检索工具,目标是ace平替 ,基本上可以平替ace,但是搜索到的内容没有ace的精准,大部分命中的都是文档。我也试了 qdrant 的 MCP,用 all-MiniLM-L6-v2 去做 RAG,检索出来的文档而不是代码的内容,而且大多数是混乱不香干的。
博客里还提到他们做了量化,并在量化后的 embedding 上用 ANN 做近邻搜索,但没说明具体算法猜测可能是 HNSW。至于增量更新的方法,原文示意图如下
在缺少高质量 code embedding 模型的情况下,如果我们要给代码库建立索引,就需要把信息组织得更结构化,而不是只依赖向量相似度。
我目前想到一个相对可行的方案是:既然代码embedding的效果达不到闭源效果,那就让 LLM 来做分层摘要,用摘要来承载语义,结构承载关系。
具体做法为先对每个文件生成摘要,要求覆盖文件职责、关键函数/类、重要数据结构、对外接口、依赖关系等。然后从文件递归到根目录,每次把子节点摘要汇总到父节点,逐层形成目录树摘要。最终根目录摘要应包含整个仓库最重要的信息与入口。得到这棵树之后,检索时从根开始做深搜,每一层计算 top-k 节点的相似度,逐层往下。这样总体计算量约 d·k,不用对全量文件做相似度。当树检索把候选范围缩到 k 个或更少文件后,再对这些文件进行 chunk 化 RAG,或者直接让 LLM 在候选文件里定位具体行号。
假设一个 50k LOC ,500 文件 的仓库,一行代码约 10 token,如果每个文件摘要要求覆盖到函数级信息,那么即便按 输入 2k、输出 1k 来算,总消耗约是:3k token/文件 × 500 文件 ≈ 1.5M token,如果用 1 token 1刀的模型(大部分佬都有免费token),成本大约 1.5~2 美元,我觉得是可以接受的。
不过,对复杂的仓库,同一个功能往往跨越多个目录与层级:前端、后端、数据库、消息队列、配置、异步任务,语义搜索只能命中显性写出来的文件,它所调用的函数、隐藏的依赖就很难被一起带出来。因此我认为还需要将pub sub、http、import等关系提取出来,提取为有向无环图,再对涉及到的文件进行类似HNSW的广搜,得到N个文件,最终得到N+K个文件。
说在最后:我知道这篇文章里很多想法都很粗糙,但我依然想把它发出来,我相信这件事靠一个人很难做成,需要更多有经验的佬共创。
欢迎佬们给方向、指正错误!如果你做过向量检索、ANN/HNSW、代码分析、RAG/Agent、或者做过大型仓库的工程化落地、或者有逆向工程的经历,请私信我!我会持续的将开发的进展更新在L站。
21 posts - 20 participants
Read full topic
via LINUX DO - 热门话题 (author: yxp934)
Invalid media: image
高强度在生产环境vibecoding了大半年,具有丰富的vibecoding经验,可解答世界万物
官方claude,中转claude,智谱,codex都深度体验过。
公司的五年的老项目上深度引入vibecoding
新项目也用vibecoding快速完成mvp
go java flutter vue 都深度使用
可解答未接触过ai编程或者刚入门的佬友各类问题
23 posts - 15 participants
Read full topic
via LINUX DO - 最新话题 (author: 兔子馍馍)
官方claude,中转claude,智谱,codex都深度体验过。
公司的五年的老项目上深度引入vibecoding
新项目也用vibecoding快速完成mvp
go java flutter vue 都深度使用
可解答未接触过ai编程或者刚入门的佬友各类问题
23 posts - 15 participants
Read full topic
via LINUX DO - 最新话题 (author: 兔子馍馍)
小黄鱼秒下单
话说小黄鱼上有时候发宝贝时,刚一提交就有人秒下订单联系,我想信他们一定是用了什么插件之类的东西。
有佬知道是什么吗
4 posts - 3 participants
Read full topic
via LINUX DO - 最新话题 (author: L.MD)
话说小黄鱼上有时候发宝贝时,刚一提交就有人秒下订单联系,我想信他们一定是用了什么插件之类的东西。
有佬知道是什么吗
4 posts - 3 participants
Read full topic
via LINUX DO - 最新话题 (author: L.MD)
最后一周上班了,大家都是什么状态呀
这周上完就要过农历新年了,大家都是什么工作状态,我现在已经不想上班了,我打算最后一周天天看 L 站!!!
39 posts - 36 participants
Read full topic
via LINUX DO - 最新话题 (author: sanjin)
这周上完就要过农历新年了,大家都是什么工作状态,我现在已经不想上班了,我打算最后一周天天看 L 站!!!
39 posts - 36 participants
Read full topic
via LINUX DO - 最新话题 (author: sanjin)
遭到举报的帖子已被恢复 是不是没有事情啊 各位佬
早上来了 第一件事就是打卡L站, 发现邮件说有个帖子被举报了 吓一跳, 我寻思我啥也没干啊,我是良民啊 然后另一个消息是已恢复了, 看到举报的的帖子是在外卖大战那个福利帖发的千问那个, 关键那里面的帖子下面都在发千问的,为啥要举报我。。。。想来应该没事情吧。。。 有懂的吗
6 posts - 6 participants
Read full topic
via LINUX DO - 最新话题 (author: anxinya)
Invalid media: image
早上来了 第一件事就是打卡L站, 发现邮件说有个帖子被举报了 吓一跳, 我寻思我啥也没干啊,我是良民啊 然后另一个消息是已恢复了, 看到举报的的帖子是在外卖大战那个福利帖发的千问那个, 关键那里面的帖子下面都在发千问的,为啥要举报我。。。。想来应该没事情吧。。。 有懂的吗
6 posts - 6 participants
Read full topic
via LINUX DO - 最新话题 (author: anxinya)
Invalid media: image
领导是有病吧?
他打算年后把我同事开了,问题是给我说干嘛?搞的我现在纠结。说吧又担心同事直接去和领导对线给我卖了,不说吧,三十多的人了,突然失业没个准备的也担心直接崩了。麻了
21 posts - 18 participants
Read full topic
via LINUX DO - 最新话题 (author: horie)
他打算年后把我同事开了,问题是给我说干嘛?搞的我现在纠结。说吧又担心同事直接去和领导对线给我卖了,不说吧,三十多的人了,突然失业没个准备的也担心直接崩了。麻了
21 posts - 18 participants
Read full topic
via LINUX DO - 最新话题 (author: horie)
thatapi是数据重置了 还是被盗了
怎么今天一看就剩50额度了 大家都是这样 还是只有我这样了
11 posts - 7 participants
Read full topic
via LINUX DO - 最新话题 (author: hahaho)
怎么今天一看就剩50额度了 大家都是这样 还是只有我这样了
11 posts - 7 participants
Read full topic
via LINUX DO - 最新话题 (author: hahaho)
anyrouter就没成功过,佬们急救啊!
站内的方案基本都是试过,都没法解决,有佬知道为啥嘛
20 posts - 11 participants
Read full topic
via LINUX DO - 最新话题 (author: woshizx)
Invalid media:
image
image
站内的方案基本都是试过,都没法解决,有佬知道为啥嘛
20 posts - 11 participants
Read full topic
via LINUX DO - 最新话题 (author: woshizx)
Invalid media:
image
image
开发板上可跑的C语言类OpenClaw实现
看到有个佬,用C语言写了一个类OpenClaw实现,不需要MacMini,不需要VPS,只需要一片某宝上25块钱就能买到的开发板!语音对话,然后语音输出。
github.com
GitHub - memovai/mimiclaw: MimiClaw: Run OpenClaw on a $5 chip. No OS(Linux)....
MimiClaw: Run OpenClaw on a $5 chip. No OS(Linux). No Node.js. No Mac mini. No Raspberry Pi. No VPS.😗Local-first memory. Shareable. Privacy-first.
3 posts - 2 participants
Read full topic
via LINUX DO - 最新话题 (author: arch)
Invalid media:
image
image
看到有个佬,用C语言写了一个类OpenClaw实现,不需要MacMini,不需要VPS,只需要一片某宝上25块钱就能买到的开发板!语音对话,然后语音输出。
github.com
GitHub - memovai/mimiclaw: MimiClaw: Run OpenClaw on a $5 chip. No OS(Linux)....
MimiClaw: Run OpenClaw on a $5 chip. No OS(Linux). No Node.js. No Mac mini. No Raspberry Pi. No VPS.😗Local-first memory. Shareable. Privacy-first.
3 posts - 2 participants
Read full topic
via LINUX DO - 最新话题 (author: arch)
Invalid media:
image
image
Microsoft Authenticator 求助
Authenticator有没有办法在电脑上面查看这个码呀
8 posts - 3 participants
Read full topic
via LINUX DO - 最新话题 (author: qq123321)
Invalid media: image
Authenticator有没有办法在电脑上面查看这个码呀
8 posts - 3 participants
Read full topic
via LINUX DO - 最新话题 (author: qq123321)
Invalid media: image
话说whatsapp当网盘存储有什么坑吗
主要是存些raw的原片啥的 ✈️自己号暂时登不上去 就先不弄了
1 post - 1 participant
Read full topic
via LINUX DO - 最新话题 (author: Yukinosita)
主要是存些raw的原片啥的 ✈️自己号暂时登不上去 就先不弄了
1 post - 1 participant
Read full topic
via LINUX DO - 最新话题 (author: Yukinosita)
春节回家的车票你们候补到了吗?
候补了13,14号的车票,现在还没候补到,佬友们有候补到车票吗?而且今天也是春节假期最后一天车票的开票日,记得抢回程车票哦
18 posts - 14 participants
Read full topic
via LINUX DO - 最新话题 (author: 肖恩)
候补了13,14号的车票,现在还没候补到,佬友们有候补到车票吗?而且今天也是春节假期最后一天车票的开票日,记得抢回程车票哦
18 posts - 14 participants
Read full topic
via LINUX DO - 最新话题 (author: 肖恩)
今天最后一天班,上完就放假回家过年咯
5天年假,公司放了4天,留了一天给我们平时用,理论上按年假放的话2月6上完班就放假了。
下午4点下班,回家收拾东西,和对象出去吃个烤肉火锅,然后永劫无间启动,明天开车送对象回家我也回家了。
往往幸福快到来的那一刻是最幸福的:tieba_002:
16 posts - 11 participants
Read full topic
via LINUX DO - 最新话题 (author: HonXin)
5天年假,公司放了4天,留了一天给我们平时用,理论上按年假放的话2月6上完班就放假了。
下午4点下班,回家收拾东西,和对象出去吃个烤肉火锅,然后永劫无间启动,明天开车送对象回家我也回家了。
往往幸福快到来的那一刻是最幸福的:tieba_002:
16 posts - 11 participants
Read full topic
via LINUX DO - 最新话题 (author: HonXin)
opus 4.6 极速版?
省流:2.5倍的速度 6倍的价格
4 posts - 4 participants
Read full topic
via LINUX DO - 最新话题 (author: 莫蓝)
Invalid media: image
省流:2.5倍的速度 6倍的价格
4 posts - 4 participants
Read full topic
via LINUX DO - 最新话题 (author: 莫蓝)
Invalid media: image
Leetcode每日一题 —— 1382. 将二叉搜索树变平衡
力扣 LeetCode
1382. 将二叉搜索树变平衡 - 力扣(LeetCode)
1382. 将二叉搜索树变平衡 - 给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法,请你返回任意一种。 如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。 示例 1: [https://assets.leetcode.com/uploads/2021/08/10/balance1-tree.jpg] 输入:root =...
思路
第一反应,二叉搜索树转平衡树,扭来扭去就好了。左旋右旋我都写好了,准备改改昨天的代码就能用。忽然发现不对,十分不对,完全没必要这么麻烦。
首先树就是搜索树,
代码
1 post - 1 participant
Read full topic
via LINUX DO - 最新话题 (author: 魔法师)
Invalid media: image
力扣 LeetCode
1382. 将二叉搜索树变平衡 - 力扣(LeetCode)
1382. 将二叉搜索树变平衡 - 给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法,请你返回任意一种。 如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。 示例 1: [https://assets.leetcode.com/uploads/2021/08/10/balance1-tree.jpg] 输入:root =...
思路
第一反应,二叉搜索树转平衡树,扭来扭去就好了。左旋右旋我都写好了,准备改改昨天的代码就能用。忽然发现不对,十分不对,完全没必要这么麻烦。
首先树就是搜索树,
O(n)就能获得一个排序号的数组,再用O(n)将数组构造成平衡树就好了。不用考虑子树的子树是怎么样的,简单直接。代码
class Solution {
private List<Integer> list;
// 中序遍历转为排序后的数组
private void toList(TreeNode root) {
if (root.left != null) {
toList(root.left);
}
list.add(root.val);
if (root.right != null) {
toList(root.right);
}
}
private TreeNode toBST(int l, int r) {
if (l > r) {
return null;
}
int mid = (l + r) / 2;
TreeNode root = new TreeNode(list.get(mid));
root.left = toBST(l, mid - 1);
root.right = toBST(mid + 1, r);
return root;
}
public TreeNode balanceBST(TreeNode root) {
list = new ArrayList<>();
toList(root);
return toBST(0, list.size() - 1);
}
}
1 post - 1 participant
Read full topic
via LINUX DO - 最新话题 (author: 魔法师)
Invalid media: image
这年你们怎么过
过年 偶尔走下亲戚,接待下亲戚,其余就打算一个人开着小电驴在家里乡村街道流串逛。
老友们,你们呢?
14 posts - 8 participants
Read full topic
via LINUX DO - 最新话题 (author: Carb)
过年 偶尔走下亲戚,接待下亲戚,其余就打算一个人开着小电驴在家里乡村街道流串逛。
老友们,你们呢?
14 posts - 8 participants
Read full topic
via LINUX DO - 最新话题 (author: Carb)
ace-tool挂了,求个付费的Prompt提示词增强插件
本来想去用官方的ace,但是一直卡在注册,人机认证不让我过
中转站和逆向用习惯了,有不有插件能直接支持api调用的?
2 posts - 2 participants
Read full topic
via LINUX DO - 最新话题 (author: 专注于小白教程)
本来想去用官方的ace,但是一直卡在注册,人机认证不让我过
中转站和逆向用习惯了,有不有插件能直接支持api调用的?
2 posts - 2 participants
Read full topic
via LINUX DO - 最新话题 (author: 专注于小白教程)
佬们,过年给父母买什么有什么推荐的吗?
预算1000左右,已经给老妈准备了1000左右的化妆品,但是在给老爸准备东西的时候不清楚要买啥。。。
我想半天没想起来,我爸喜欢什么,讨厌什么。。。
1 post - 1 participant
Read full topic
via LINUX DO - 最新话题 (author: 奥托·阿波卡利斯)
预算1000左右,已经给老妈准备了1000左右的化妆品,但是在给老爸准备东西的时候不清楚要买啥。。。
我想半天没想起来,我爸喜欢什么,讨厌什么。。。
1 post - 1 participant
Read full topic
via LINUX DO - 最新话题 (author: 奥托·阿波卡利斯)
微信领零钱提现免费额度
每天闲着没事,可以打开小程序-微信支付提现笔笔省,右上角点击,测试最近都是88、66的额度。
2 posts - 2 participants
Read full topic
via LINUX DO - 最新话题 (author: L_JW)
每天闲着没事,可以打开小程序-微信支付提现笔笔省,右上角点击,测试最近都是88、66的额度。
2 posts - 2 participants
Read full topic
via LINUX DO - 最新话题 (author: L_JW)
过年还买皇帝的新装吗?
pdd 买了一双39.9 平底鞋,45的风衣,29的裤子,10元7双的袜子。 全身上下皇帝新装总共花了120左右。
你们的新装花了多少钱?
7 posts - 6 participants
Read full topic
via LINUX DO - 最新话题 (author: Carb)
pdd 买了一双39.9 平底鞋,45的风衣,29的裤子,10元7双的袜子。 全身上下皇帝新装总共花了120左右。
你们的新装花了多少钱?
7 posts - 6 participants
Read full topic
via LINUX DO - 最新话题 (author: Carb)
佬,快过年了,放假去哪过啊!
我先来,我要去岳父岳母家过年了! 还没放假,🐮🐴还在努力过好赚点车费。我要去嗦粉的城市。
4 posts - 3 participants
Read full topic
via LINUX DO - 最新话题 (author: jack jack)
我先来,我要去岳父岳母家过年了! 还没放假,🐮🐴还在努力过好赚点车费。我要去嗦粉的城市。
4 posts - 3 participants
Read full topic
via LINUX DO - 最新话题 (author: jack jack)