mcpField
D
Deliberation

Deliberation

本地服务
github.com/antonbabenkoAI 与智能体178今天更新

关于 Deliberation

Deliberation 是一个 MCP 服务,可将编码 Agent 的问题分发给已配置的托管模型和本地模型专家。它支持建议式审查,并可由受支持的提供方执行实现;结果会经过整合,也可选择查看运行分析。

主要功能

  1. 01八类领域专家
  2. 02在模型提供方间路由请求
  3. 03建议与实现模式
  4. 04共识和多轮审查
  5. 05可选本地运行面板

适用场景

  1. 01审查实现计划
  2. 02查找错误和安全问题
  3. 03比较模型对边缘情况的意见
  4. 04查看提供方用量和运行延迟

MCP 相关

向 MCP 客户端提供模型查询、专家审查、共识工作流、会话工具和分析功能。它可作为独立服务运行,宿主插件还提供专家角色设定和委派指引。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"deliberation": {
"command": "npx",
"args": [
"-y",
"@antonbabenko/deliberation-mcp"
]
}
}
}
启动命令npx -y @antonbabenko/deliberation-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@antonbabenko/deliberation-mcp3.14.5

工具

20

收录的工具列表 · 更新于 3 周前

参数类型必填说明
promptstring是提供方/专家要处理的问题或任务。
expertstring否可选角色:architect、plan-reviewer、scope-analyst、code-reviewer、security-analyst、researcher 或 debugger。在指定专家工具中,工具自身的角色优先,此设置将被忽略。
developerInstructionsstring否可选的系统/开发者指令,按原样注入;优先级高于内置角色对 `expert` 的设置。
cwdstring否提供方运行时使用的工作目录(用于解析相对文件引用)。默认为服务进程目录。
reasoningEffortenum否提供方支持时使用的推理深度(Grok、OpenRouter):low、medium、high 或 none。CLI 提供方(Codex、Gemini)会忽略此设置。low | medium | high | none
filesarray否供支持读取文件的提供方使用的可选附件(Grok/OpenRouter;对 Codex/Gemini 则内联为上下文)。每个项目必须且只能是 path/dir/file_id/file_url 之一。

详细介绍

Deliberation

在 Claude Code、Codex、Cursor、Kiro、Antigravity、OpenCode 或任何其他 MCP 宿主中,向 GPT、Gemini 和 Grok 征求第二意见;还可使用本地模型(Ollama、LM Studio),以及通过 OpenRouter 接入的 400 多种模型,包括 Qwen、Kimi 和 DeepSeek。八位领域专家(架构师、代码审查员、安全分析师等)会审查你的计划、查找错误,并围绕边界情况展开辩论,直到达成共识。

围坐桌旁的四把椅子:Claude、GPT、Gemini、Grok——给出一份可交付的统一结论
近期博客文章:认识 Deliberation:接入 400 多种模型很容易,难的是判断哪些模型值得留下。

📸 查看完整的 /consensus 运行过程:从第 1 轮意见不合到第 5 轮达成共识

第 1 轮:审查者意见不合

……片刻之后……

片刻之后

第 5 轮:达成共识

📸 查看 /ask-all 如何进行两轮架构师辩论:三个模型,三个结论,然后互相批评——还附带意见分歧矩阵

/ask-all:三位架构师走进代码库,最终揪出两个会导致问题的改动

三个模型展开辩论时,真正的错误才会浮现。第 1 轮 = 各自独立给出最重要的发现。第 2 轮 = 每个模型都对其他模型选出的内容提出批评。意见分歧矩阵展示了它们的分歧;结论则指出实际应当优先修复什么。

📸 查看本地仪表板如何将 /consensus 运行过程绘制成时间线:每个发言者各占一条轨道,逐项显示结论,并在旁边展示最终报告

仪表板:已达成共识的 3 轮 /consensus 运行,仲裁者和六位评审成员的发言轨道显示在同一条时间线上

仪表板(/deliberation:dashboard,通过 "dashboard": { "enabled": true } 选择启用)是运行于 127.0.0.1 的只读页面。Live 会跟踪正在进行的运行;Runs 会保留运行记录(包括每次运行所属的代码库和工作区,按 Git 远程地址 org/repo 分组,并提供项目筛选器,可选择整个代码库或单个工作区);Config 显示生效的配置;Stats 显示使用情况和提供商健康状态;Analyzer 则显示哪些模型贡献不大于重复内容(可考虑移除)、哪些项目运行失败或耗时过长,以及请求大小能否预测延迟和超时,并给出建议的超时时间。对于每次运行,你可以查看:

  • 标题栏:工具、耗时、状态、轮次、令牌数、错误和专家
  • 阶段条:blind、peers、adjudicate、converged 或 revise,以及每个阶段相对于起始时间的偏移
  • 时间线:顶部显示轮次,下方为仲裁者和每位评审成员各设一条轨道;每次调用都以脉冲图形显示,并标注其结论。可在图表上拖动放置两个光标,测量它们之间的时间
  • 事件表:每个日志事件的序列号、时间、类型和轮次
  • 侧边栏:最终报告和提示词

