BOSS-AS-A-SERVICE · 档 A · BRING YOUR OWN MODEL

boss 出题与纪律,
你的模型出判断

通过 MCP 三个工具接入判断流水线: boss_prepare 返回冻结 context + 全套评委 prompt 包, 你用自己的任意模型跑 synthesis / 评委 / 合议, boss_submit_reviews 回传, boss_render_report 确定性聚合出富报告。boss 全程不调 LLM — 知识、评委 doctrine、打分纪律、聚合算法是 boss 的; token 账单和模型选择是你的。

可用范围: 服务部署在私有网络, 经零信任网关 (Cloudflare Access) 授权后可达 — 这是给授权团队成员的接入手册, 不是公开 SaaS。自托管整套流水线见 首页 · 自托管上手

SECTION 0 · WHAT

和自托管 CLI 的区别: 分工

🧠

你带模型 (BYOM)

synthesis、N 位评委、Lead 合议这三类 LLM 任务全部由调用方模型执行 — Claude、任意 OpenAI-compatible 端点、本地模型都行。boss 不碰你的 key, 不产生 token 消耗。

📐

boss 带知识与纪律

prepare 时按敏感度分级过滤知识库、加载评委 doctrine、按 panel 推导打分规格; render 时用与 CLI 同一套聚合核算 panel_summary (anchor_delta / 加权均分 / 等级)。

🧾

全程可审计

一次判断 = 一个 run_id; 冻结的 prompt 包与回传 review 存服务侧 run store, TTL 24 小时后物理删除。所有对外返回经出口脱敏闸 fail-close。

SECTION 1 · QUICKSTART

30 秒接入 Claude Code

在项目根目录加一个 .mcp.json, 重启会话即可。MCP 是主协议 (streamable-http); 不用 MCP 的场景走 HTTP 备协议

// .mcp.json — 项目根目录 (地址替换为你被授权的服务端点)
{
  "mcpServers": {
    "boss": { "type": "http", "url": "https://<your-endpoint>/mcp" }
  }
}

经反向代理接入时: 服务端须把该对外域名加进 BOSS_SVC_ALLOWED_HOSTS。MCP SDK 的 DNS-rebinding 防护默认只认 localhost, 隧道进来的请求 Host 是公网域名, 未加白名单会返回 421 Invalid Host header(直连本机调试则用 http://127.0.0.1:8431/mcp。)

然后在对话里直接说:

用 boss_prepare 起一个评审: scene 用 default, 议题是"评估 X 产品线明年是否扩张"。
拿到 prompt 包后你自己跑 synthesis 和每位评委, 然后 submit 回去, 最后 render 出报告给我。

Claude 会自动完成 prepare → 逐评委生成 review → submit → render 的完整闭环, 最终把富报告 markdown 给你。不想配 Claude Code? 用 在线体验台 零配置直接试 (服务端代跑, 演示模式不连知识库, 每日限量)。

SECTION 2 · WORKFLOW

一次判断的 4 步闭环

蓝色步骤在你这边执行 (你的模型、你的编排); 白色步骤是 boss 的确定性计算, 毫秒级返回。

STEP 1 · BOSS
boss_prepare
给议题/文档 + scene → 返回 run_id + 冻结 context + synthesis / N 评委 / merge 三类 prompt + scoring_spec
STEP 2 · 你的模型
跑 prompt 包
先跑 synthesis_task; 再把产物替换进每位评委的 <<SYNTHESIS_MD>> 哨兵, 逐评委独立生成 review
STEP 3 · BOSS
boss_submit_reviews
回传全部 review。逐份契约校验 (打分齐/界内、反方三字段、confidence), 任一失败全批拒绝并返回逐条明细
STEP 4 · BOSS
boss_render_report
确定性聚合出 panel_summary + 富报告 markdown。可选带上你模型跑 merge_task 的 prose。可重复调用

哨兵替换约定: 模板里的 <<SYNTHESIS_MD>> / <<REVIEWS_MD>>字符串替换填入 (不要用 format 类模板引擎 — 正文里可能有花括号)。

SECTION 3 · TOOLS · schema_version 1.0

三个工具的契约

所有请求/响应带 schema_version; 不兼容变更走 major。工具返回 {"ok": false, "error": "...", "errors": [...]} 表示业务失败。

boss_prepare

起一个 run。topicreview_doc 至少给一个 (给文档即评审模式 — 文档原文直接进 synthesis prompt, boss 不做 LLM 解析)。

请求字段必填说明
scenescene slug 或 panel 名/路径 (决定评委编组与打分规格; 不确定用 default)
topic二选一议题一句话
review_doc二选一{name, text} — 被评审文档 (超长自动智能截断)
panel_overrides可选{add: [], drop: []} 调整评委
kb可选{mode: "hosted", tier: "internal"} — 知识库可见档位
caller可选调用方标识 (审计用)
响应字段说明
run_id本次判断的句柄, 后续两步都用它
context_md冻结的 Phase 1 context (已按 tier 过滤 + 出口脱敏)
synthesis_task{system, user_template} — 先跑这个
judges[]每位评委 {slug, category, system, user_template} — 独立跑, 互不可见
merge_task{system, user_template} — 可选的 Lead 合议叙事
scoring_spec / anchor_judges打分规格 (5 镜头或 panel 自定义维度) 与锚点评委名单

boss_submit_reviews

回传评委 review。请求: {run_id, reviews: [{judge, review_md}]}。同一 judge 重复提交覆盖 (幂等)。响应: {accepted: [...], state: "submitted"}

boss_render_report

确定性聚合。请求: {run_id, body_prose?}body_prose 是你模型跑 merge_task 的产物 (可不带, 报告退化为聚合 + 评委原文)。响应: {report_md, panel_summary, state: "rendered"}。可重复调用, 修 review 后重新 submit 再 render 即可。

SECTION 4 · REVIEW CONTRACT

回传 review 的硬约束

review_md 与流水线 Phase 4 输出格式一致: YAML frontmatter + 三段 body。评委 prompt (judges[].system) 里已写全格式要求 — 你的模型照着 prompt 输出即天然合规。校验失败会返回逐条明细, 修完重新提交。

# review_md 骨架 (weighted 模式 · 5 镜头 1-10)
---
judge: industry-trend
scores:
  reasoning_soundness: 8
  evidence_thesis_coupling: 7
  counter_position_treatment: 9
  falsifiability: 7
  real_world_resilience: 8
confidence: 0.7
adversarial_view:                # dimension 评委必填三字段; anchor 评委不写
  if_thesis_wrong: 哪一环最脆弱
  contrary_signal_observed: 近期反向信号 (带 source)
  base_rate_warning: 同类决策历史 base rate
---

## 一句话
<人格化金句>

## 关键缺口
<本议题最大缺口>

## 行动建议
<具体下一步>
SECTION 5 · HTTP FALLBACK

不用 MCP? HTTP 三连

同一套 core 的 JSON 端点, 适合脚本 / CI / 任意语言 runtime。带 Authorization: Bearer (token 向服务管理员申请)。

# 1. prepare
curl -s $BOSS/v1/prepare -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"scene":"default","topic":"评估 X 产品线明年是否扩张"}'

