Context Hub —— 让 AI 真懂你整个项目(而且全在本机)
Hydite 用一套本地构建的项目语义索引,把"AI 理解代码"这件事从"读当前文件"升级成"读懂整个仓库"。代码、索引、推理全程不出本机。
绝大多数 AI 编辑器宣称"理解你的代码",做的事其实只有一件:把当前文件的几百行塞进 prompt。
这套做法在小项目里凑合能用,但对真实工程来说远远不够。一个企业级仓库通常意味着:
- 几千个文件、几十万行代码、几百个子模块。
- 一个 API 的实现散落在 controller / service / repository / event handler 五个层。
- 一个类型定义被 200 处引用,改它之前你想知道会炸哪里。
Hydite 的 Context Hub 是为这种场景准备的:在你机器上本地构建一套项目级语义索引,让 Agent / Edit / Assistant 三个模式都能"真的看懂整个仓库"。代码、索引、推理全程不出本机。

1. Context Hub 解决什么问题#
把"AI 理解代码"细分成三种能力,对照看一下差距:
| 能力 | 普通 AI 补全 | Hydite Context Hub |
|---|---|---|
| 看懂当前文件 | ✅ | ✅ |
| 知道这个函数被谁调用 | ❌ 多半瞎猜 | ✅ 本地调用图直接给 |
| 理解一个跨模块的业务流 | ❌ | ✅ 顺着语义索引串起来 |
| 改一个公共类型前预判影响 | ❌ | ✅ 变更影响分析 |
| 项目超过模型上下文窗口 | ❌ 截断 | ✅ 只挑最相关的片段进上下文 |
| 做这一切时代码出本机吗 | 多半要 | ❌ 不出 |
一句话:普通工具是"读到哪算哪",Context Hub 是"心里有整张地图,知道去哪取哪段"。
2. 完全本地构建的项目语义索引#
Context Hub 最重要的特性是本地优先。打开一个项目,Hydite 会:
- 用一段轻量的本机内置模型,在你机器上为整个仓库构建语义索引。
- 索引文件只写到项目所在的本地目录(默认
.hydite/index/,可加进.gitignore)。 - 文件改动时增量更新,不用每次重扫全仓库。
- 关掉 IDE,索引就静静躺在硬盘上;下次打开秒加载。
1┌──────── 你的电脑 ────────┐2│ │3│ 源代码 │4│ │ │5│ ▼ │6│ 本机内置模型 ──→ 索引 │ ← 全过程不联网7│ │ (本地)│8│ ▼ │9│ Agent / Edit / Assistant 直接用10│ │11└──────────────────────────┘没有"先上传到云端建索引"这种环节。 这件事很重要:
- 涉密项目可以放心开 Context Hub,索引本身就是机密的一部分,留在本机最安全。
- 不依赖网络,离线也能用 Agent 的全部跨文件能力。
- 你是索引的唯一拥有者,删项目就等于删索引,没有云端残留。
3. Context Hub 索引的不只是文本#
很多 RAG 工具只把代码当"长字符串"切片。Context Hub 索引的维度更广:
| 维度 | 索引内容 | Agent 用它做什么 |
|---|---|---|
| 语义片段 | 函数 / 类 / 模块按语义边界切片 | 找"做某件事"的代码,不靠关键词 |
| 符号 & 类型 | 函数签名、类型、接口、导出表 | 跨文件追踪定义、引用、实现 |
| 调用图 | 谁调用谁、谁实现谁 | 改函数前查影响、追踪调用链 |
| 测试关联 | 实现 ↔ 测试用例的双向链接 | 改一个函数自动找出对应测试 |
| Git 历史 | 文件 / 函数级最近变更 | 解释"这块为什么这么写" |
| 文档与注释 | README、注释、ADR、设计文档 | 让 AI 用你团队的语言而非通用术语 |
| 设计稿(可选) | Design Hub 里的画布与 token | 设计 ↔ 代码的语义对照 |
| MCP 资源(可选) | 你接入的 MCP Server 暴露的资源 | 把外部知识接进同一张语义图 |
索引一旦建好,所有维度都被串成同一张语义图。Agent 提一个问题,能同时拿到符号、调用关系、最近改动、关联测试、相关文档 —— 这才叫"懂你的项目"。
4. Agent / Edit / Assistant 怎么用 Context Hub#
三种模式调用方式不同,但都基于同一张索引:
4.1 Agent 模式#
Agent 走多步循环时,每一步都会主动从 Context Hub 拿最相关的上下文:
- 「实现这个 API」→ Context Hub 抽出 controller 模板、相关 DTO、对应测试样例。
- 「重构这段代码」→ Context Hub 给出所有调用点 + 类型依赖。
- 「修这个 bug」→ Context Hub 把堆栈里出现的每个函数的实现 + 最近改动一并塞进上下文。
Agent 的"参数手册"和"调用记忆"全部来自 Context Hub。
4.2 Edit 模式#
Edit 不会主动跑工具,但仍然吃 Context Hub 的索引:
- 在选区上发起 Edit,Context Hub 自动把当前选区附近的类型定义、被调用的函数、关联的测试拉进上下文。
- 你不用手动 @ 文件,Edit 自己知道哪几行有用。
- 输出的 diff 会引用真实存在的符号,而不是模型臆想的 API。
4.3 Hydite Assistant#
Assistant 是常驻本地的轻量伙伴,问"这个函数干嘛的""这个 API 谁在用",它直接走 Context Hub 检索 → 本地模型解释,对话过程默认不出本机。
5. 长上下文路由 —— 项目大也不慌#
当一次对话需要的上下文超过当前模型的窗口时,Context Hub 会做两层处理:
- 语义压缩:从索引里只挑出最相关的 5%~10% 片段进上下文,而不是塞整个文件夹。
- 长上下文路由:你授权云端模型时,超长场景会自动路由到百万级窗口的模型(如 Gemini 3.1 / Kimi K2.6);高隐私模式下则用本机长窗口模型直接处理。
结果就是:项目再大,AI 也不会一边丢上下文一边瞎答。
6. 与三档隐私模式的关系#
Context Hub 与 Hydite 的隐私分级是协同设计的:
| 隐私模式 | 索引构建 | 索引存储 | 检索行为 | 适用 |
|---|---|---|---|---|
| 高隐私 | 本机 | 本机 | 仅本机检索 + 仅本机模型解释 | 金融 / 政企 / 涉密 |
| 标准 | 本机 | 本机 | 本机检索 → 仅最小相关片段进云端 prompt | 大多数商业项目 |
| 企业自托管 | 本机 | 本机 | 本机检索 → 推理走你部署的私有 Vtslx AO 网关 | 受监管行业 |
注意三档索引构建本身永远在本机,差别只是"检索结果送给谁去回答"。
7. 手动控制索引#
Context Hub 默认开箱即用,但你也可以精细控制:
| 操作 | 入口 |
|---|---|
| 强制重建索引 | 命令面板:Hydite: Rebuild Project Index |
| 暂停增量更新 | 状态栏 → Context Hub → 暂停 |
| 排除目录 | 项目根 .hydite/index.ignore(语法同 .gitignore) |
| 额外纳入目录 | .hydite/index.include(默认会忽略 node_modules、dist 等) |
| 跨项目共享缓存 | 全局设置 → Context Hub → 共享缓存目录(仍在本机) |
| 查看索引大小 | 状态栏 → Context Hub → 详情 |
Tips:典型的 50 万行项目,索引大小一般在源码体积的 5%~15%,构建时长在分钟级;之后是纯增量,几乎感知不到。
8. 常见问题#
Q:索引会不会偷偷上传?
A:不会。 Context Hub 的索引只写到本地 .hydite/index/;任何"上云"动作都会走标准 / 企业自托管模式的明确流程,并且只发最相关的片段而非整个索引。高隐私模式下完全屏蔽云端。
Q:能不能多人共用索引? A:可以,但默认推荐每人本地一份。团队共享请走企业自托管:把 Context Hub 的检索缓存放到内网共享盘 / 私有对象存储里,由 Vtslx AO 网关统一访问。
Q:换分支会不会让索引失效? A:不会。Context Hub 感知 Git 状态,切分支只触发最小增量更新;改动量小的分支几乎瞬间切完。
Q:Monorepo 怎么办?
A:默认整库一张索引,跨 package 的引用一样能追踪。如果只想索引部分 workspace,用 .hydite/index.include 显式列出即可。
Q:索引能不能变成搜索框?
A:可以。Cmd/Ctrl + Shift + F 之外,Hydite 顶栏有语义搜索入口 —— 用"做某件事"这种自然语言去找,不需要记关键词。
Q:和 Agent Hub、Skills、MCP 是什么关系? A:Context Hub 是地基,所有人都在它上面跑。Agent 调用 Context Hub 取上下文,Skills 把 Context Hub 的检索结果作为参数,MCP 资源也会被拉进同一张语义图。
9. 下一步#
- 想看 Agent 怎么基于 Context Hub 并行作业 → Agent Hub 指南(即将上线)
- 想配置高隐私模式 / 自托管 → Privacy & Sandboxing 指南(即将上线)
- 想看模式切换怎么用 → Agent vs Edit 模式