CAPTURE 和 PII 徽章会显示记录了哪些内容。默认仅捕获元数据;除非启用 dashboard.showPII,否则会对个人身份信息进行脱敏。

## 什么是 Deliberation?

你的编码 Agent 可以通过 MCP 向 GPT、Gemini、Grok、本地模型(Ollama、LM Studio)或任何兼容 OpenAI 的模型(通过 OpenRouter)求助。Deliberation 会处理各个提供商的连接配置,让你只需编写提示词。每位专家都有专长领域,可以提供建议或参与实现。

它并不局限于 Claude Code。同一个 MCP 服务可在任何 MCP 宿主上运行,Codex、Cursor、Kiro、Antigravity 和 OpenCode 也有内置专家和委派指南的原生插件(参见 安装)。Claude Code 提供最完整的版本:在同一个服务之上,还提供斜杠命令和自动路由规则。

你可以使用任意部分的提供商。Deliberation 会检测已配置的提供商并据此路由。OpenRouter 仅提供建议,且由配置驱动:模型在 ~/.config/deliberation/config.json(Windows:%APPDATA%\deliberation\config.json;可通过 DELIBERATION_CONFIG 覆盖)中声明,并支持热重载,无需重启宿主。

你将获得什么重要性
8 位领域专家针对每类问题选择合适的专家
GPT、Gemini、Grok、本地模型或 OpenRouter 模型使用你偏好的提供商
双模式专家可以进行分析(只读)或实现(写入)
自动路由Agent 会根据你的请求判断何时委派
综合回复Agent 会解读专家输出,而不是直接转发原始内容
本地仪表板(可选启用)在浏览器中通过实时状态图查看每次运行,并查看每个项目的历史记录、健康状况、使用统计,以及用于分析可剔除项和调整超时的工具

安装

选择适用于你所用宿主的方式:

  • Claude Code - 使用下方的插件(推荐)。
  • Codex、Cursor、Kiro、Antigravity、OpenCode - 使用各宿主的原生插件。
  • 任何其他 MCP 宿主(Claude Desktop、Windsurf、Zed、VS Code 等)- 使用独立 MCP 服务。
Claude Code 插件(推荐):

1. 添加 marketplace - antonbabenko/agent-plugins

/plugin marketplace add antonbabenko/agent-plugins

2. 安装插件

/plugin install deliberation@antonbabenko

3. 运行设置

/deliberation:setup

Claude 现在会将复杂任务路由给你的 GPT、Gemini、Grok、本地模型(Ollama、LM Studio)和 OpenRouter 专家(所有提供商都会提供建议;只有 Gemini 还可以参与实现)。

设置只需进行一次。 MCP 服务由插件清单注册,因此会自动加载,并在更新后保持最新。

更新(Claude Code)
/plugin marketplace update antonbabenko  # pull the new version from the marketplace
/deliberation:reload-mcp                 # audit processes & recycle dashboard daemon
/reload-plugins                          # reconnect the MCP servers (or restart Claude Code)

**在非 Claude 宿主上更新:**通过 npx -y @antonbabenko/deliberation-mcp 运行独立服务的宿主,会在每次重新解析时获取最新发布版本。npx 会缓存已解析的包,因此如果宿主使用的是旧版本,请清除 npx 缓存 (rm -rf ~/.npm/_npx),或固定/刷新版本。运行 bash scripts/commands/reload-mcp.sh (或在 Codex、Antigravity、OpenCode 上触发 reload-mcp 技能/命令),以审查正在运行的工作进程,并安全地重启后台仪表板守护进程。

备选方案:使用 deliberation MCP 服务(独立运行,适用于任何 Agent)

编排服务也单独发布:npm 包 @antonbabenko/deliberation-mcp,官方 MCP 注册表名称为 io.github.antonbabenko/deliberation。

一键安装: 在 Cursor 中安装 在 VS Code 中安装 在 Kiro 中安装

适用于任意 MCP 客户端的手动配置

