Skip to content

知识空间与代码图谱

CyberCode 把「帮助 Agent 理解代码」和「帮助用户管理本地资料」放进同一个知识空间。点击桌面端右侧栏的图谱图标即可直接进入,不需要先打开 Token 优化面板。

CyberCode 代码图谱可视化

两类索引有什不同

代码图谱

  • 索引内容: 文件、类、函数、方法、引用、调用与包含关系。
  • 主要用途: 实现定位、架构理解、影响分析与跨文件重构。
  • 模型使用: 符合条件的编程任务会自动获得图谱预检上下文,Agent 也可调用图谱工具。

知识来源

  • 索引内容: 用户自己添加的本地文件或文件夹。
  • 主要用途: 文件盘点、资料整理与本地全文搜索。
  • 模型使用: 当前主要供用户在知识空间中管理和搜索,不会把整个资料库自动塞入每轮对话。

为什么要分开

代码图谱只向模型提供与当前任务相关的节点和关系,而不是把全仓库一次性塞进上下文。知识来源则保持由用户选择和检索,避免未经确认就把大量文档发给模型。

快速开启代码图谱

  1. 在 CyberCode 中打开一个真实项目目录。不要选择磁盘根目录或整个用户主目录。
  2. 点击右侧栏的图谱图标,进入「知识空间」。
  3. 在「图谱」页签中点击「启用代码图谱」。
  4. 等待状态变为「已就绪」。首次索引时会显示进度与正在处理的文件。
  5. 正常给 Agent 下达编程任务,例如「分析登录模块的调用链和修改影响」。

从知识空间启用图谱会打开全局开关。之后打开的其他项目会在需要时自动建立本地索引,不需要为每个项目重复配置。全局开关也可以在「Token 优化」中关闭。

Agent 会怎样利用图谱

启用后,CyberCode 会为编程任务执行一次轻量预检:

  • 根据用户的问题搜索相关符号,并沿调用、引用和包含关系扩展邻居。
  • 对命中的符号和关系排序,生成最多约 640 Token 的精简上下文;纯架构摘要和搜索结果映射最多约 320 Token。
  • 在 Agent 大范围读取文件之前提供这份上下文,并提供与 Grep 同级的原生 CodeGraph 工具,可执行符号搜索、实现探索、影响分析、架构摘要和状态检查。
  • Grep 或命令行 rg/grep 命中多个源码文件时,会自动把结果映射到所属符号及相关影响关系,再以小预算追加给 Agent。
  • 普通闲聊、过短输入和纯命令查询不会触发预检,避免反而增加 Token。

索引完成后,CyberCode 会监听项目变化。在空项目中新建代码文件后,图谱会在后台更新;如果刚完成大规模生成或重命名,也可以点击「重建索引」立即刷新。

使用可视化图谱

  • 在搜索框中输入符号、文件或模块名,按 Enter 聚焦第一个匹配节点。
  • 使用「架构」视图查看语义社区和核心节点,使用「文件」视图按文件分组查看。
  • 拖动画布可平移,滚轮或缩放按钮可调整比例,聚焦按钮可恢复合适的视野。
  • 点击节点可查看文件位置、符号类型和已索引的关系。

添加本地知识来源

  1. 点击左侧「知识来源」顶部的添加文件或添加文件夹按钮。也可以直接把文件 / 文件夹拖入页面。
  2. 等待来源状态从「正在索引」变为「已就绪」。
  3. 在「文件」页签中检查已索引文件及其索引方式。
  4. 在「搜索」页签中输入关键词。可以搜索全部来源,也可先选择某个来源再搜索。
  5. 来源发生变化后,选中它并点击「重新索引」。

在低分辨率或窄窗口中,左侧来源栏会自动收起,添加、重新索引和移除操作仍保留在顶部工具栏中。

CyberCode 会跳过 .gitnode_modulesdistbuildtarget 等常见依赖或构建目录。文本文件可进行全文索引;图片、音频、视频、压缩包等二进制文件只记录文件名、路径和大小等元数据。

支持的代码语言

桌面安装包已内置图谱解析资源,用户不需要额外安装解析器或配置 MCP。当前包含:

HTML 内嵌 JavaScriptTypeScriptTSXJavaScriptPythonGoRustJavaCPHPLuaSolidity

本地数据与安全边界

  • 代码图谱保存在项目的 .codegraph/ 目录中,属于可重建的本地派生数据,不建议提交到 Git。
  • 知识来源索引保存在 CyberCode 的本地数据目录中。
  • CyberCode 会拒绝把整个磁盘根目录或用户主目录当作索引来源,避免误扫描与磁盘无限增长。
  • 在知识空间中移除来源,只删除索引记录,不会修改或删除原文件。

常见问题

为什么显示「暂未发现可索引的代码符号」?

通常是项目还是空的、只有非源码文件,或者刚刚完成生成尚未被监听器处理。确认文件使用受支持语言,稍等片刻,或点击「重建索引」。

为什么不允许索引整个用户目录?

用户目录可能包含所有项目、下载、缓存和隐私文件。将它作为单个项目会导致索引时间和磁盘占用不可控,所以 CyberCode 要求选择具体项目或资料文件夹。

关闭全局开关后会怎样?

CyberCode 会停止图谱索引和监听进程,并从运行中的会话移除图谱工具。原项目代码和用户添加的知识文件不会受到影响。

Released under the MIT License.