面向代码仓库理解与开发辅助的 Agentic RAG 工作台。
RepoMind 是一个用于理解 GitHub 代码仓库的 AI Agent 项目。它结合了仓库结构解析、Chroma 语义检索、LangGraph 工具调用和大模型问答能力,帮助用户快速理解一个陌生代码仓库的结构、功能模块和实现逻辑。
在实际开发中,理解一个陌生代码仓库往往需要阅读大量文件、目录结构、配置文件和文档。
RepoMind 尝试通过 AI Agent 的方式辅助这一过程:
用户输入一个 GitHub 仓库地址后,系统会自动分析仓库结构,提取代码和文档内容,构建语义检索索引,并通过 Agent 工作流回答与仓库相关的问题。
本项目主要关注以下方向:
- 代码仓库理解
- AI Agent 工具调用
- RAG 检索增强生成
- LangGraph 工作流编排
- Chroma 向量检索
- 开发辅助与代码问答
系统可以对 GitHub 仓库进行解析,提取目录结构、关键文件和项目基本信息,帮助用户快速了解项目整体组织方式。
RepoMind 会读取仓库中的代码文件、README、配置文件和相关文档,并对内容进行整理和切分,为后续检索和问答做准备。
项目使用 Chroma 构建向量索引,用于根据用户问题检索相关代码片段或文档内容,提高回答的准确性和上下文相关性。
RepoMind 基于 LangGraph 构建 Agent 工作流,使系统能够根据任务需要调用不同工具,例如仓库解析、文件检索、代码查询和结果总结。
用户可以围绕目标仓库提出问题,例如:
- 这个项目主要做什么?
- 项目的核心模块有哪些?
- 某个功能是如何实现的?
- 哪些文件负责检索逻辑?
- 项目的整体架构是什么?
系统可以根据仓库内容生成结构化的项目导读,帮助开发者快速理解项目背景、模块划分和技术实现。
- Python
- LangGraph
- Chroma
- RAG
- Tool Calling
- GitHub Repository Analysis
- Web 前端界面开发中
用户输入 GitHub 仓库地址
↓
系统克隆或读取目标仓库
↓
扫描目录结构与关键文件
↓
提取代码和文档内容
↓
进行文本切分与向量化
↓
构建 Chroma 语义检索索引
↓
用户提出问题
↓
Agent 根据问题调用工具
↓
检索相关代码与文档上下文
↓
大模型生成结构化回答
.
├── app/ # 核心应用代码
│ ├── agent/ # Agent 工作流与 LangGraph 逻辑
│ ├── tools/ # 工具调用相关代码
│ ├── rag/ # 检索增强生成与向量索引逻辑
│ ├── parser/ # 仓库解析相关逻辑
│ └── utils/ # 通用工具函数
│
├── docs/ # 项目文档与设计记录
├── eval/ # 评测脚本与测试用例
├── scripts/ # 辅助脚本
├── web/ # Web 前端界面
├── README.md
└── requirements.txt项目仍在持续开发中,目录结构后续可能会继续调整。
RepoMind 首先对目标仓库进行结构化分析,包括目录层级、文件类型、核心模块和项目说明文档。
这一部分的目标是让系统先获得对仓库的基本认知,而不是直接把所有内容交给大模型处理。
仓库内容会被切分并存入 Chroma 向量数据库。
当用户提出问题时,系统会先检索与问题相关的代码片段或文档内容,再将检索结果作为上下文交给大模型生成回答。
这样可以减少模型幻觉,提高回答的可信度和针对性。
RepoMind 使用 LangGraph 组织 Agent 工作流。
Agent 不只是简单地回答问题,而是可以根据任务需要调用工具,例如:
- 查看仓库结构
- 检索相关代码
- 读取文件内容
- 总结模块功能
- 生成项目导读
这种方式更接近真实开发中的代码阅读流程。
RepoMind 的目标不是生成泛泛的聊天回答,而是输出对开发者有帮助的结构化信息,例如:
- 模块职责说明
- 文件功能总结
- 调用链路分析
- 项目架构解释
- 关键实现逻辑说明
git clone https://github.com/SquamuleWie0/RepoMind.git
cd RepoMindpython -m venv .venv
source .venv/bin/activateWindows 用户可以使用:
.venv\Scripts\activatepip install -r requirements.txt在项目根目录下创建 .env 文件:
OPENAI_API_KEY=your_api_key_here如果使用其他大模型服务,可以根据实际实现进行替换。
python app/main.py如果需要启动 Web 前端:
cd web
npm install
npm run devRepoMind 适合回答以下类型的问题:
这个仓库主要是做什么的?
项目的核心模块有哪些?
这个项目的整体架构是什么?
RAG 检索逻辑是如何实现的?
LangGraph Agent 工作流是怎么组织的?
哪些文件负责仓库解析?
哪些文件负责向量检索?
请总结这个项目的开发思路。
RepoMind 目前处于持续开发阶段。
当前重点包括:
- 完善仓库解析流程
- 优化代码切分策略
- 提升 Chroma 检索效果
- 完善 LangGraph 工具调用流程
- 增强代码仓库问答能力
- 整理项目文档和开发记录
- 优化仓库文件解析逻辑
- 改进代码切分策略
- 提升向量检索质量
- 增加更多 Agent 工具
- 支持生成项目级导读
- 增加问答质量评测
- 完善 Web 前端界面
- 支持更多编程语言的仓库理解
- 增加项目级记忆能力
- 尝试多 Agent 协作流程
理解陌生代码仓库是开发者经常遇到的问题。
传统方式通常需要手动阅读 README、目录结构、源码文件和配置文件,效率较低。
RepoMind 希望探索一种基于 AI Agent 的代码仓库理解方式,让大模型不只是回答问题,而是能够结合工具调用、语义检索和项目结构分析,辅助开发者更高效地理解代码。
这个项目也是我在 AI Agent、RAG、工具调用和大模型应用开发方向上的一次实践。
wie0
关注方向:
- AI Agent
- RAG
- 大模型应用开发
- 工具调用
- 代码仓库理解
- 开发辅助工具
本项目采用 MIT License。