将以下内容添加到主机的 MCP 配置中(大多数主机使用 mcpServers 键):

{
  "mcpServers": {
    "deliberation": {
      "command": "npx",
      "args": ["-y", "@antonbabenko/deliberation-mcp"],
      "env": {
        "XAI_API_KEY": "xai-...",
        "OPENROUTER_API_KEY": "sk-or-v1-..."
      }
    }
  }
}

env 区块用于在 Claude Code 之外设置提供商密钥。GPT 和 Gemini 不会读取这里的密钥,而是使用 codex 和 agy CLI(需分别登录),因此如果只使用 GPT/Gemini,请删除这些行。XAI_API_KEY 用于启用 Grok;OPENROUTER_API_KEY 用于启用 OpenRouter(还需要在 ~/.config/deliberation/config.json(规范的 XDG 路径)或 Windows 的 %APPDATA%\deliberation\config.json 中声明模型,也可以通过 DELIBERATION_CONFIG 指定其他路径)。上方的一键安装按钮无法携带密钥,安装后请手动添加 env 区块。

各主机的配置位置及所需键:

主机配置键
Claude Codeclaude mcp add deliberation -- npx -y @antonbabenko/deliberation-mcp(或项目 .mcp.json)mcpServers
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json(macOS)、%APPDATA%\Claude\claude_desktop_config.json(Windows)mcpServers
Cursor~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目)mcpServers
VS Code.vscode/mcp.json——注意:每个条目都需要 "type": "stdio"servers
Codex CLI~/.codex/config.toml——TOML,例如 [mcp_servers.deliberation]mcp_servers
Gemini CLI~/.gemini/settings.jsonmcpServers
Windsurf~/.codeium/windsurf/mcp_config.jsonmcpServers
Zedsettings.jsoncontext_servers
Cline扩展的 MCP 设置(Cline 面板 -> MCP Servers)mcpServers

提供商的前置要求与插件相同(参见要求):GPT 需要 Codex CLI,Gemini 需要 agy,Grok 需要 XAI_API_KEY,OpenRouter 需要 OPENROUTER_API_KEY 和 ~/.config/deliberation/config.json(Windows:%APPDATA%\deliberation\config.json;使用 DELIBERATION_CONFIG 覆盖配置路径)。 提供的工具:ask-all、consensus(一次调用完成完整收敛循环,或通过 synthesizeAlways:true 进行单次综合)、consensus-step(自行驱动循环,每次调用执行一个操作)、ask-gpt / ask-gemini / ask-grok / ask-openrouter、panel + ask-one(发现当前启用的提供方集合,然后逐个调用提供方;并行发起调用可查看各提供方的进度)、analyze(基于调试日志和会话进行只读运行分析:各模型的延迟 / 令牌数及结论一致性,并提供调整建议;configuredOnly 和 since 可将报告限定为仍在使用的模型和指定时间段)、八个专家(architect、plan-reviewer、scope-analyst、code-reviewer、security-analyst、researcher、debugger、writing-editor),以及会话工具(session-get / session-revisit / session-annotate)。每个结果都包含 ms 和实际生效的 reasoningEffort(HTTP 提供方还会返回令牌 usage)。可选调试日志("debug": { "enabled": true })会记录延迟 / 令牌数 / 投票,但绝不记录提示词或响应。可选本地仪表板("dashboard": { "enabled": true },然后运行 deliberation-mcp dashboard)会在浏览器中将每次运行绘制为实时状态图;panel 会返回一个 runId,供 ask-one 接收,因此并行扇出会显示为一次运行。这些功能在服务端实现,因此适用于所有 MCP 宿主,而不仅限于 Claude Code(参见工具指南)。

此软件包还提供 deliberation-setup 可执行文件。运行一次 npx -y --package @antonbabenko/deliberation-mcp deliberation-setup,即可写入初始配置 ~/.config/deliberation/config.json(绝不会覆盖现有文件)。普通的 npx -y @antonbabenko/deliberation-mcp 命令会运行默认可执行文件(即服务),MCP 宿主会启动它。有关宿主规则配置,请参见工具指南和 examples/ 中各宿主的代码片段。

在 Docker 中运行

此代码库提供了一个 Dockerfile,用于在容器中运行独立服务。它会通过 mcp-proxy 封装 stdio 服务,这与 MCP 托管提供方所需的形式一致:

docker build -t deliberation-mcp .
docker run -i --rm \
  -e XAI_API_KEY -e OPENROUTER_API_KEY \
  -v ~/.config/deliberation:/home/node/.config/deliberation:ro \
  deliberation-mcp

