Skip to content

CLI 参考 · /boss

/boss 是判断流水线的用户面 slash command (与 /mba 同范式), 内部委派给 tian-judgement-orchestrator

参照 skills/tian/SKILL.md (~600 行解析 + 路由 + 委派) 与 scripts/run_pipeline_local.py (CLI 等价路径)。

一次性安装

bash
# 在 boss-vault repo 根目录跑一次, 把 vault skill symlink 到 ~/.claude/skills/boss/
bash scripts/install_tian_skill.sh

# 安装模式选择:
bash scripts/install_tian_skill.sh             # 默认 symlink (本机开发)
bash scripts/install_tian_skill.sh --copy      # 拷贝模式 (远程主机, 无 vault 路径)
bash scripts/install_tian_skill.sh --check     # 查看 install 状态
bash scripts/install_tian_skill.sh --remove    # 删除 symlink (vault source 保留)

安装后 Claude Code 内立即可用 /boss <议题>

主命令

/boss <议题或 brand-slug>
  • reports/<brand-slug>/report.md 已存在 + 未传 --refreshEVOLUTION 模式 (只重判变化维度)
  • 否则 → FRESH 模式 (完整 Phase 1-5)

主流 flags

Flag含义
--quick跳过 raw_evidence WebSearch leg, 仅本地 Wiki + raw
--refresh强制 EVOLUTION (即使 brand 已有 report)
--no-judgesPhase 4 跳过 (仅 Phase 3 synthesis 出)
--focus 1,3,5只调研指定调研维度 (7 维度中挑)
--panel <name>用指定 panels/<name>.yaml 而非 default
--panel-add <slug>临时加挂评委 (默认 panel 之外)
--panel-drop <slug>临时跳过某评委 (利益冲突等)
--full-panel6 dim 评委全上 (而非 auto-select 3-4)
--lock-framework-prediction★ 90d 盲测专用, 锁 framework v0.1 预判 (chmod 444)
--lock-framework v0.2同上, 指定 v0.2 opt-in
--diff-only <dims>EVOLUTION: 只重跑指定维度 (逗号分隔), 其余沿用上版 review
--no-diff-planEVOLUTION: 禁用 Phase 1E 自动 diff plan, 强制全维度重跑 (v0.6)

Phase 6 export flags

Phase 6 生成 3 套报告 (Set A 内部完整版 / Set B 公开脱敏版 / Set C 内部可视化版):

Flag含义
--exportSet A confidential 完整合并 (一键, 默认 set)
--export-full全 3 套 (A + B Light + C v2)
--export-set <a|b|c|all>显式选 set
--export-redact <level>Set B 脱敏强度: light / strict / meta-only
--export-skip-pdf仅 md/html, 跳 Chrome PDF
--export-only跳 Phase 1-5, 仅跑 Phase 6 (brand 已有 report 时用)

子命令

子命令含义
/boss list列出已判断议题 + version 计数
/boss panels列出 panel + 评委身份
/boss panels show <name>打印 panels/<name>.yaml 内容
/boss panels new <name>克隆 default.yaml 作为新 panel

CLI 等价 · run_pipeline_local.py

CLI 端可直接选择 LLM provider:

bash
python3 scripts/run_pipeline_local.py "议题" \
  --brand &lt;brand-slug&gt; \
  --llm-provider codex-cli \
  --export-full

支持的 provider: codex-cli · kimi-cli · anthropic · anthropic-compatible · openai-compatible (智谱 / Kimi / OpenAI / 各类网关通过 base_url + API key 接入; kimi-cli 直接 spawn 本地 Kimi CLI)。

LLM provider / 模型 一键切换 (v1.3.1)

部署后频繁切换 LLM(不同 provider、不同模型)不必手敲 5 个 BOSS_LLM_* 环境变量。scripts/llm_switch.pyprofile 一条命令切换:

bash
python3 scripts/llm_switch.py list                       # 列所有 profile + 当前激活
python3 scripts/llm_switch.py use gpt                     # 切到某 provider (profile 默认模型)
python3 scripts/llm_switch.py use gpt --model &lt;model&gt;     # 切 provider + 指定模型 (端点上任意)
python3 scripts/llm_switch.py use gpt --model-fast &lt;m1&gt; --model-deep &lt;m2&gt;   # 快/慢分开
python3 scripts/llm_switch.py show                        # 复核当前配置 (key 打码)
  • profile 定义在 config/llm_profiles.yaml(无密钥,可入库):每个 profile 存 provider / base_url / model_fast / model_deep / api_key_env
  • 密钥与私有端点留在 .env:profile 的 api_key_env 现读现写到 BOSS_LLM_API_KEY;base_url/model_* 支持 ${VAR} 引用 .env 变量(私有端点不入库)。
  • 切换只改 .envBOSS_LLM_* 5 行,其余行不动;改完重启 worker 生效。
  • 加新模型 = 加一个 yaml 段,不改代码;--model 让端点上任意模型即时可用。

