Token导航 LogoToken导航TokenDH.com
Devgraph Copilot logo
开发工具未说明官方级别未说明来源级核验

Devgraph Copilot

MCP Server

一个基于FastAPI、LangGraph、LangChain、MCP和RAG构建的GitHub仓库开发者生产力Copilot,旨在通过多代理AI系统提升开发效率。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
AI代理开发工具PythonRAG

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aman-09

提供方

aman-09

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

DevGraph复制品

GitHub存储库的开发者生产力副本,使用 快速API, LangGraph, LangChain, 主控程序,以及 检索增强生成.

这个项目被设计成一个完整的学习路径:从一个简单的FastAPI应用程序开始,发展成为一个多代理、生产风格的agent AI系统。

______________________________________________________________________

1.项目设置(所有阶段)

1.1克隆并进入项目

如果这是你自己的回购 git clone\devgraph副本 cd devgraph副驾驶

如果你还没有在本地启动git,只需创建一个名为的文件夹 devgraph-copilot 并按照其余步骤进行操作。

1.2创建和激活虚拟环境

python-m venv.venv

窗户: .venv\\Scripts\\activate

macOS/Linux: source.ven/bin/activate

1.3安装依赖项

pip安装-r要求.txt

随着我们经历各个阶段,需求将会增长。至少,这个项目使用FastAPI、Uvicorn、LangChain、LangGraph、pydantic-settings和一些辅助库。

1.4运行应用程序

uvicorn app.main:应用程序--reload

在浏览器中打开:

  • http://127.0.0.1:8000
  • API文件:http://127.0.0.1:8000/docs

______________________________________________________________________

2.项目文件夹结构(高级)

随着项目的发展,结构将如下:

devgraph副驾驶/ ├── app │ ├── __初始化__南美国家巴拉圭的缩写(Paraguay) │ ├── main.py#FastAPI应用程序入口点(路由、布线) │ └── config.py#设置和配置(环境、密钥等) │ ├── 代理 │ ├── __初始化__南美国家巴拉圭的缩写(Paraguay) │ ├── graph_state.py#共享语言图形状态(查询、计划、文档等) │ ├── graph_builder.py#LangGraph图形定义(节点、边) │ ├── planner.py#planner代理(决定运行哪些代理) │ ├── introduct.py#摄入代理(克隆仓库、块、嵌入、索引) │ ├── data_quality.py#数据质量代理(对数据/索引进行健全性检查) │ ├── code_qa.py#基于RAG的代码qa代理(回答问题) │ ├── tool_executor.py#MCP工具执行器代理(调用外部工具) │ └── documentation_agent.py#额外代理示例(文档生成器) │ ├── rag │ ├── __初始化__南美国家巴拉圭的缩写(Paraguay) │ ├── chung.py#RAG的分块策略 │ ├── embeddings.py#嵌入模型包装器 │ └── vectorstore.py#矢量存储抽象(添加/搜索) │ ├── mcp服务器 │ ├── __初始化__南美国家巴拉圭的缩写(Paraguay) │ ├── repo_tools#用于repo操作(列表/读/写)的MCP服务器 │ └── external_tools#用于外部API(天气/新闻等)的MCP服务器 │ ├── tests │ └── test_main.py#单元/集成测试(稍后将增长) │ ├── docs │ ├── 项目概述与规划.md │ ├── architecture.md │ ├── code_flow.md │ ├── how_toadd_an_agent.md │ ├── example_new_agent_documentation_agent.md │ └── interview_guide.md │ ├── 需求.txt ├── Dockerfile#用于部署(后期) └── README.md

每个阶段都会填充更多的文件,这样文件夹结构就会逐渐与这张完整的图片相匹配。

______________________________________________________________________

3.第1阶段——最小FastAPI后端

目标: 确认后端可以启动并响应一个简单的请求。

3.1在第一阶段创建的文件

  • app/main.py
  • app/__init__.py
  • agents/__init__.py
  • rag/__init__.py
  • mcp_servers/__init__.py
  • requirements.txt
  • README.md

3.2代码(第1阶段)

app/main.py (第一阶段版本)为:

从fastapi导入fastapi

FastAPI应用实例 app=FastAPI(标题=“DevGraph复制品-第1阶段”)

@app.get(“/”) 异步定义read_root(): 返回{ “消息”:“DevGraph Copilot后端正在运行(第1阶段)”, “next_steps”:\[ “添加LangGraph状态图”, “添加基本RAG管道”, “集成MCP工具” \] }

3.3如何运行第一阶段

从项目根: uvicorn app.main:应用程序--reload

在浏览器中打开:

  • http://127.0.0.1:8000

预期JSON(第1阶段): { “消息”:“DevGraph Copilot后端正在运行(第1阶段)”, “next_steps”:\[ “添加LangGraph状态图”, “添加基本RAG管道”, “集成MCP工具” \] }

如果你看到这个反应,那么第一阶段正在发挥作用。

______________________________________________________________________

4.第2阶段–LangGraph骨架

目标: 将最小的LangGraph图连接到FastAPI后端。

4.1第2阶段的新文件/更新文件

  • app/config.py –基本设置(应用程序名称、环境)。
  • agents/graph_state.py –图形的共享状态定义。
  • agents/graph_builder.py –带有规划器和回声节点的最小LangGraph图。
  • app/main.py –更新为:

