Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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