Skip to content
Apothem
概念

委托架构

Apothem 如何将单一的委托能力集合投射到十七个具有不同钩子表面与规则格式的 AI 工具之上。

这是一个面向开发者的技术规格页面。它使用 Apothem 的内部术语 —— 适配器类、物化器、传播清单、同级约定收敛 —— 而不会为一般读者 弱化这些术语。

Apothem 读取一份共享配置档案(~/.config/apothem/profile.yaml),并为 十七个已注册的适配器物化各工具原生的配置。这些工具并不共享同一套 委托能力模型:有些暴露工具调用前钩子,有些从扁平的 .md 文件运行规则, 有些将每条规则嵌入单一指令文件,还有些在安装时渲染由配置档案驱动的 配置。本页面描绘了这种分歧,以及 Apothem 在其间所施加的纪律。

各工具委托能力矩阵

下面的矩阵涵盖全部十七个工具。各列分别为:适配器接入的 PreToolUse 钩子表面(若某工具记录了适配器未注册的钩子,单元格会注明)、Apothem 用于激活规则的格式、适配器类(参见 适配器类),以及该适配器是否通过物化器 渲染原生配置。

工具PreToolUse 钩子表面规则激活格式适配器类物化器
antigravity存在原生钩子表面;Apothem 仅提供支持材料GEMINI.md 加 Antigravity CLI 插件规则I 类无
claude-code原生 PreToolUse / PostToolUse / Stop / SessionStartrules/ 下的 .md 扁平规则II-A 类无(厂商设置模板)
codebuddy.codebuddy/settings.local.json 中的原生 SessionStart 与 PostToolUse;无 PreToolUse 守卫(厂商未在该处记录 additionalContext).codebuddy/rules/apothem-rules.md 项目规则文件I 类无
codex原生 hooks.json 生命周期钩子AGENTS.md 加由已安装技能引用的支持规则I 类无
cursor项目 .cursor/hooks.json 中的原生 sessionStart;尚无工具事件钩子一个 .mdc 工作区规则文件(MDC 前置元数据:description / globs / alwaysApply)I 类无
gemini-cli存在原生钩子表面;Apothem 仅提供支持材料嵌入单一 GEMINI.md 的规则I 类无
github-copilot.github/hooks/apothem.json 中的原生 sessionStart 与 postToolUse;无 preToolUse 守卫(厂商在该处只读取权限字段).github/copilot-instructions.md 中的规则I 类无
glm无(模型后端,无委托工具表面).apothem/providers/glm.toml 后端提供方配置(无规则集合)I 类无
hermes仅支持材料config.yaml 加外部技能目录II-B 类config.yaml
kimi-code仅支持材料AGENTS.md 加 .kimi-code/.apothem/support/ 下的支持规则I 类无
kiro.kiro/hooks/apothem.json 中的原生 SessionStart;无工具事件钩子(厂商会忽略其输出).kiro/steering/apothem-rules.md 引导文件I 类无
open-claw仅支持材料openclaw.json 加额外技能目录II-B 类openclaw.json
opencode仅支持材料配置档案渲染的 JSON 加原生命令、技能与委托II-B 类opencode.json
qwen-code原生 PreToolUse / Stop / SessionStartQWEN.md 加原生命令、技能与委托II-B 类settings.json / QWEN.md
trae无.trae/rules/apothem-rules.md 项目规则文件I 类无
windsurf.devin/config.local.json 中面向 Devin Local 的原生 SessionStart 与 PostToolUse;无 PreToolUse 守卫(厂商未在该处记录上下文通道).devin/rules/ 中的一个规则文件I 类无
zed无项目根目录 .rules 扁平文件I 类无

矩阵说明:

  • claude-code 是原生表面最广的适配器。它承载原生的 PreToolUse、PostToolUse、Stop 与 SessionStart 钩子,并附带厂商设置模板。它向 CLAUDE.md 写入一个由哨兵界定的受管块,并保持哨兵之外的操作者散文不变。
  • codex 通过 hooks.json 安装原生生命周期钩子,将委托转换为 TOML,把命令提示词封装为 Codex 技能,并把 config.toml 留给操作者自有。
  • antigravity 将 ~/.gemini/GEMINI.md 保留为全局上下文锚点,并在 ~/.gemini/antigravity-cli/plugins/apothem/ 下安装一个 Apothem 插件。在适配器掌握 Antigravity 钩子模式的翻译之前,钩子文件作为支持材料保留。
  • cursor 通过承载厂商 MDC 前置元数据(description、globs、alwaysApply)的一个 .mdc 文件激活规则;适配器不写入单文件 .cursorrules。
  • windsurf 使用 .devin/rules/;适配器不写入单文件 .windsurfrules。
  • hermes 与 open-claw 渲染原生配置文件,并通过每个工具所记录的技能目录设置接入 Apothem 支持技能目录。不受支持的共享集合保留在 Apothem 自有的支持子树下。
  • qwen-code 为上下文与钩子分派渲染所记录的 settings.json 键,然后使用 Qwen 原生的命令、技能与委托目录。

