Agentmap Skill:让 AI 编程 Agent 不再读错文件的编译器级方案

Agentmap Skill:让 AI 编程 Agent 不再读错文件的编译器级方案

Agentmap 是一个专为 TypeScript/JavaScript 代码库设计的 AI Agent 导航工具,核心解决一个问题:你的 AI 编程助手在找到正确代码之前,已经烧掉了大量上下文 token,而且找到的还可能是错的。它通过编译器级(ts-morph)的导入/符号图谱,以一次查询替代传统 grep 的盲目搜索,实现 100% 精度的「谁依赖这个文件」「这个符号在哪里定义」等结构化问题回答。在 Next.js、zod、taxonomy 等真实仓库上的评测显示:比 grep 减少 98.3% 的上下文 token 使用量,同时精度从 59.9% 提升到 100%。

功能与原则

Agentmap 的设计原则是「精度优先,省 token 是副产品」。

核心能力包括:

  • blast radius 分析--relates):给定一个文件,返回所有真正依赖它的文件列表。grep 会漏掉 40%,agentmap 实测 100% 精度。
  • 符号查找--find):快速定位函数、类、变量定义所在位置,支持 top-1/top-3 结果返回。
  • 代码库概览--map):在 token 预算内输出分级的仓库结构摘要,适合会话启动时的快速定向。
  • PageRank 枢纽文件检测--hubs):识别仓库中的核心 Hub 文件(如 lib/utils.ts 类型的高连接度文件)。
  • 智能路由--any):自动判断最合适的查询路径,不需要用户指定命令。

认可度

  • GitHub Star:截至 2026-09-05 约 45 stars(创建于 2026-06-13,约 2.5 个月)
  • Fork:11
  • 最新更新:2026-08-22(持续维护中)
  • 分发渠道:已在 ClaudePluginHub、ClaudeAtlas、LobeHub、SkillsMP 等多个平台上线
  • Trending:在 aidev-index 的 AI coding 相关分类中标记为 live ↗,属于近期有热度的项目
  • 许可证:MIT

链接

GitHub:https://github.com/raymondchins/agentmap

原作者

raymondchins(GitHub @raymondchins),自述为「Genesis 的关键观察者,频繁的逆向思考者」,目前索引有 1 个项目,专注于代码智能工具开发。

介绍

每个 AI 编程任务的第一步都是隐藏的:找到相关的代码。Agentmap 对这一步做了系统性优化。

传统方案依赖 grep 或让 Agent 暴力读取整个仓库——前者精度只有 60%(漏掉未匹配到的导入路径,或误报无关字符串),后者 token 消耗巨大。在一个 154 文件的 Next.js 真实仓库(vercel/ai-chatbot)上,7 个常见任务的 token 消耗对比如下:

任务 直接读取 Agentmap 节省
检查是否有现成工具函数 14,740 19 99.9%
了解整个仓库 150,281 1,127 99.3%
改动影响分析 81,038 616 99.2%
定位符号定义 1,950 20 99%
了解某功能涉及哪些文件 6,121 1,025 83.3%

原理上,agentmap 使用 ts-morph(基于真实 TypeScript 编译器)构建导入图的持久缓存(.claude/agentmap/map.json),支持增量更新——无未提交改动时直接读缓存,有改动时静默重建,始终反映当前工作区状态。输出结果经过 PageRank 排序,高相关度文件排在前面。

特点

  • 编译器级精度:使用 ts-morph(真实的 TypeScript 编译器 API)解析 import/export,而非字符串正则,精度有保障
  • ~98% token 节省:以 zod(367 文件)和 taxonomy(125 文件)实测,综合节省 98.3%,单任务最高节省 646 倍
  • 完全本地运行:无网络请求,无遥测,数据不离开本机;.claude/agentmap/ 目录缓存(已加入 .gitignore)
  • MCP 协议支持:提供 stdio 模式的 MCP Server,可接入 Claude Code、Cursor 等主流 AI 编程工具
  • 无额外依赖:唯一运行时依赖是 ts-morph(~10MB,已打包),不需要向量数据库或 embedding API
  • 可复现评测:benchmark 脚本在 pinned commit 上运行,EVAL.md 记录了评测方法,任何人都可以重跑验证

使用方法

安装(npx,无需安装)

npx @raymondchins/agentmap --any "formatCurrency"

全局安装

npm i -g @raymondchins/agentmap

Claude Code 集成

agentmap --install-hooks   # 自动安装 post-commit 钩子 + PreToolUse grep 提示

MCP 配置(在 claude_desktop_config.json 或 Cursor MCP 配置中):

{
  "mcpServers": {
    "agentmap": {
      "command": "npx",
      "args": ["@raymondchins/agentmap", "--mcp"]
    }
  }
}

常用命令

agentmap --any "helper function"   # 智能路由,自动选择最佳查询路径
agentmap --find formatCurrency     # 找符号定义
agentmap --relates src/lib/auth.ts # 分析改动影响范围
agentmap --map --tokens 400        # token 受限的仓库概览
agentmap --hubs                    # 找出 PageRank 最高的枢纽文件

Agent Skill 形态(在支持 SKILL.md 的平台上):

Use agentmap for TypeScript/JavaScript codebase navigation — symbol lookup,
blast radius, reuse checks, and repo orientation. Prefer agentmap before
serial grep when exploring imports, exports, or where a symbol lives.

使用场景与人群

适用场景
– 在大型 TypeScript/JavaScript 仓库中工作时,需要了解代码结构和依赖关系
– 修改某个文件前,想确认「改它会影响哪些地方」,避免引入隐性 bug
– 会话开始时快速了解陌生项目结构
– 检查是否存在可复用的工具函数/组件,避免重复造轮子

目标用户
– 使用 Claude Code、Cursor、Codex CLI、OpenCode 等 AI 编程工具的开发者
– 维护中大型 TS/JS 仓库(50 文件以上)的团队
– 对 token 成本敏感、需要高效上下文管理的 AI 工程实践者

输入与输出案例

案例 1:改动影响分析

输入:agentmap --relates src/lib/auth.ts

输出:
relates: src/lib/auth.ts (pr 0.073744)
dependents (21): src/lib/types.ts, src/lib/utils.ts,
 src/lib/db/queries.ts, components/chat/message.tsx,
 app/(chat)/api/chat/route.ts, …

(21 个文件真正依赖 auth.ts,grep 会漏掉约 8 个)

案例 2:符号定位

输入:agentmap --find ChatMessage

输出:
定义位置:src/components/chat/Message.tsx:3
被引用位置(top-5):
  - src/lib/types.ts:15
  - src/app/chat/page.tsx:8
  - src/hooks/useChat.ts:22
精度:top-1 100%,top-3 100%(vs grep 的 32%/80%)

案例 3:token 受限的仓库概览

输入:agentmap --map --tokens 2000

输出:
agentmap: 154 files | 4 features | top hub: lib/utils.ts (deg 52, pr 0.105)
(token 消耗 1,127 vs 直接读取全库的 150,281)

GitHub: https://github.com/raymondchins/agentmap

评论区

0 条评论

登录后可评论。

Skill超级捕获手 12 阅读