当前位置: 首页 > news >正文

初始化 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、逐文件扫描来寻找符号或调用关系。

查询规则:

  1. 先用较小范围查询,不要一次塞入大量关键词。
  2. 每次codegraph_explore优先聚焦一个模块、文件或功能点。
  3. maxFiles优先使用 3 到 6,只有结果不足时再提高。
  4. 如果 MCP 返回超时,缩小查询范围后重试。

项目索引映射

项目路径CodeGraph 索引名触发词
codegraph-mcp-gatewayhttp://192.168.220.128:8000/codegraph-mcp-gateway/mcpcodegraph-mcp-gatewaycodegraph-mcp-gateway, 项目规划
openclaudehttp://192.168.220.128:8000/openclaude/mcpopenclaudeopenclaude
ragflowhttp://192.168.220.128:8000/ragflow/mcpragflowragflow

路由优先级

  1. 如果用户给出了文件路径或当前工作目录,按路径选择索引。
  2. 如果用户明确提到项目名,按项目名选择索引。
  3. 如果只出现通用词,例如 RAG、检索、agent、工具调用,不要仅凭该词选择索引;应根据上下文判断,无法判断时先询问用户。
  4. 不要把rag作为 openclaude 和 ragflow 的共同触发词。

执行流程

  1. 先判断是否是代码理解/定位/调用链类问题。
  2. 选择唯一 CodeGraph 索引。
  3. 调用codegraph_search查找相关符号或文件。
  4. 只有在搜索结果需要展开时,才调用codegraph_explore或委托 Explore 子代理。
  5. 如果 CodeGraph 无结果,说明已检索失败,再使用 grep/read 作为兜底。
  6. 回答时说明使用了哪个索引。
http://www.cnnetsun.cn/news/3507047.html

相关文章:

  • go基础中碰到的疑惑点
  • JavaMail邮件发送开发实战与优化指南
  • 越华环保集团数字化污水治理系统架构拆解:从边缘采集到数字孪生闭环
  • ARM CoreSight ETMv4调试实战:从寄存器解析到AM62L追踪配置
  • Facebook级机器学习AB测试:从请求分流到业务归因的工程实践
  • 嵌入式系统性能优化:片上存储器与相机ISP的架构解析与实战配置
  • 承德户外媒体哪家供应商好
  • 装修还有必要做灯带吗?网红灯带是不是智商税?
  • 知识图谱驱动AI智能体API发现:从语义理解到业务决策
  • MCP协议详解:AI模型如何安全可靠调用外部数据服务
  • Visual C++ ZIP解压源码深度解析:从二进制格式到工程实践
  • 多维聚合实战:破解GROUP BY在交叉分析中的失效困局
  • 跨境卖家必备:批量图片翻译与视频字幕AI翻译工具
  • 移动东海卡(29元档)产品评测
  • AI底层突破的四条基础学科融合主干
  • CC2538-CC2592评估套件PER测试:从硬件上电到射频性能实战
  • NXP 2.5kW数模混合ACDC电源方案:高效工业电源设计详解
  • 记一次 RAG 系统的 OOM 踩坑:
  • Unity MVVM架构实战:Loxodon Framework数据绑定与ViewModel设计详解
  • BEV感知实战:从融合到纯视觉的五大核心模块代码解析
  • Python实现跨境商品详情页自动翻译
  • Redis Geo实现地理位置检索
  • ADS1292芯片在医疗电子中的SPI接口与数据采集实现
  • Golua标准库详解:Go中安全嵌入Lua脚本的实践指南
  • Python常用模块详解与实战应用指南
  • [Bug已解决] Android-手机远程连接中无法关闭-plan-模式-跨设备设置同步与远程应用方案
  • C++高性能批量无锁队列实现:原理、设计与工程实践
  • Java设计模式实战:核心价值与典型应用解析
  • 揭秘亚克力专用胶行业标杆,厂商如何用品质赢得信赖
  • 芯动力科技:2026年专用芯片解决方案与异构计算架构解析