初始化 CodeGraph 索引
容器启动后,对所有一级子项目批量初始化:
docker exec -it “CONTAINERNAME"batchcodegraphinit.sh"{CONTAINER_NAME}" batch_codegraph_init.sh "CONTAINERNAME"batchcodegraphinit.sh"{CONTAINER_PROJECTS_PATH}”
初始化完成后重启容器,让前置网关重新扫描已初始化项目,一定要执行这步:
docker restart “${CONTAINER_NAME}”
单个项目也可以手动初始化:
docker exec -it “CONTAINERNAME"codegraphinit"{CONTAINER_NAME}" codegraph init "CONTAINERNAME"codegraphinit"{CONTAINER_PROJECTS_PATH}/project-a”
检查状态:
docker exec -it “CONTAINERNAME"codegraphstatus"{CONTAINER_NAME}" codegraph status "CONTAINERNAME"codegraphstatus"{CONTAINER_PROJECTS_PATH}/project-a”
测试查询:
docker exec -it “CONTAINERNAME"codegraphexplore"某个函数名或你的问题"−−path"{CONTAINER_NAME}" codegraph explore "某个函数名或你的问题" --path "CONTAINERNAME"codegraphexplore"某个函数名或你的问题"−−path"{CONTAINER_PROJECTS_PATH}/project-a”
远程访问验证
检查统一网关:
curl “http://远程机器:HOSTPORT{HOST_PORT}HOSTPORT{HEALTH_ENDPOINT}”
查看项目映射:
curl “http://远程机器:${HOST_PORT}/projects”
检查某个项目后端:
curl “http://远程机器:${HOST_PORT}/project-a/healthz”
OpenClaud/Opencode远程MCP配置
假设远程服务端有以下几个项目
/home/dora/Desktop/Projects/git_rep/
├── ragflow/
├── openclaude/
├── codegraph-mcp-gateway/
下面分别给出OpenClaud/Opencode MCP配置示例
OpenClaud:
{
“permissions”: {
“allow”: [
“mcp__codegraph-codegraph-mcp-gateway__codegraph_explore”,
“mcp__codegraph-codegraph-mcp-gateway__",
“mcp__codegraph-openclaude__codegraph_explore”,
"mcp__codegraph-openclaude__”,
“mcp__codegraph-ragflow__codegraph_explore”,
“mcp__codegraph-ragflow__*”
]
},
“hooks”: {
“UserPromptSubmit”: [
{
“hooks”: [
{
“type”: “command”,
“command”: “codegraph prompt-hook”
}
]
}
]
},
“mcpServers”: {
“codegraph-ragflow”: {
“type”: “http”,
“url”: “http://192.168.220.128:8000/ragflow/mcp”,
“enabled”: true
},
“codegraph-openclaude”: {
“type”: “http”,
“url”: “http://192.168.220.128:8000/openclaude/mcp”,
“enabled”: true
},
“codegraph-codegraph-mcp-gateway”: {
“type”: “http”,
“url”: “http://192.168.220.128:8000/codegraph-mcp-gateway/mcp”,
“enabled”: true
}
}
}
Opencode:
{
“$schema”: “https://opencode.ai/config.json”,
“model”: “deepseek-ai/DeepSeek-V4-Pro”,
“provider”: {
…
},
“mcp”: {
“codegraph-openclaude”: {
“type”: “remote”,
“url”: “http://192.168.220.128:8000/openclaude/mcp”,
“enabled”: true
},
“codegraph-ragflow”: {
“type”: “remote”,
“url”: “http://192.168.220.128:8000/ragflow/mcp”,
“enabled”: true
},
“codegraph-codegraph-mcp-gateway”: {
“type”: “remote”,
“url”: “http://192.168.220.128:8000/codegraph-mcp-gateway/mcp”,
“enabled”: true
}
},
“tools”: {
“mcp__codegraph-codegraph-mcp-gateway*”: true,
“mcp__codegraph-openclaude__": true,
"mcp__codegraph-ragflow__”: true
}
}
OpenClaud CLAUDE.md 和 Opencode AGENTS.md路由规则,这里两个文件内容配置的完全相同
CodeGraph 强制使用规则
当用户问题涉及以下任一场景时,必须先使用 CodeGraph,再回答, 优先使用远程 MCP 工具:
- 查找函数、类、变量、接口、配置项的定义
- 分析调用链、依赖关系、数据流
- 解释某个项目/模块/功能的实现
- 定位 bug、修改代码、评审代码
- 询问“在哪里实现”“怎么调用”“谁调用了它”
禁止在完成 CodeGraph 初查前使用 grep、read、逐文件扫描来寻找符号或调用关系。
查询规则:
- 先用较小范围查询,不要一次塞入大量关键词。
- 每次
codegraph_explore优先聚焦一个模块、文件或功能点。 maxFiles优先使用 3 到 6,只有结果不足时再提高。- 如果 MCP 返回超时,缩小查询范围后重试。
项目索引映射
| 项目 | 路径 | CodeGraph 索引名 | 触发词 |
|---|---|---|---|
| codegraph-mcp-gateway | http://192.168.220.128:8000/codegraph-mcp-gateway/mcp | codegraph-mcp-gateway | codegraph-mcp-gateway, 项目规划 |
| openclaude | http://192.168.220.128:8000/openclaude/mcp | openclaude | openclaude |
| ragflow | http://192.168.220.128:8000/ragflow/mcp | ragflow | ragflow |
路由优先级
- 如果用户给出了文件路径或当前工作目录,按路径选择索引。
- 如果用户明确提到项目名,按项目名选择索引。
- 如果只出现通用词,例如 RAG、检索、agent、工具调用,不要仅凭该词选择索引;应根据上下文判断,无法判断时先询问用户。
- 不要把
rag作为 openclaude 和 ragflow 的共同触发词。
执行流程
- 先判断是否是代码理解/定位/调用链类问题。
- 选择唯一 CodeGraph 索引。
- 调用
codegraph_search查找相关符号或文件。 - 只有在搜索结果需要展开时,才调用
codegraph_explore或委托 Explore 子代理。 - 如果 CodeGraph 无结果,说明已检索失败,再使用 grep/read 作为兜底。
- 回答时说明使用了哪个索引。