实践:对结构化输出敏感的步骤(Phase 0 文档解析 = model_fast)用指令遵循稳的模型(如 gpt-4o);评委打分(model_deep)可换更强的模型。选模型时确认网关确实有该模型的通道(有的名字在 /models 列表里却无后端,会 503)。

对"模型偶发犯浑"的韧性兜底

接入指令遵循较弱 / 较新的模型时,偶发的格式问题不再让整篇报告报废 —— 流水线四层兜底,不靠运气:

阶段偶发问题兜底
Phase 0 文档解析模型把"解析"当成"评审"(返回评分字段而非解析 schema)缺必填字段自动重试 + 强化 reprompt 拉回
Phase 5 §B 合议整段输出被包进 ``` 代码围栏自动剥最外层围栏
Phase 5 §B 合议长合成偶发退化为 token 汤(中英文碎片粘连)退化检测 + 重跑,取最干净一版
§C 评委建议单边孤立代码围栏残留按奇偶剥孤立围栏(成对代码块不动)

这些兜底是"重试 / 修剪",不改判断内容;模型选型仍是质量的主要杠杆。

交互菜单与短命令 (v1.5)

list / use 适合脚本;日常人工切换走交互菜单更省事——先选网关,再列出该网关上真实可用的模型来选:

bash
python3 scripts/llm_switch.py            # 无子命令 = 进交互菜单
python3 scripts/llm_switch.py menu       # 同上
python3 scripts/llm_switch.py models     # 直接列当前网关的模型(GET {base_url}/models)

菜单第一步列所有 profile(标 "默认 <model>"、当前激活标 "当前实跑: <model>");选定网关后第二步实时拉该网关 /models 端点列出全部模型号,选一个即写回 .env。网关临时没有 /models(部分自建网关未实现)时,回退到手敲 --model

安装一次 scripts/install_cli_commands.sh,把 bin/llmbin/boss-eval 软链到 ~/.local/bin,之后可直接:

bash
llm                 # = python3 scripts/llm_switch.py(交互菜单)
llm models          # 列当前网关模型
boss-eval --help    # 模型对比评测(下节)

模型客观评测 boss-eval (v1.5)

换模型前想知道"换了到底好不好",scripts/model_eval.py同一份脱敏样本提案跑多个模型、产出可比对的成本 / 结果表:

bash
python3 scripts/model_eval.py --models gpt-4o,gpt-5.5 --repeat 2     # 两个模型各跑 2 次
python3 scripts/model_eval.py --doc <自定义提案.md> --panel <panel>  # 换样本 / 换 panel
python3 scripts/model_eval.py --models ... --dry-run                 # 只打印将要跑的矩阵
boss-eval --models gpt-4o,gpt-5.5                                     # 软链短命令
  • 默认样本是仓内全合成、可复现的脱敏提案(eval/docs/sample-proposal.md),不含任何真实客户数据,放心反复跑。
  • 输出一张对比表(每模型每次:总成本、Verify 是否通过、产出报告的关键指标)+ CSV,便于横向比较。
  • 评测只切 BOSS_LLM_MODEL_FAST/DEEP,不动其它配置;跑完不改激活 profile。

飞书运维命令 (v1.5)

部署后不必每次回服务器敲命令——管理员可直接在飞书里给机器人发命令切模型、查状态:

命令作用
/help列出全部命令、参数、区别与注意事项(所有人可发)
/model查看当前网关 / 模型 + 可切换的网关清单
/model <网关>切到某网关(用其默认模型)
/model <模型号>在当前网关上切到指定模型
/models [网关]列出某网关上真实可用的模型号
  • 单聊直接发命令;群里@机器人 再带命令(@机器人 /help)。
  • /model / /models 等改动类命令仅管理员可用(白名单 BOSS_ADMIN_WHITELIST,逗号分隔 open_id,fail-close:名单空则一律拒绝);/help 对所有人开放。
  • 切换热生效不重启:worker 每次起新评审任务时现读 .envBOSS_LLM_*,下一单即用新模型。
  • 同一个人在不同机器人下 open_id 不同——配白名单要用对应机器人的 open_id(机器人日志里能看到发命令者的 open_id)。

anchor research 工具链 (v0.6)

锚点心智模型从占位走向 agent-derived 的工程链 (详见仓内 docs/v0.6/usage.md §1):

命令含义
python3 scripts/anchor_research_elicit.py --anchor <slug>S1 · 从已有语料抽候选片段 (带 source link) 生成 6 份 worksheet
python3 scripts/skill_lint.py --check-anchor-research --anchor <slug>S3 · 校验 research 6 文件 (占位/字数/引用/provenance)
python3 scripts/monthly_review.py月报含 anchor model drift 段 (delta 统计 + 修订提醒)

anchor 评委 confidence 上限随 research 状态自动分级: 占位 ≤0.4 / agent-derived 未签收 ≤0.6 / anchor 签收后解除。

方法论闭环与脚手架工具 (v0.9)

命令含义
bash scripts/t10_local_driver.sh [--anchor <slug>]T10 一键驱动: 语料预检 → holdout 闸 → S1 → S2 派发指令; --verify 跑 S3 校验 (需本地语料)
python3 scripts/framework_compare.py --case-id <id> [--actual-direction bet|wait|follow] [--write]90d 盲测比对: 锁定预判 vs 实际决策, §E 命中判定; --write 落 90d checkpoint
python3 scripts/add_anchor.py --slug <slug> [--dry-run]加锚点三步一条命令 (CLAUDE.md §2.4): 目录树 + perspective 模板 + panel 克隆 + 闭环验证
python3 scripts/monthly_review.py月报含 framework 盲测记分板 (§E 累计命中率)

自动行为 (v0.9 起): checkpoint 落 falsified/部分证伪时自动按 6 类决策树分类并写 Failure Card (卡内 classifier_confidence < 0.6 时人工复核改判); 盲测议题的 90d checkpoint 自动比对锁定预判。

run_pipeline_local.py/boss完全等价的两条入口, 适合不同场景:

场景推荐入口
Claude Code 内交互/boss (UI 与 Skill 联动)
Codex CLI / 终端脚本python3 scripts/run_pipeline_local.py
CI/CD 自动跑python3 scripts/run_pipeline_local.py (cron 友好)
远程云 VM同上, 走 hermes 或 systemd

EVOLUTION 模式行为

EVOLUTION 跳过 Phase 1 起草, 执行:

  1. Phase 1E · Diff Plan — 列出"自上版以来可能变了什么"; 调 mcp__sage-wiki__query 拉最近变化的 entities; 通常涉及 1-3 个维度
  2. Phase 2E — 只重跑变化的维度
  3. Phase 4E — 让评委只在变化维度上重打分; 其他维度沿用上版
  4. Phase 5E — 版本号 +1, 写新快照, 保留旧 reviews

Phase 出错怎么办

如果 /boss 跑到一半挂掉, 不要直接 --refresh 重跑 (会浪费 Phase 1-3 的 LLM 成本):

bash
# 1. 看挂在哪个 Phase
cat cases/&lt;case-id&gt;/.status
ls cases/&lt;case-id&gt;/raw_evidence/

# 2. 从挂的 Phase 继续 (CLI 支持)
python3 scripts/run_pipeline_local.py "议题" \
  --brand &lt;brand&gt; \
  --resume-from phase-4

# 3. 如果 Phase 4 评委独立打分某位挂了, 单独重跑那位
python3 scripts/run_pipeline_local.py "议题" \
  --brand &lt;brand&gt; \
  --resume-judge industry-trend

详见 故障排查

场景管理

多场景评委体系 (v1.2.0) 引入 Scene 作为 Panel 的上层部署单元 — 详见 多场景评委体系

bash
# 列出所有已定义场景 (slug / scene_type / total_max)
python3 scripts/scene_loader.py list

# 某场景全链路静态校验 (不调 LLM, 不写磁盘)
python3 scripts/smoke_e2e.py smoke-scene <scene-slug>
# 或通过 Makefile:
make smoke-scene SCENE=<scene-slug>

smoke-scene 校验项:

检查说明
scene.yaml 加载字段完整性 + scene_type 合法
competition 约束anchor_judge: null + show_scores_publicly: true
panel 继承链展开extends 字段解析 + judges/lenses 覆写
skill_path 文件存在所有 judge 的 SKILL.md 存在于 vault
总分汇总sum_max_score 模式下维度 max_score 之和
anchor_judge 一致性scene.yaml vs panel.yaml 一致

适合在 CI 门控或 VM 联调前跑。

定性总结场景 (meeting_summary)

output_format: meeting_summary 的场景 (会议总结评审) 产出多视角会议总结 deck 而非打分报告, 走平行的定性流水线 (worker 按 output_format 自动分派; 下列命令供联调 / 手动补跑):

bash
# 跑一场会议总结: 读会议材料 → 每评委产出 [判断逻辑+3亮点+3不足+一句话] → 渲 deck
python3 scripts/meeting_summary_pipeline.py --doc <会议材> --brand <brand> --scene meeting-review

# 把已有 deck 单独渲成 4:1 大屏 PPTX (会议现场大屏展示用)
python3 scripts/meeting_summary_pptx.py <brand>
# → reports/<brand>/meeting-summary.pptx

详见 多场景评委体系 · 技术参考 §2.6 与概念页「输出形态」

反共识 flags

某些 flag 是反默认的, 需要谨慎使用:

  • --full-panel — 默认 auto-select 是有原因的 (节省 LLM + 避免噪音). 用这个 flag 意味"我准备好读 6 份独立 review 而非 3 份"
  • --no-judges — 仅出 synthesis, 不是判断. 适合早期探索, 不适合正式议题
  • --lock-framework-prediction — 90d 盲测专用, 锁后不可改 prediction. 用 chmod 444 物理保护

与 panel.yaml 的关系

/boss --panel <name> 不会改 reports/<brand>/panel.yaml; 后者只在 FRESH 模式首次运行时写入 (绑定该议题的 panel)。

EVOLUTION 模式默认沿用绑定的 panel, 除非 --panel-add/--panel-drop 临时调整。

判断力工程化 · Judgement, Engineered · 主站 · GitHub