> ## Documentation Index
> Fetch the complete documentation index at: https://forgekit-docs-mintlify-9e781f1d.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Forge：面向 AI 编码代理的认知基底

> Forge 是每个无状态模型都缺失的认知基底 —— 记忆、预见和护栏 —— 以原生配置的形式交付到每一个 AI 编码代理。

**为每个 AI 编码代理提供一个共同的大脑。** 大语言模型是无状态的：每次调用只有一个
上下文窗口，之后就会被清空。它没有关于你团队所学的记忆，没有关于某次编辑会破坏什么的
预见能力，也没有强制执行的护栏。Forge
(`@codewithjuber/forgekit`) 就是这层**认知基底** —— 在模型编辑代码之
*前* 运行的一层，提供以证据为依据、按内容寻址的记忆（我们
称之为"proof-carrying memory"，携带证据的记忆）、启发式的影响预见，以及强制执行的护栏 ——
并且是一个**跨工具的配置编译器**，一次性把这个大脑作为原生配置交付到每个工具。
Claude Code 是测试最深入的集成；其他工具也接收原生配置和
MCP 工具，但真实场景下的锤炼较少。

<CardGroup cols={3}>
  <Card title="记忆" icon="brain">
    携带证据的记忆，可以在会话之间和团队成员之间持续存在。每一条经验、
    事实和已验证的复用，都是一个自带证据的声明。
  </Card>

  <Card title="预见" icon="radar">
    一次编辑的爆炸半径 —— 从代码图中读取到的、这次编辑预测会触及的文件集合，
    包括你从未点名的耦合文件。
  </Card>

  <Card title="护栏" icon="shield">
    确定性的钩子强制执行模型永远不能违反的规则。它们能挺过上下文压缩，而
    配置文件中的自然语言规则则不能。
  </Card>
</CardGroup>

## 问题所在

大语言模型是无状态的 —— 每次调用只有一个上下文窗口，之后就会被清空。

* 它对你团队已经学到的东西**没有记忆**。
* 它对一次编辑会破坏什么**没有预见**。
* 它**没有强制执行的护栏** —— 自然语言的规则在一次压缩之后就会被遗忘。

而且每个工具都想要它自己的配置文件（`CLAUDE.md`、`AGENTS.md`、`.cursor/rules`、
`GEMINI.md`、MCP……）。Forge 就是那层认知基底，补上这三样缺失的东西，
并作为编译器，从一份来源把它们分发到每个工具。

## 核心论点

模型无法在两次调用之间从你的代码库里学到东西：它的权重被冻结，工作记忆也
在每次响应之后被清空。记忆、预见和自我检查
无法通过提示词灌进去 —— 它们必须从 *外部* 提供。那层外部东西
就是认知基底。形式化地说，推理是一个固定的函数 `y = f(x)`，两次调用之间没有
状态；Forge 就是那份状态。

<Steps>
  <Step title="一次编写">
    把你的规则和基底默认值写在一份规范来源里
    （`source/rules.json`、`source/substrate.json`、`source/mcp.json`）。
  </Step>

  <Step title="到处编译">
    `forge sync` 把这份来源编译成每个工具的原生配置 —— 九个 AI 编码
    工具加上 MCP —— 带一个内容哈希头，所以漂移是可探测的，重复运行
    是幂等的。
  </Step>

  <Step title="每个任务都过一次门">
    `forge substrate "<task>"` 运行一次确定性的动作前检查：假设、
    路由、复用、上下文、爆炸半径、范围和目标锚点。
  </Step>

  <Step title="从结果中学习">
    只有独立的裁决者 —— 测试、CI、人的接受/回退 —— 才能移动记忆
    的置信度，所以错误的经验会衰减掉，而不是被固化下来。
  </Step>
</Steps>

## 你会得到什么

* **在会话之间和团队成员之间持续存在的记忆。** 每一条经验、事实和
  已验证的复用都是 *proof-carrying memory (PCM)* —— 我们给以证据为依据、
  按内容寻址的记忆起的名字：一个声明，携带着它所依据的证据引用，只有当独立
  裁决者把它的置信度抬升到某个底线之上时才被信任。"proof"（证据）指的是
  这条证据链，而不是形式化证明。
* **在把东西弄坏之前的预见能力。** 问一句"改动 `verifyToken` 会破坏什么？"
  就能从代码图里得到爆炸半径，包括你从未点名的耦合文件。
* **不会被遗忘的护栏。** 确定性的钩子强制保护路径、
  成本预算和死循环检测 —— 它们能挺过上下文压缩。
* **从头到尾能够完成的工作。** 一个完成门在每个会话中会阻塞一次"完成"
  —— 当代码动了但没有对应的文档或状态产物跟进时，答复里就带着修复清单。
* **一份配置服务 9 个工具。** 规则只写一次；Forge 会输出每个工具的原生
  配置，加上给 Roo 和 VS Code 的 MCP。零运行时依赖 —— 一个 Node CLI，
  git 里的纯文本文件，不需要服务器。

## Forge 给哪些工具喂配置？

Forge 为**九个工具**输出配置，加上给 Roo Code 和 VS Code 的一个 MCP 服务器：
Claude Code、Codex、Cursor、Gemini、Aider、Copilot、Windsurf/Devin、Zed 和 Continue。
每个工具从它自己的原生文件里读同一份规则。

默认接通的 MCP 服务器只有 Forge 自己的那一个（`src/cortex_mcp.js`）—— 负责基底
检查和记忆读取。像 `context7` 这样的第三方 MCP 服务器是**按需接入**（opt-in）的，
在你执行 [`forge integrations add <name> --yes`](/cn/cli/config#forge-integrations) 之前，
它们绝不会落到磁盘上。

## 诚实的边界

Forge 到处都会声明它自己的天花板。

<Warning>
  Forge **减轻但不消除**规则漂移。它是一层透明度和可靠性
  的加成，不能取代测试、评审或判断。
</Warning>

* **护栏只能强制那些能表达成钩子的规则**（路径、格式、diff 大小、
  预算）。语义规则（"偏好函数式"）仍然是自然语言，有时会被忽略。
* **验证是减轻，不是认证。** Crew 验证者和幻觉符号
  标记能减少评审负担；它们并不证明代码是正确的。
* **不做权重级别的学习。** `recall` / `cortex` 只是文件加提示词的记忆 —— 没有
  RL，没有微调。
* **影响图是基于正则的近似** —— 保守，但不是严格意义上的调用图。
* **测试和人的修正永远拥有最终发言权。**

<Note>
  Forge 目前是 **beta** 阶段。核心（`init`、`sync`、`substrate`、`impact`、`ledger`、护栏）
  已经过测试并在日常使用中；一些标志可能会在 `1.0` 前变化。
</Note>

## 下一步

<CardGroup cols={2}>
  <Card title="快速开始" icon="rocket" href="/cn/quickstart">
    安装，运行 `forge init`，然后让你的第一个任务过一次基底。
  </Card>

  <Card title="核心概念" icon="diagram-project" href="/cn/concepts/config-compiler">
    四层编译器、携带证据的记忆和动作前门。
  </Card>

  <Card title="CLI 参考" icon="terminal" href="/cn/cli/overview">
    每一条命令，按 Core、Memory、Substrate、Quality 和 Config 分组。
  </Card>

  <Card title="团队记忆" icon="users" href="/cn/guides/team-memory">
    把队友的账本无冲突地合进来，走的是普通的 git。
  </Card>
</CardGroup>