# 2. (你的模型跑完 prompt 包后) submit
curl -s $BOSS/v1/submit -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"run_id":"run_...","reviews":[{"judge":"tian","review_md":"---\n..."}]}'

# 3. render
curl -s $BOSS/v1/render -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"run_id":"run_..."}'

探活: GET /v1/healthz (免 auth)。错误码: 401 token 错 / 404 run 不存在或已过 TTL / 422 review 校验失败 (带 errors 明细) / 502 响应命中出口脱敏闸。

SECTION 6 · RULES

规则与安全边界

SECTION 7 · FAQ

常见问题

和 /boss CLI 是什么关系? +

同一个引擎核 (prompt 装配、打分聚合、知识库访问是同一套代码), 两种外壳: CLI 是"boss 帮你调模型"的全托管形态; MCP 服务是"你自己调模型"的 BYOM 形态。评委 doctrine、5 镜头、adversarial_view、anchor_delta 这些纪律两边完全一致。

可以用 OpenAI / 本地模型跑评委吗? +

可以。prompt 包是纯文本, 任何能吃 system + user prompt 的模型都能跑。唯一要求是产出符合 review 契约 (评委 prompt 里已写全格式) — 弱模型可能格式不稳, submit 会给逐条错误明细, 修完重发即可。

一次 run 的数据保存多久? +

24 小时, 到期物理删除 (不是软删)。这是刻意设计: 服务侧不做长期存储, 报告的归档责任在调用方。渲染出的 report_md 请自行保存。

submit 返回 422 一大串错误怎么办? +

逐条看 errors: 常见是评委漏打某个镜头分、dimension 评委漏了 adversarial_view 三字段、分数越界。把明细喂回你的模型让它修复对应 review, 然后整批重新 submit (原子语义, 不支持只补一份)。

为什么我的报告被 502 拦了? +

出口脱敏闸命中了敏感模式 (如精确财务数字)。这是 fail-close 红线 — 系统宁可误拦。把输入文档或 merge prose 里的精确敏感数字改为区间/模糊表述后重跑 render。