项目简介
LangGraph开发导航助手旨在解决AI编程助手在生成代码时可能出现的“幻觉”问题,即生成不准确或过时的代码。它通过将AI助手与特定、版本控制的代码库(特别是LangGraph)相结合,提供“可执行的真相”,确保AI生成的代码是可靠、健壮且符合项目最佳实践的。
主要功能点
- 智能文档搜索: 允许AI助手通过自然语言提问,从您的LangGraph代码库和文档中检索最相关的、最新的信息。
- 代码示例查找: 专门用于搜索可运行的代码片段,帮助AI生成实际可用的代码。
- 代码幻觉检测: 利用代码库的结构知识,自动验证AI生成的Python代码,检查是否存在不存在的类、方法或不正确的函数调用,从而大幅减少错误。
- 代码结构探索: 允许AI助手直接查询LangGraph代码库的内部结构,深入理解其工作原理。
- 本地知识托管: 在本地托管LangGraph官方仓库作为知识源,确保上下文是最新的。
安装步骤
-
克隆仓库及子模块: 打开您的终端,执行以下命令克隆项目及其所有必要的子模块:
git clone --recursive https://github.com/botingw/langgraph-dev-navigator.git cd langgraph-dev-navigator如果您的克隆命令中未包含 '--recursive' 标志,请手动初始化子模块:
git submodule update --init --recursive -
安装核心依赖: 在项目根目录下,使用 'uv' 工具安装Python依赖(如果未安装 'uv',请先运行 'pip install uv'):
uv pip install -r requirements.txt -
设置知识服务器 ('mcp-crawl4ai-rag'): 这个项目包含一个名为 'mcp-crawl4ai-rag' 的子模块,它是提供核心知识服务的MCP服务器。
- 准备工作:
- Docker: 推荐使用Docker进行安装。
- API密钥与服务: 您需要准备OpenAI API Key(用于生成嵌入)、Supabase项目(用于作为向量数据库,获取项目URL和'service_role'密钥)、Neo4j实例(用于作为图数据库,获取URI、用户和密码)。
- 配置环境变量: 复制 'mcp-crawl4ai-rag/.env.example' 文件到 'mcp-crawl4ai-rag/.env',并编辑 'mcp-crawl4ai-rag/.env' 填入您准备好的各项API密钥和URL。
- 设置Supabase数据库: 登录您的Supabase项目仪表板,导航到“SQL Editor”,点击“New query”,将 'mcp-crawl4ai-rag/crawled_pages.sql' 文件的全部内容粘贴进去并运行,以创建必要的表和函数。
- 构建并运行Docker容器(推荐方式):
- 构建Docker镜像:
docker build -t mcp-crawl4ai-rag -f mcp-crawl4ai-rag/Dockerfile mcp-crawl4ai-rag - 运行一次性数据导入: 这将抓取LangGraph文档并填充您的Supabase和Neo4j数据库。
docker run --rm --memory "512m" \ -v "$(pwd)/mcp-crawl4ai-rag/.env:/app/.env" \ -v "$(pwd)/mcp-crawl4ai-rag/reports:/app/reports" \ mcp-crawl4ai-rag \ python -u run_one_time_ingestion.py - 验证数据导入: 运行以下命令确保数据已成功写入数据库。
docker run --rm --memory "512m" -v "$(pwd)/mcp-crawl4ai-rag/.env:/app/.env" mcp-crawl4ai-rag python -u validate_setup.py --stage 2
- 构建Docker镜像:
- 准备工作:
-
配置您的AI助手: 运行以下命令,它会提供一个交互式菜单,让您选择您的AI编码助手,并自动为其配置使用此项目提供的MCP服务器的说明和规则。
uv run python src/setup_dev_assistant.py
服务器配置(用于MCP客户端)
以下是您需要添加到MCP客户端(例如Gemini CLI或GitHub Copilot)配置文件中的MCP服务器配置信息。这些配置将指导您的AI助手如何启动和连接到LangGraph开发导航助手。请根据您的实际AI客户端和路径进行调整。
-
Gemini CLI ('.gemini/settings.json') 配置示例:
请将以下JSON片段添加到您的 '~/.gemini/settings.json' 文件中的 'mcpServers' 部分:
{ "mcpServers": { "crawl4ai-rag-bash": { "command": "docker", "args": ["run", "-i", "--rm", "--memory", "512m", "-v", "${pwd}/mcp-crawl4ai-rag/.env:/app/.env", "mcp-crawl4ai-rag", "bash", "/app/start_mcp_server.sh"], "timeout": 600 } } }参数说明:
- '"crawl4ai-rag-bash"': 这是您为MCP服务器定义的名称,AI助手将通过此名称引用它。
- '"command": "docker"': MCP客户端将执行的命令,这里是启动Docker容器的'docker'命令。
- '"args"': 传递给 'docker' 命令的参数列表。
- '-i': 保持标准输入打开,以便AI客户端可以与服务器进行交互。
- '--rm': 在容器停止时自动移除容器。
- '--memory "512m"': 限制Docker容器的内存使用为512MB。
- '-v "${pwd}/mcp-crawl4ai-rag/.env:/app/.env"': 将您当前工作目录下的 'mcp-crawl4ai-rag/.env' 文件挂载到Docker容器内部的 '/app/.env'。请确保 '${pwd}' 变量在您的环境中能正确解析为实际路径。
- '"mcp-crawl4ai-rag"': 这是您之前构建的Docker镜像的名称。
- '"bash", "/app/start_mcp_server.sh"': 在Docker容器内部执行 '/app/start_mcp_server.sh' 脚本来启动MCP服务器。
- '"timeout": 600': 服务器启动的超时时间为600秒(10分钟)。
-
GitHub Copilot ('.vscode/mcp.json') 配置示例:
请将以下JSON片段添加到您的项目根目录下的 '.vscode/mcp.json' 文件中的 'servers' 部分:
{ "servers": { "crawl4ai-rag": { "type": "stdio", "command": "docker", "args": ["run", "-i", "--memory", "512m", "-v", "$(pwd)/mcp-crawl4ai-rag/.env:/app/.env", "mcp-crawl4ai-rag", "bash", "/app/start_mcp_server.sh"] } } }参数说明:
- '"crawl4ai-rag"': 您为MCP服务器定义的名称。
- '"type": "stdio"': MCP客户端与服务器通过标准输入/输出流进行通信。
- '"command": "docker"': 启动服务器的命令。
- '"args"': 传递给 'docker' 命令的参数列表,与Gemini CLI配置类似。
- 注意: '$(pwd)' 应替换为 'mcp-crawl4ai-rag' 子模块的绝对路径,这通常在Shell环境中自动解析。
基本使用方法
配置完成后,您的AI编码助手(如Gemini CLI或GitHub Copilot)将能够自动连接到LangGraph开发导航助手。您可以通过向AI助手提问,例如:“如何向我的图添加持久性?”,或者“如何创建一个带工具调用的LangGraph ReAct代理?”,来体验其功能。
AI助手将利用LangGraph开发导航助手提供的以下工具为您提供帮助:
- 'perform_rag_query':检索相关文档,找到问题的权威解答。
- 'search_code_examples':查找官方文档中的可运行代码示例。
- 'check_ai_script_hallucinations':自动验证AI生成的代码是否存在语法或逻辑错误。
- 'query_knowledge_graph':直接探索LangGraph代码库的内部结构,获取深层上下文。
这些工具的自动调用将确保您的AI助手在LangGraph开发过程中提供更准确、更可靠的指导和代码。
信息
分类
AI与计算