- 角色
- 个人项目
- 状态
- 私有预发布
- 版本
- origin/main (private)
- 关键结果
- 仓库 pack 和类型化记忆,让 Agent 新开会话也能拿到有根据的上下文。
- 技术栈
- RustMCPAgent 工具
是什么
RepoLens 会把整个仓库扫描成一份结构化、不可变的
「pack」(一份给 Agent 看的仓库快照),通过 Model Context Protocol(模型上下文协议)——一套开放协议,让 AI agent 通过统一接口发现并调用外部工具,而不必为每个工具单独写胶水代码。 server 提供出来,
同时维护一张会随时间衰减的类型化记忆图。它不替 Agent 写代码,
只是让每个新会话不必从零开始。目前还是私有预发布,它具体对应哪个
快照,写在下面的「证据」里。
要解决的问题
编程 Agent 写代码不差,但会话一结束,项目上下文就丢了。每 个新会话都得冷启动:重新 grep 同样的文件、重新推导同样的 约定、重新犯几周前就发现、也回滚过的老错——没人来纠偏,Agent 就把似是而非的猜测当真。最朴素的办法——把上下文窗口 开大、把更多文件塞进提示词——只会让信号淹没在噪声里 (「lost in the middle」)。瓶颈不在模型够不够聪明, 而在它有没有一份持久、有结构的认知。
约束与关键决策
给它一份有结构的认知,而不是更大的提示词。 问题既然出在冷启动时的重新发现,而塞更多文件只会稀释信号, RepoLens 就把仓库扫描成不可变的类型化 pack——文件、符号、 依赖图、profile——再通过 26 个 MCP 工具(代码搜索、图遍历、 摘要、约定提取、记忆、wiki)暴露出来,而不是去扩大上下文 窗口。代价:pack 要先构建、还要持续更新; 而且它不可变,要等到下一次扫描才会刷新。
让记忆有类型、会衰减、能把记下来的事实拿去和当前代码状态核对,让不再成立的旧知识能被标记或丢弃,而不是被盲目采信。,而不是一摊 扁平存储。扁平的 Retrieval-Augmented Generation(检索增强生成)——在查询时从存储里取出相关片段,喂给模型。最朴素的做法不记录新鲜度和可信度,已经回滚掉的旧事实可能又冒出来。 存储没有「过期」和「可信度」 的概念,Agent 于是一错再错,犯的还是早就回滚过的老错。这里 的记忆是一张类型化的图(五类节点),按指数衰减,并对照当前 pack 核对每条还站不站得住——而不是一摊扁平的 embedding 存储。代价:要维护的环节多了;而且召回出来 的记忆虽然经过衰减、也对照过代码,却终究不是事实 来源——它本来就可能旧、可能错。
在能力补齐之前,先把现在的状态如实讲清。
Agent 工具普遍爱夸大,可工具一旦说过了头,反而会侵蚀它想
建立的信任。所以已经交付到哪、边界在哪,都摊开写明:
validate-plan 只给 warning(跑干净并不等于
计划成立),remember 是工作区里的 markdown
交接——不是那张类型化记忆图,eval 是脚手架(它
不启动 Agent、也不打分,评分卡由人来填),state
是只读检查。代价:这一页读起来不如含糊
其辞的版本唬人——因为缺口是讲出来的,而不是糊过去的。
拿一条专门防回归的基准说话,而不是默认「上下文越多 越好」。Agent 的上下文到底有没有变好,不度量就 没有答案,所以 RepoLens 会输出校准过的证据(findings, Agent 可读),并维护一份 eval 契约:五个用例,其中一个 专门防回归。代价:这份契约要长期维护,而且 eval 还是脚手架——由人打分,不是自动证明。
证据
origin/main 的私有工作快照——没有可查看的
公开源码、crate 或文档页。支撑这些说法的,是真正跑起来的
功能:scan、init、
brief --task、remember --file、
eval list / start、validate-plan --file、
state、compare-summaries、
findings 现在都能从 CLI 和 MCP 调到,连同
26 个 MCP 工具和那张类型化记忆图。最强的信号,是项目自带
的「诚实状态」准则:一张按功能逐条列出「已交付 vs
脚手架」的清单,刻意保持校准,好让日后的夸大一眼露馅。再加上
一份 dogfood eval 契约(五个用例,其中一个专门
防回归),一起守住上下文质量这条线。
下一步
要到 v0.1 这个里程碑,RepoLens 才真正像个产品:更丰富的
记忆类型——Hypothesis、
Constraint、FailedAttempt、
FrictionFinding——以及一个明确的
Confidence 枚举(TestValidated /
HumanVerified / ScanExtracted /
AgentAsserted)。在它们落到公开 release 或
公开 main 快照之前,都还只是规划。
它不是什么
- 不替你写代码——那是 Agent 的事。
- 不替代测试或人工 review。
- 不是通用 RAG 存储——记忆有类型、能对上代码、会衰减。
- 暂时还不做多仓库或组织级记忆。
- 不保证召回出来的记忆一定对。
- 私有预发布——目前还不是公开源码项目。