- 显示“第二阶段” / - 添加 POST /api/chat 使用LangGraph的端点。

4.2状态和节点(当前)

GraphState 领域:

  • user_input:来自API的原始消息。
  • message_type:简单分类(例如。, "question""statement").
  • reply:最终回复文本。

节点:

  • planner_node:

- 倒像 user_input. - 集合 message_type"question" 如果它以 ?,否则 "statement".

  • echo_node:

- 倒像 user_inputmessage_type. - 写 reply 包括两者。

图形流程: 开始->规划节点->回声节点->结束

4.3新终点—— POST /api/chat

请求正文: { “message”:“你好” }

响应(示例): { “reply”:“LangGraph的回声(type=语句):你说了->你好” }

它是如何工作的(简短):

  1. FastAPI在中接收请求 /api/chat.
  2. 它创建了一个初始 GraphState 随着 user_input.
  3. 它调用编译后的LangGraph graph_app.
  4. planner_nodemessage_type.
  5. echo_node 读取 user_inputmessage_type 并写道 reply.
  6. 最终状态作为HTTP响应返回。

4.4测试双节点流

  1. 重新启动服务器:

uvicorn app.main:应用程序--reload

  1. 打开Swagger:http://127.0.0.1:8000/docs
  1. 测试 POST /api/chat:
  • 主体:

{“留言”:“你好吗?”}

预期: { “回复”:“LangGraph的回声(类型=问题):你说->你好吗?” }

  • 主体:

{“message”:“这是一个声明”}

预期: { “reply”:“LangGraph的回声(type=statement):你说->这是一个语句” }

这证明:

  • 状态正在流经多个节点。
  • 规划师写道 message_type,echo读到了。

______________________________________________________________________

5.第3阶段——RAG骨架(仅设置)

目标: 为RAG组件创建基本文件(还没有真正的LLM)。

5.1第3阶段的新文件(骨架)

  • rag/chunking.py
  • simple_line_chunker(text: str) -> List[str> –琐碎的基于行的分块器。
  • rag/embeddings.py
  • dummy_embedding(text: str) -> List[float] –基于长度的虚假嵌入。
  • embed_chunks(chunks: List[str]) -> List[List[float]].
  • rag/vectorstore.py
  • InMemoryVectorStore –内存中存储块和假嵌入。
  • add(chunks, embeddings)search(query_embedding, top_k=3).

5.2现状

这些模块尚未连接到图形或API中。\ 它们是使第3阶段集成更容易的占位符。

______________________________________________________________________

6.第一阶段和第二阶段总结

第一阶段

  • 基本的FastAPI应用程序 GET / 返回第1阶段JSON。
  • requirements.txt,virtualenv,最小的项目结构。

第2阶段(加上小型2节点升级)

  • app/config.py 随着 Settings.
  • agents/graph_state.py 定义 GraphState (user_input, message_type, reply).
  • agents/graph_builder.py 使用LangGraph StateGraph:
  • 节点: planner_node → echo_node.
  • 流量: START → planner_node → echo_node → END.
  • app/main.py 已更新:
  • / 显示“第二阶段”。
  • POST /api/chat 端点使用 graph_app.invoke.

已创建(但尚未使用)RAG骨架文件:

  • rag/chunking.py
  • rag/embeddings.py
  • rag/vectorstore.py

如果 / 返回第2阶段JSON和 POST /api/chat 返回正确的回声 type=question/statement,您已经完全完成了这些阶段,并准备开始连接真正的RAG和更多的代理。

______________________________________________________________________

5.3第3阶段——将假RAG连接到图形中

  • 扩展的 GraphState 随着 retrieved_chunks.
  • 添加 agents/ingestion_helper.py:

- 全球 InMemoryVectorStore 用示例文本初始化。

  • 更新 agents/graph_builder.py:

- 现在绘图: START -> planner_node -> code_qa_node -> END. - code_qa_node: - 嵌入 user_input 使用 dummy_embedding. - 搜索 InMemoryVectorStore. - 写 retrieved_chunks 和一个 [Fake RAG] 回答。

  • /api/chat 现在返回由检索到的片段组成的回复。

现在,你真正拥有了这两样东西: 当USE_LLM=false或OPENAI_API_KEY为空时: 仅RAG模式,完全本地。 当USE_LLM=true并且设置了有效密钥时: RAG+在线法学硕士答案。

如何在实践中使用它 仅运行RAG(无API)

  1. 在.env中:

USE_LLM=假 OPENAI_API密钥=

  1. 重新启动:

uvicorn app.main:应用程序--reload

  1. POST/api/聊天→ 您将看到使用本地嵌入+向量存储的\[RAG only\]响应。

运行RAG+LLM

  1. 在.env中:

USE_LLM=真 OPENAI_API_KEY=sk-。..您的_real_key。.. LLM_MODEL_NAME=gpt-4o-mini#或提供程序的型号id

  1. 重新启动:

uvicorn app.main:应用程序--reload

  1. POST/api/聊天→ 您将看到使用本地嵌入+向量存储+在线LLM的\[RAG+LLM\]响应。

目录标签

目录标签

AI代理开发工具PythonRAG开发者工具本地部署AI辅助开发多代理系统代码问答

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP