用途:解决智能体在探索代码库时大量读取文件、浪费上下文的问题。它先生成一份紧凑的代码库索引(地图),再据此制定导航计划,只打开与任务相关的文件。
主要能力:输出目录树、每个文件的行数,以及约 10 种常见语言的顶层符号(函数、类、类型),符号通过正则提取,不依赖解析器,全部在本地运行。脚本头部会打印文件数、行数,以及“读全部文件”与“读地图”的 token 对比,典型地图约为读全部内容的 3%。
使用方式:运行 python3 scripts/repo_map.py . 生成当前目录地图;也可指定子目录并限制规模,例如 python3 scripts/repo_map.py src --max-files 400 --max-symbols 8。脚本按排序遍历,确定性输出,自动跳过 .git、node_modules 和构建目录。使用前需提供目录、任务和规模预期;大型 monorepo 建议按子目录分别生成地图。
适用场景:不熟悉的仓库探索、定位某功能或符号所在文件、为后续 grep 缩小候选范围。
限制:正则符号只覆盖顶层名称,不包含动态定义、装饰器效果和调用图;需要“谁调用了它”时应先用地图缩小范围再用 grep。地图是索引而非分析,输出稳定可缓存,不应每轮重新生成,也不应映射整个超大仓库。