跨工具编排纪律

Apothem 施加 同级约定收敛:同一个操作者可调用的工作流被投射进 每个工具的原生惯用法,而不是被强行塞进一种共享格式。一条在 claude-code 下以扁平 .md 文件激活的规则,在 cursor 下变为 .mdc 工作区规则, 在 gemini-cli 下变为 GEMINI.md 的嵌入章节,在 qwen-code 下变为 QWEN.md 中的串接引用加原生发现目录 —— 同样的意图,各工具的方言。

规范主集合位于:

src/apothem/{rules,commands,skills,agents,output-styles,hooks,conformity,statuslines}/

每个适配器传播该集合的一个子集。每个工具的子集在 src/apothem/lib/propagation-manifest.yaml 中声明;该清单是关于哪些 工件以何种形式到达哪个工具的唯一真实来源。适配器从不在清单之外 凭空创造工件,清单也从不为某个工具分配它没有表面可承载的工件。

适配器类详解

Apothem 依据适配器将共享配置档案翻译为工具原生输出的方式,将其分为 三类。

  • I 类 —— 原始传播。 适配器将规范主工件(清单声明的一个子集) 直接复制到工具的配置位置,不经渲染步骤。没有物化器。antigravity、 codebuddy、codex、cursor、gemini-cli、github-copilot、glm、kimi-code、 kiro、trae、windsurf 与 zed 属于 I 类。
  • II-A 类 —— 原始 + 厂商绑定的设置模板。 适配器进行原始传播工件, 并额外管理绑定到厂商模式的厂商特定设置模板。claude-code 属于 II-A 类。
  • II-B 类 —— 配置档案渲染的单表面物化器。 适配器通过物化器将共享 配置档案渲染进单一原生配置表面。hermes、open-claw、opencode 与 qwen-code 属于 II-B 类。

物化时行为

类的区分在物化时显现 —— 即当操作者针对某个工具运行 CLI 时:

  • apothem install --harness <H> 为 <H> 传播清单子集,并且对于 II-A / II-B 类适配器,渲染工具原生配置。
  • apothem verify --harness <H> 检查受管文件是否存在且可解析。 使用 --profile PATH 时,它还会将这些文件与该配置档案本应产生的 内容进行对照,并在出现偏移时失败。
  • apothem status 报告每个工具是否已安装,以及它是否已偏离当前的 共享配置档案。
  • apothem doctor 报告每个已注册适配器在各工具上的健康状况: ok、not_installed、needs_project、verify_failed、 hook_failed 或 error。

完整命令表面参见 CLI 参考。

分歧分类法

十七个工具沿三个轴线发生分歧。矩阵中每一处各工具的差异都可归结为 其中之一。

轴线十七个工具中观察到的范围
钩子表面原生多事件(claude-code、codex、qwen-code)→ 在厂商向模型投递的事件上原生支持(codebuddy:SessionStart 与 PostToolUse;cursor:sessionStart;github-copilot:sessionStart 与 postToolUse;kiro:SessionStart;windsurf:SessionStart 与 PostToolUse)→ 仅支持钩子材料(antigravity、gemini-cli、hermes、kimi-code、open-claw、opencode)→ 适配器未注册钩子(glm、trae、zed)
规则激活格式扁平 .md(claude-code)→ 插件规则(antigravity)→ .mdc 工作区(cursor)→ 目录规则(codebuddy、trae、windsurf)→ 引导文件(kiro)→ 项目根扁平文件(zed)→ 单一嵌入文件(codex、gemini-cli、github-copilot、kimi-code)→ 配置引用的支持材料(hermes、open-claw、opencode、qwen-code)→ 后端提供方配置(glm)
适配器类I 类原始传播 → II-A 类原始 + 厂商设置 → II-B 类配置档案渲染单表面

Apothem 的工作是在这三个轴线随各工具变化的同时,保持一个连贯的操作者 意图恒定不变。传播清单与适配器类契约就是让该意图在分歧之中保持稳定的 两个机制。

On this page