╔══════════════════════════════════════╗
║ ║
║ 🧠 自适应思维图 🧠 ║
║ ║
║ 智能科学 ║
║ 推理通过 ║
║ 思维图 ║
║ ║
╚══════════════════════════════════════╝
有关自适应思维图的详细信息,包括详细的安装说明、使用指南、配置选项、API 参考、贡献指南以及项目路线图,请访问我们的完整文档网站:
该网站现在包括交互式Mermaid图表和改进的布局。
自适应思维图利用一个Neo4j 图数据库来执行复杂的科学推理,其管道阶段中的图操作由其管理。它实现了**模型上下文协议(MCP)**以与像Claude Desktop这样的AI应用程序集成,提供了一个高级科学推理思维图(ASR-GoT)框架,旨在处理复杂的研究任务。
关键亮点:
git clone https://github.com/SaptaDey/Adaptive-Graph-of-Thoughts-MCP-server.git
cd Adaptive-Graph-of-Thoughts-MCP-server
poetry install
poetry run uvicorn src.adaptive_graph_of_thoughts.main:app --reload
打开http://localhost:8000/setup,完成向导。完成后,您将进入仪表板。
该项目组织如下(详见文档网站):
自适应思维图/
├── 📁 .github/ # GitHub特定文件(工作流程)
├── 📁 config/ # 配置文件(settings.yaml)
├── 📁 docs_src/ # MkDocs文档源文件
├── 📁 src/ # 源代码
│ └── 📁 adaptive_graph_of_thoughts # 主应用包
├── 📁 tests/ # 测试套件
├── Dockerfile # Docker容器定义
├── docker-compose.yml # 开发用Docker Compose
├── docker-compose.prod.yml # 生产用Docker Compose
├── mkdocs.yml # MkDocs配置
├── poetry.lock # Poetry依赖锁定文件
├── pyproject.toml # Python项目配置(Poetry)
├── pyrightconfig.json # Pyright类型检查器配置
├── README.md # 此文件
└── setup_claude_connection.py # Claude Desktop连接设置脚本(手动运行)
在运行自适应思维图(无论是本地还是通过Docker,如果未使用提供的docker-compose.prod.yml,其中包含Neo4j)之前,请确保:
运行的Neo4j实例:自适应思维图需要连接到一个Neo4j图数据库。
apoc.create.addLabels,apoc.merge.node)。没有APOC,应用程序将无法正常工作。您可以在APOC官方网站找到安装说明。config/settings.yaml(或相应的环境变量)正确指向您的Neo4j实例URI、用户名和密码。python scripts/run_cypher_migrations.py自动应用提供的Cypher迁移。详情见Neo4j索引策略。注意:提供的docker-compose.yml(用于开发)和docker-compose.prod.yml(用于生产)已经包含了预配置了APOC库的Neo4j服务,当使用Docker Compose时满足此要求。
pyproject.toml中指定,例如Docker镜像使用Python 3.11.x或3.12.x,3.13.x)克隆仓库:
git clone https://github.com/SaptaDey/Adaptive-Graph-of-Thoughts-MCP-server.git
cd Adaptive-Graph-of-Thoughts-MCP-server
使用Poetry安装依赖:
poetry install
这会创建一个虚拟环境并安装pyproject.toml中指定的所有必要包。
激活虚拟环境:
poetry shell
配置应用程序:
# 复制示例配置
cp config/settings.example.yaml config/settings.yaml
# 根据需要编辑配置
vim config/settings.yaml
设置环境变量(可选):
# 创建.env文件用于敏感配置
echo "LOG_LEVEL=DEBUG" > .env
echo "API_HOST=0.0.0.0" >> .env
echo "API_PORT=8000" >> .env
在生产环境中,设置SECRETS_PROVIDER环境变量为aws、gcp或vault,从支持的密钥管理器获取敏感值。可选地提供<VAR>_SECRET_NAME变量(例如OPENAI_API_KEY_SECRET_NAME)来控制每个密钥的名称。当配置了密钥提供商时,启动时会自动加载OPENAI_API_KEY、ANTHROPIC_API_KEY和NEO4J_PASSWORD的值。
运行开发服务器:
python src/adaptive_graph_of_thoughts/main.py
或者,为了更多的控制:
uvicorn adaptive_graph_of_thoughts.main:app --reload --host 0.0.0.0 --port 8000
API将在http://localhost:8000可用。
有一个交互式向导可以简化初始配置。
poetry run python -m agt_setup
然后访问http://localhost:8000/setup完成基于Web的步骤。
设置向导演示GIF将在完整文档中出现。
graph TB
subgraph "开发环境"
A[👨💻 开发者] --> B[🐳 Docker Compose]
end
subgraph "容器编排"
B --> C[📦 自适应思维图容器]
B --> D[📊 监控容器]
B --> E[🗄️ 数据库容器]
end
subgraph "自适应思维图应用"
C --> F[⚡ FastAPI服务器]
F --> G[🧠 ASR-GoT引擎]
F --> H[🔌 MCP协议]
end
subgraph "外部集成"
H --> I[🤖 Claude Desktop]
H --> J[🔗 其他AI客户端]
end
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e8
style F fill:#fff3e0
style G fill:#ffebee
style H fill:#f1f8e9
快速启动Docker Compose:
# 构建并运行所有服务
docker-compose up --build
# 后台模式(后台运行)
docker-compose up --build -d
# 查看日志
docker-compose logs -f adaptive-graph-of-thoughts
单独的Docker容器:
# 构建镜像
docker build -t adaptive-graph-of-thoughts:latest .
# 运行容器
docker run -p 8000:8000 -v $(pwd)/config:/app/config adaptive-graph-of-thoughts:latest
生产部署:
# 使用生产compose文件
docker-compose -f docker-compose.prod.yml up --build -d
提供了最小的Helm图表,位于helm/agot-server下,用于在Kubernetes集群上运行自适应思维图。
helm install agot helm/agot-server
在helm/agot-server/values.yaml中自定义值,以设置镜像仓库、资源限制和其他选项。
smithery.yaml进行部署。
PORT环境变量(默认8000)。/health端点。Dockerfile和docker-compose.prod.yml展示了容器设置。http://localhost:8000/docshttp://localhost:8000/healthhttp://localhost:8000/mcp自适应思维图支持与各种MCP客户端的集成:
{
"mcpServers": {
"adaptive-graph-of-thoughts": {
"command": "python",
"args": ["-m", "adaptive_graph_of_thoughts.main"],
"cwd": "/path/to/Adaptive-Graph-of-Thoughts-MCP-server",
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "your_password",
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}
自适应思维图公开的主要API端点是:
MCP协议端点:POST /mcp
asr_got.query:
{
"jsonrpc": "2.0",
"method": "asr_got.query",
"params": {
"query": "分析微生物多样性与癌症进展之间的关系。",
"parameters": {
"include_reasoning_trace": true,
"include_graph_state": false
}
},
"id": "123"
}
initialize和shutdown。健康检查端点:GET /health
{
"status": "healthy",
"version": "0.1.0"
}
(注:先前显示的时间戳字段不是当前健康检查响应的一部分。)以前列出的高级API端点(例如/api/v1/graph/query)在当前版本中尚未实现,并保留用于未来可能的发展。
session_id)目前,API请求(例如asr_got.query)中可用的session_id参数及其在响应中存在主要用于标识和跟踪单个完整的查询-响应周期。它还用于关联进度通知(如got/queryProgress)与原始查询。
虽然系统生成并使用session_id,但自适应思维图当前不支持真正的多轮对话连续性,即从先前查询中自动加载和重用详细图状态或推理上下文,使用相同的session_id进行后续查询。目前每个查询独立处理。
自适应思维图的一个潜在未来增强是实现持久会话。这将通过允许用户:
session_id关联存储在Neo4j数据库中。session_id的新查询时,系统可以重新加载此保存的状态作为进一步处理的起点。实现持久会话将涉及开发强大的策略来:
这是一个重要的功能,可以大大增强自适应思维图的互动能力。欢迎社区在设计和实现持久会话功能方面做出贡献。
目前,自适应思维图推理管道的8个阶段是顺序执行的。对于复杂的查询或进一步优化性能,探索某些管道部分的异步或并行执行是一个潜在的未来增强。
潜在的并行区域: