Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RepoMind

面向代码仓库理解与开发辅助的 Agentic RAG 工作台。

RepoMind 是一个用于理解 GitHub 代码仓库的 AI Agent 项目。它结合了仓库结构解析、Chroma 语义检索、LangGraph 工具调用和大模型问答能力,帮助用户快速理解一个陌生代码仓库的结构、功能模块和实现逻辑。


项目简介

在实际开发中,理解一个陌生代码仓库往往需要阅读大量文件、目录结构、配置文件和文档。

RepoMind 尝试通过 AI Agent 的方式辅助这一过程:

用户输入一个 GitHub 仓库地址后,系统会自动分析仓库结构,提取代码和文档内容,构建语义检索索引,并通过 Agent 工作流回答与仓库相关的问题。

本项目主要关注以下方向:

  • 代码仓库理解
  • AI Agent 工具调用
  • RAG 检索增强生成
  • LangGraph 工作流编排
  • Chroma 向量检索
  • 开发辅助与代码问答

核心功能

1. 仓库结构分析

系统可以对 GitHub 仓库进行解析,提取目录结构、关键文件和项目基本信息,帮助用户快速了解项目整体组织方式。

2. 代码与文档内容处理

RepoMind 会读取仓库中的代码文件、README、配置文件和相关文档,并对内容进行整理和切分,为后续检索和问答做准备。

3. Chroma 语义检索

项目使用 Chroma 构建向量索引,用于根据用户问题检索相关代码片段或文档内容,提高回答的准确性和上下文相关性。

4. LangGraph 工具调用 Agent

RepoMind 基于 LangGraph 构建 Agent 工作流,使系统能够根据任务需要调用不同工具,例如仓库解析、文件检索、代码查询和结果总结。

5. 代码仓库问答

用户可以围绕目标仓库提出问题,例如:

  • 这个项目主要做什么?
  • 项目的核心模块有哪些?
  • 某个功能是如何实现的?
  • 哪些文件负责检索逻辑?
  • 项目的整体架构是什么?

6. 项目导读生成

系统可以根据仓库内容生成结构化的项目导读,帮助开发者快速理解项目背景、模块划分和技术实现。


技术栈

  • 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 首先对目标仓库进行结构化分析,包括目录层级、文件类型、核心模块和项目说明文档。

这一部分的目标是让系统先获得对仓库的基本认知,而不是直接把所有内容交给大模型处理。

RAG 检索增强生成

仓库内容会被切分并存入 Chroma 向量数据库。

当用户提出问题时,系统会先检索与问题相关的代码片段或文档内容,再将检索结果作为上下文交给大模型生成回答。

这样可以减少模型幻觉,提高回答的可信度和针对性。

Agent 工具调用

RepoMind 使用 LangGraph 组织 Agent 工作流。

Agent 不只是简单地回答问题,而是可以根据任务需要调用工具,例如:

  • 查看仓库结构
  • 检索相关代码
  • 读取文件内容
  • 总结模块功能
  • 生成项目导读

这种方式更接近真实开发中的代码阅读流程。

面向开发者的回答

RepoMind 的目标不是生成泛泛的聊天回答,而是输出对开发者有帮助的结构化信息,例如:

  • 模块职责说明
  • 文件功能总结
  • 调用链路分析
  • 项目架构解释
  • 关键实现逻辑说明

快速开始

1. 克隆项目

git clone https://github.com/SquamuleWie0/RepoMind.git
cd RepoMind

2. 创建虚拟环境

python -m venv .venv
source .venv/bin/activate

Windows 用户可以使用:

.venv\Scripts\activate

3. 安装依赖

pip install -r requirements.txt

4. 配置环境变量

在项目根目录下创建 .env 文件:

OPENAI_API_KEY=your_api_key_here

如果使用其他大模型服务,可以根据实际实现进行替换。

5. 运行项目

python app/main.py

如果需要启动 Web 前端:

cd web
npm install
npm run dev

示例问题

RepoMind 适合回答以下类型的问题:

这个仓库主要是做什么的?

项目的核心模块有哪些?

这个项目的整体架构是什么?

RAG 检索逻辑是如何实现的?

LangGraph Agent 工作流是怎么组织的?

哪些文件负责仓库解析?

哪些文件负责向量检索?

请总结这个项目的开发思路。

当前进度

RepoMind 目前处于持续开发阶段。

当前重点包括:

  • 完善仓库解析流程
  • 优化代码切分策略
  • 提升 Chroma 检索效果
  • 完善 LangGraph 工具调用流程
  • 增强代码仓库问答能力
  • 整理项目文档和开发记录

后续计划

  • 优化仓库文件解析逻辑
  • 改进代码切分策略
  • 提升向量检索质量
  • 增加更多 Agent 工具
  • 支持生成项目级导读
  • 增加问答质量评测
  • 完善 Web 前端界面
  • 支持更多编程语言的仓库理解
  • 增加项目级记忆能力
  • 尝试多 Agent 协作流程

为什么做这个项目

理解陌生代码仓库是开发者经常遇到的问题。

传统方式通常需要手动阅读 README、目录结构、源码文件和配置文件,效率较低。

RepoMind 希望探索一种基于 AI Agent 的代码仓库理解方式,让大模型不只是回答问题,而是能够结合工具调用、语义检索和项目结构分析,辅助开发者更高效地理解代码。

这个项目也是我在 AI Agent、RAG、工具调用和大模型应用开发方向上的一次实践。


作者

wie0

关注方向:

  • AI Agent
  • RAG
  • 大模型应用开发
  • 工具调用
  • 代码仓库理解
  • 开发辅助工具

开源协议

本项目采用 MIT License。

About

An Agentic RAG workspace for GitHub repository understanding and codebase Q&A, built with LangGraph tool calling and Chroma.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages