角色
个人项目
状态
私有预发布
版本
origin/main (private)
关键结果
仓库 pack 和类型化记忆,让 Agent 新开会话也能拿到有根据的上下文。
技术栈
RustMCPAgent 工具

是什么

RepoLens 会把整个仓库扫描成一份结构化、不可变的 「pack」(一份给 Agent 看的仓库快照),通过 Model Context Protocol(模型上下文协议)——一套开放协议,让 AI agent 通过统一接口发现并调用外部工具,而不必为每个工具单独写胶水代码。 server 提供出来, 同时维护一张会随时间衰减的类型化记忆图。它不替 Agent 写代码, 只是让每个新会话不必从零开始。目前还是私有预发布,它具体对应哪个 快照,写在下面的「证据」里。

repository → packs + memory → mcp × 26 → agent repository packs memory mcp × 26 agent
图 3.1 — packs 与会衰减的记忆,经 26 个 MCP 工具暴露给 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 或文档页。支撑这些说法的,是真正跑起来的 功能:scaninitbrief --taskremember --fileeval list / startvalidate-plan --filestatecompare-summariesfindings 现在都能从 CLI 和 MCP 调到,连同 26 个 MCP 工具和那张类型化记忆图。最强的信号,是项目自带 的「诚实状态」准则:一张按功能逐条列出「已交付 vs 脚手架」的清单,刻意保持校准,好让日后的夸大一眼露馅。再加上 一份 dogfood eval 契约(五个用例,其中一个专门 防回归),一起守住上下文质量这条线。

下一步

要到 v0.1 这个里程碑,RepoLens 才真正像个产品:更丰富的 记忆类型——HypothesisConstraintFailedAttemptFrictionFinding——以及一个明确的 Confidence 枚举(TestValidated / HumanVerified / ScanExtracted / AgentAsserted)。在它们落到公开 release 或 公开 main 快照之前,都还只是规划。

它不是什么

  • 不替你写代码——那是 Agent 的事。
  • 不替代测试或人工 review。
  • 不是通用 RAG 存储——记忆有类型、能对上代码、会衰减。
  • 暂时还不做多仓库或组织级记忆。
  • 不保证召回出来的记忆一定对。
  • 私有预发布——目前还不是公开源码项目。