Grok 和 OpenRouter 仅凭密钥即可运行。GPT 和 Gemini 则不行——它们会调用 codex 和 agy CLI,而镜像中没有这两个 CLI,因此这两个提供方在容器内会报告 not-found / missing-cli。

各宿主的原生插件(Antigravity / Cursor / Codex / Kiro / OpenCode)

除了上面的原始 MCP 配置外,deliberation 还为五种宿主提供原生插件制品,让使用体验与 Claude Code 插件一致(包含具备特定角色的专家和何时委派的指导,而不只是基础工具)。所有这些制品都由规范来源通过 node scripts/sync-hosts.js 生成并提交,因此不会出现偏差(CI 偏差测试会对此进行检查)。每种宿主都会在仓库中扫描自己的文件:

宿主原生制品(在此仓库中)安装
Antigravity & Gemini.agents/skills/、.gemini/skills/ 和 .agents/mcp.json会在项目根目录中自动发现,也可以将 .agents/skills/ 和 .gemini/skills/ 复制到工作区。
Cursor.cursor/rules/deliberation.mdc使用上方的一键 MCP 按钮,然后将 .mdc 复制到项目的 .cursor/rules/。
Codex CLIplugins/deliberation/(.codex-plugin/plugin.json + .mcp.json + skills/)以及仓库范围的 .agents/plugins/marketplace.json执行 codex plugin marketplace add antonbabenko/deliberation,然后从 /plugins 安装 deliberation。
KiroPOWER.md + mcp.json + steering/(一个“Kiro Power”)在 Kiro 中选择“从 GitHub 添加 power” -> 输入此仓库 URL。可提交到注册表:kiro.dev/powers/submit。
OpenCode.opencode/commands/*.md + .opencode/agents/*.md在 opencode.json 中添加 MCP 服务(mcp 键、type: "local"、command: ["npx","-y","@antonbabenko/deliberation-mcp"]),然后将 .opencode/commands/ 和 .opencode/agents/ 复制到项目中。

提供商凭据的配置方式与独立服务相同(通过 Codex CLI 使用 GPT,通过 agy 使用 Gemini,Grok 使用 XAI_API_KEY,OpenRouter 使用 OPENROUTER_API_KEY)——只设置你要使用的提供商即可。MCP 服务已在服务端注入每位专家的角色设定,因此这些原生文件提供的是宿主的命令和引导界面,而不是重复的逻辑。

各宿主的完整安装指南: docs/hosts/ - Antigravity & Gemini、Cursor、Codex CLI、Kiro、OpenCode。

要求

你至少需要一个提供方:

  • Codex CLI(GPT):运行 npm install -g @openai/codex 安装,然后运行 codex login 登录(需要 ChatGPT 订阅;在远程机器上运行 codex login --device-auth,每台机器登录一次)。ChatGPT Business/Enterprise 工作区可以改为设置 CODEX_ACCESS_TOKEN。两者都没有时,codex 会使用 CODEX_API_KEY;绝不会使用 OPENAI_API_KEY。
  • Antigravity CLI:查看Antigravity CLI 入门指南和从 Gemini CLI 迁移,然后运行 agy 并登录。
  • Grok (xAI):无需安装 CLI;桥接程序随插件提供(需要 Node 18+)。设置 XAI_API_KEY(在 https://console.x.ai 获取密钥)。
  • OpenRouter:无需 CLI;桥接程序随插件提供(需要 Node 18+)。设置 OPENROUTER_API_KEY(在 https://openrouter.ai/keys 获取密钥),然后在 ~/.config/deliberation/config.json 中声明模型(Windows:%APPDATA%\deliberation\config.json;使用 DELIBERATION_CONFIG 覆盖)。适用于任何兼容 OpenAI 的端点(Ollama、vLLM、LM Studio、HuggingFace Inference)——密钥环境变量为空时会自动跳过身份验证。支持自定义 OpenRouter 预设(例如 cheapest-first),以优化推理成本和提供方路由。

Windows 提示(CLI 提供方)。 在 Windows 上运行 npm install -g 会安装 codex.cmd 存根,而非可执行文件;Node 无法直接启动 .cmd,因此 GPT 调用过去只会失败并报出生成进程错误。deliberation 现在会自行解析 CLI(先使用 PATHEXT,失败时回退到软件包自身的入口点),并且不会通过 shell 启动它。如果在你的机器上解析失败,请将 CODEX_BIN(GPT)或 AGY_BIN(Gemini)指向实际的可执行文件。Grok 和 OpenRouter 不受影响——它们是 HTTP 桥接程序,不会启动任何进程。

Claude Code 网页版提示。 网页宿主会将每次 MCP 工具调用的时限限制为 60s(MCP_TOOL_TIMEOUT=60000)。插件清单会针对每个服务覆盖此时限:每个 deliberation 服务都声明 "timeout": 1800000(30 min,Claude Code 会优先应用此值,而非 MCP_TOOL_TIMEOUT),并将其同步到服务的环境变量中,以便插件自身的时限上限与实际值保持一致。无需设置任何环境变量。如果某个 timeout 结果的消息仍显示 MCP_TOOL_TIMEOUT=60000,说明安装的是旧版插件:运行 claude plugin update deliberation@antonbabenko 并开启新会话。/deliberation:doctor 会报告时限上限、codex 凭据以及 agy 是否缺失;面板会跳过无法响应的提供方(panel.unavailable),而不是一直等待。对于 GPT,不要将笔记本电脑上的 ~/.codex/auth.json 复制到容器中:ChatGPT 登录的刷新令牌只能使用一次,因此其中一个副本一旦刷新,另一个副本就会失效。使用 Plus/Pro 时,会话中的首次 GPT 调用会启动 codex login --device-auth 并显示链接和代码(宿主支持时会显示对话框,否则会显示在结果中);完成授权后 GPT 即可响应。使用 Business/Enterprise 时,请设置 CODEX_ACCESS_TOKEN。请参阅 SETUP.md。

命令

随 Claude Code 插件一同提供(安装后即可使用;OpenCode 可使用 ask-*、consensus 和 analyze 命令,其他所有宿主都直接调用对应的 MCP 工具):

命令用途
/deliberation:setup配置 Codex/Gemini/Grok/OpenRouter MCP 服务 + 编排规则
/deliberation:help了解如何在你的宿主上使用 deliberation,并查看可直接粘贴的示例提示词
/deliberation:doctor健康检查(配置、提供方 CLI、会话/调试、路径漂移)并提供修复方案;只读
/deliberation:dashboard启动本地只读仪表板(以实时状态图、历史记录、配置、健康状况、统计数据和分析器的形式运行)并打印其 URL;restart 会停止仪表板并打印新的 URL。需要启用 dashboard.enabled,且同一台机器上有浏览器
/deliberation:codex-login在此机器上通过 ChatGPT 设备登录让 GPT(Codex)登录——显示链接和代码;适用于 Web 和无头会话
/deliberation:consensus🔥🔥🔥 由 Arbiter 协调的 GPT + Gemini + Grok + Claude 收敛循环
/deliberation:ask-all并行征询 GPT + Gemini + Grok(以及已配置的 OpenRouter 模型),并综合结果
/deliberation:ask-gpt一次性征询 GPT(Codex)的第二意见
/deliberation:ask-gemini一次性征询 Gemini 的第二意见
/deliberation:ask-grok一次性征询 Grok(xAI)的第二意见(仅供参考)
/deliberation:ask-openrouter一次性征询 OpenRouter 模型的第二意见(仅供参考)
/deliberation:analyze分析近期运行情况(延迟、令牌、结论一致性),并建议调整模型/推理/扇出配置(仅供参考)
/deliberation:uninstall移除 MCP 配置、规则和别名
/deliberation:grok-files列出、清理或 gc Grok 上传的文件(存储空间 + 本地缓存清理)
/deliberation:reload-mcp平稳重启仪表板守护进程,并在更新后审查 MCP 进程

/setup 也可以在 ~/.claude/commands/ 中安装简短别名(/ask-gpt、/ask-gemini、/ask-grok、/ask-openrouter、/ask-all、/consensus)。此操作为可选。默认保留同名的现有命令;setup 会在覆盖任何命令前征求同意。/deliberation:uninstall 仅在别名与随附副本逐字节完全相同时才会将其移除。

analyze 特意不包含在内:/analyze 是常见名称,直接复制会与任何包含该命令的其他插件冲突。请使用始终可用的 /deliberation:analyze。如果先前的 setup 安装了 ~/.claude/commands/analyze.md,setup 现在会指出该路径,方便你删除。/deliberation:uninstall 也会列出 analyze,但其逐字节完全相同检查仅匹配当前随附文件的副本——从旧版本复制的别名会有所不同,因此会有意保留,而不会猜测是否应将其删除。

专家

专家职责示例触发语
架构师系统设计、权衡分析、复杂调试“我应该如何设计结构?” / “有哪些权衡?”
计划审查员在开始前验证计划“审查这份迁移计划” / “这个方案靠谱吗?”
范围分析师尽早发现歧义“我遗漏了什么?” / “明确范围”
代码审查员查找错误、提升质量“审查这个 PR” / “这有什么问题?”
安全分析师漏洞、威胁建模“这样安全吗?” / “强化这个端点”
研究员外部库、文档、最佳实践“如何使用 X?” / “查找 Y 的示例”
调试员根因分析、最小化修复“为什么会崩溃?” / “调试这个失败的测试”
写作编辑润色文案,让它读起来像出自你手“编辑这篇发布公告” / “这份 README 的简介读起来很空泛”
专家最能发挥作用的场景
  • 架构决策——“我应该使用 Redis,还是内存缓存?”
  • 调试陷入僵局——两次或更多次尝试失败后,换个角度思考
  • 开始实现之前——先验证计划,再编写代码
  • 安全问题——“这个身份验证流程安全吗?”
  • 代码质量——请他人对你的实现发表第二意见
不适合求助专家的场景
  • 简单的文件操作(Claude 会直接处理)
  • 第一次尝试修复问题(先自己试试)
  • 简单的问题(没必要委派)
用你自己的风格写作

每当你的 Agent 撰写、审阅或更新以你的名义发布的文本时,写作编辑器都会运行:帖子、文章、新闻简报、发布说明、README 简介、PR 描述、个人简介、演讲摘要。你的 Agent 会先起草,然后编辑器会在你看到草稿之前检查它。编辑器会提供逐行修改建议、提出需要你提供额外信息的问题,并给出一份保留所有事实的改写稿。对于重要的文章,可以在草稿上运行 /consensus,由评审组使用 writing-editor persona 进行审阅。

编辑器需要了解你平时的写作方式。有了相关素材,它才能做得更好;否则只能删减赘词。简短的风格文件最有帮助。将它保存在你的仓库中,并指明文件位置(“使用我在 docs/voice.md 中的风格文件”):

# <Your name> - voice

## How to use this file
- These rules beat any default style rule.
- Samples show rhythm only. Do not copy their phrases.
- Never invent a fact, number, person, customer, or quote.

## What I argue from
- 3-7 beliefs you keep coming back to, in your words.

## Mechanics
- "I" or "we", contractions or full forms, sentence length mix.
- Name the specific thing. A number beats an adjective, and every number needs a source.
- Typography you use (dashes, quotes, heading case).

## Moves
| Move | Use only when | My own example |
|------|---------------|----------------|
| <a habit of yours> | <the condition> | "<a real line you wrote>" |

At most one move per short post.

## Would sound wrong
| Wrong | Why |
|-------|-----|
| "Thrilled to share" | Launch voice. Say what shipped. |
| "Here's the thing", "Sound familiar?" | Run-up. Start with the thing itself. |
| A one-line quotable closer | End on the last concrete fact. |

## Channels
- LinkedIn: the hook fits before the "see more" cut, 1-3 sentence paragraphs, no closing question.
- Blog: ...

## Samples (rhythm only)
- 5-10 short lines you wrote yourself: posts, replies, talk transcripts.

文件中的两个部分最能发挥作用。每种写作手法都有适用条件,因此编辑器不会在每篇帖子里都套用你的标志性句式(习惯用语过度使用也会显得像机器生成)。“听起来不对劲”表格列出了你绝不会写的表达。手动编辑草稿时,把你对风格所做的调整作为规则添加到文件中。

选择模型:

  • 使用多个模型系列进行审阅。/consensus 配合 writing-editor persona,会将草稿发送给共识评审组中的每个模型。不同系列的评审者往往会指出不同的问题(一个会注意文章的脉络,另一个会发现你从未提出过的论断)。

  • 为改写稿单独创建模型记录。仅限 writing-editor 使用的记录只参与文本审阅,因此不会影响代码审阅的设置。写作时的温度可以高于审阅通常使用的 0.2。根据模型如何改写你提供的样例来选择,而不是根据基准测试成绩:

    "models": {
      "prose": {
        "provider": "openrouter",
        "model": "<provider/model whose prose you like>",
        "experts": ["writing-editor"],
        "consensus": true,
        "temperature": 0.7
      }
    }
    
  • 只有 Gemini 能将改写稿写回文件(实现模式)。其他模型会以文本形式返回改写稿。

编辑器不会给文本评定“AI 生成可能性”,也不承诺任何检测结果。它也绝不会为了让文本看起来像人写的而故意加入错别字或语法错误。

如何使用

描述你的任务。你的 Agent 会判断何时需要专家帮助,并自动委派(示例展示的是 Claude Code):

You: "Is this authentication flow secure?"
Claude: routes to the Security Analyst, then synthesizes the findings.

你也可以明确提出请求:“请 GPT 审阅这个架构”“请 Gemini……”,或“请 Grok……”。每位专家都会以只读方式进行分析;Gemini 也可以在拥有写入权限的情况下运行并应用修复,而你的 Agent 会根据请求选择运行模式。

也可以直接调用斜杠命令——参见上文的命令。

/consensus 和 /ask-* 如何确保模型保持客观

本节使用 Claude Code 的命令名称;“Claude”指负责协调运行的宿主 Agent。在其他宿主环境中,你自己的 Agent 会通过 consensus-step 工具发挥这一作用(或者由服务通过 consensus 发挥这一作用),遵循相同的规则。

/ask-gpt、/ask-gemini、/ask-grok 和 /ask-all 是快捷命令:每个命令会调度一个或三个外部模型,由 Claude 阅读输出,然后为你整理出一份综合回答。单次调用,没有循环,也没有同伴评审环节。

/consensus 则是更全面的命令。它同样会并行调度模型,但还会加入同伴评审环节和多轮循环,直到模型达成一致才会停止。代价是:协调器(Claude)会编写评审提示词、投票、判断哪些异议成立,并运行循环。如果不加限制,这种设置可能会悄悄地为自身的计划背书。四项保障措施可以避免这一点。

/consensus 三阶段流程 查看包含偏见防护机制和各模型流程的详细图示

四项防护机制:

  • 盲评结论。 Claude 会在调用评审小组的消息之前,先单独发送自己的结论(APPROVE / REQUEST CHANGES / REJECT)。这份预先承诺会保留在对话记录中,因此 Claude 无法在看到其他模型的意见后改变自己的看法。引擎会强制执行这一点:记录盲评结论之前,不会揭示评审小组的意见。
  • 同行评审。 每个外部模型都会独立评审计划,并返回结论和分类后的关键问题;Claude 作为仲裁者权衡这些意见。模型负责投票,Claude 负责裁决。
  • 禁止自我批准。 只有在每个作出回应的外部模型都表示批准,且至少有一个外部模型实际作出回应时,轮次才会收敛。Claude 自己的批准不能单独让轮次通过。出错的提供方(例如未配置的 Grok 返回 missing-auth)会从计数中剔除,而不会卡住循环。
  • 不得默默驳回。 最终报告必须为每个被驳回或延后的关键问题附上一句理由,包括 Claude 撤回自己某项盲评异议的情况。若裁决驳回问题却未提供理由,引擎会拒绝该裁决。

/ask-* 命令也采用同一规则的简化版本。外部模型只提供建议:Claude 阅读输出后运用自己的判断,并对综合后的回答负责。模型意见一致时,这只是输入,而非结论。

每个委派提示词还会包含当天的 UTC 日期,并规定不得仅凭记忆就声称某个不熟悉的模型、工具或版本不存在:数月前训练完成的模型遇到这类说法时,应标记为 [unverified],而不是将其列为关键问题。核实实际情况仍由 Claude 负责,因为它有工具可用;Grok 和 OpenRouter 则没有。详见 TECHNICAL.md。

深入了解:单个 /consensus 轮次的实际运行方式

/consensus 是对核心收敛引擎(core/consensus-loop.js)的轻量封装;轮次计数、收敛规则、可配置的最大轮次上限、历史记录和置信度标签等循环机制都由引擎负责,而非命令本身。每一轮都会:

  1. 盲评结论。 Claude 会在揭示评审小组意见之前,先提交自己的结论(对话记录中可见);引擎会确保先记录结论,再揭示意见。
  2. 评审小组审查。 GPT、Gemini、Grok(以及任何已配置的 OpenRouter 委派模型)会并行评审计划,并给出 APPROVE / REQUEST CHANGES / REJECT 结论及分类后的关键问题。服务端会解析每个结论。
  3. 仲裁裁决与修订。 Claude 会综合评审小组的结论和自己的盲评结论;针对每个关键问题,它会选择接受、驳回(必须说明理由)或延后,然后修订计划以供下一轮评审。

当至少一个作出回应的外部模型表示批准、没有模型表示拒绝、接受的关键问题为零,且 Claude 裁定为 APPROVE 时,循环即收敛——因此 Claude 无法自我批准。否则,循环会在达到 consensus.maxRounds(默认值为 5,可配置)时停止,并标记为 unresolved。置信度标签反映收敛速度(第 1 轮 = 高,2-3 轮 = 中,4-5 轮 = 低)。

每一轮只会等待仍能作出回应的模型:连续 2 轮失败的评审模型会从小组中移除(仅通过 droppedProviders 报告一次,此后不再向其发送请求);达到 consensus.maxWallMs(默认 30 min)后,整个循环也会停止,而不会启动新一轮。这两项规则适用于每个驱动程序。详见 TECHNICAL.md。

其他宿主使用的入口也由同一引擎提供支持:consensus 工具(可在一次调用中通过提供方仲裁者在服务端运行完整循环,或通过 synthesizeAlways:true 执行单次综合)以及 consensus-step(自行驱动,每次调用执行一个操作)。有关分类和引擎约定,详见 TECHNICAL.md。

> 较早的版本曾额外运行一轮匿名同行交叉评审「Stage 2」(每个模型盲评其他模型的答案,改编自 [karpathy/llm-council](https://github.com/karpathy/llm-council))。由引擎驱动的重写移除了这一环节,以保持单一事实来源;它可能会作为引擎功能回归。

配置

完整的设置和配置参考见 SETUP.md。其中涵盖:

  • 专家模式 - 咨询模式(read-only)与实现模式(workspace-write),根据你的请求自动选择
  • 配置文件 - 位置(~/.config/deliberation/config.json)、DELIBERATION_CONFIG 覆盖项和热重载
  • 配置分区 - providers、models、routing、consensus、sessions、debug、orientation、dashboard,并附带最简示例
  • OpenRouter 模型 - 声明记录、askAll / consensus 资格、扇出、reasoningEffort 和仲裁器选择;consensus 还会配置轮数上限(maxRounds)和墙钟时间预算(maxWallMs,默认 30 min)
  • GPT 模型与推理力度 - providers.codex.model 和 providers.codex.reasoningEffort 固定 codex exec 运行时使用的配置,并优先于 ~/.codex/config.toml
  • 超时 - providers.defaults.timeout 可一次性提高所有提供方的单次调用上限;providers.<name>.timeout 可覆盖单个提供方的设置,而固定模型的 models.<id>.timeout 仍拥有最高优先级。主机上限(由 Claude Code on the web 设置的 MCP_TOOL_TIMEOUT)会限制所有这些值,并在超时消息中注明。遭遇速率限制(HTTP 429)的调用会重试一次,并遵循上游的 Retry-After
  • 调试日志 - 可选的延迟 / 令牌 / 投票跟踪
  • 会话持久化 - 可选的磁盘运行历史记录(包括由主机驱动的 /consensus 循环)和 session-* 工具;sessions.captureText(默认关闭)还会存储提供方响应正文(经过清理)
  • 仪表板 - 可选的本地只读浏览器视图,以状态图形式查看实时和过往运行,以及配置、提供方健康状况和用量统计。dashboard.capture 可选择仅记录元数据(默认)或完整提示词和响应;写入时会清理密钥,提供内容时则会隐藏个人身份信息(PII),除非启用 dashboard.showPII。仅限环回地址访问,并受令牌保护。每次运行都会记录其项目(按 Git 远程仓库 org/repo 分组,并将发起调用时所在的检出目录作为工作区);每次提供方调用都会记录其请求大小和实际使用的超时值,Analyzer 选项卡会据此生成可移除项和超时建议。使用 /deliberation:dashboard 或 deliberation-mcp dashboard 启动;使用 /deliberation:dashboard restart 或 npm run dashboard:restart 重启;使用 deliberation-mcp dashboard --stop 停止

启用遥测后,配置历史会记录经清理的有效配置快照和运行来源信息。仪表板的 Stats 共用分析时间 / 配置筛选条件;Config 会分别显示 Ask / Consensus 的推理力度,以及运行时实际生效 / 待生效的设置。并行的同行模型会在主机 / 共识预算范围内共用所选的最长超时值(设置 routing.timeoutPolicy: "per-provider" 可不采用此策略)。将面板的 fanoutId 传递给每次渐进式 ask-one 调用,即可固定设置并共用截止时间,即使未启用仪表板日志记录也适用。使用 analyze {groupBy:"config", since:"24h"} 分析历史队列,也可按完整的 configId 或 activationId 进一步筛选。

有关提供方内部机制、环境变量和手动配置 MCP 的信息,请参阅 TECHNICAL.md。

作者

由 Anton Babenko 维护 - LinkedIn,X/Twitter。

贡献

欢迎贡献。工作流、提交规范和自动发布流程请参阅 CONTRIBUTING.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。