113 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
schemaVersion: role-contracts-v1
roles:
writer:
displayName: 网文写手
promptFile: .agent/agents/writer.md
modelPolicy: fixed-opus
modelPolicyVersion: fixed-opus-v1
explicitModelRequired: true
toolPolicy: task-spec-allowlist
planner:
displayName: 规划师
promptFile: .agent/agents/planner.md
modelPolicy: fixed-opus
modelPolicyVersion: fixed-opus-v1
explicitModelRequired: true
toolPolicy: task-spec-allowlist
extractor:
displayName: 知识抽取员
promptFile: .agent/agents/extractor.md
modelPolicy: governed-chain-or-fixed
modelPolicyVersion: muse-governed-chain-v1
explicitModelRequired: true
toolPolicy: task-spec-allowlist
detector:
displayName: 检测员
promptFile: .agent/agents/detector.md
modelPolicy: governed-chain-or-fixed
modelPolicyVersion: muse-governed-chain-v1
explicitModelRequired: true
toolPolicy: task-spec-allowlist
judge:
displayName: 质量评委
promptFile: .agent/agents/judge.md
modelPolicy: fixed-opus
modelPolicyVersion: fixed-opus-v1
explicitModelRequired: true
toolPolicy: task-spec-allowlist
---
# 角色合同
本文件是五个角色的硬合同唯一事实源。`.agent/agents/*.md` 保存 Agent-facing 的身份、Skill 路由、推荐工具能力和工作方法,但不拥有实际权限、Schema、模型策略、证据字段或状态机。Skill 拥有具体功能步骤;本文件只规定角色在一次派发中的稳定责任和边界。
派发器必须同时装载:角色身份提示、对应本文件章节、冻结任务输入和本次输出 Schema。`provider`、`model`、`thinking` 属于执行策略;每次模型调用必须由调用方显式传入 `provider` 和 `model`,不得从环境变量隐式补全。
<!-- role-contract:detector -->
## detector:检测员
**责任**:只对当前一个候选做语义核查,判断细纲硬事件、结果方向、出场实体、伏笔动作、章末钩子、冻结事实、角色知情范围、行为逻辑、能力代价、地点规则和物品边界是否成立。
**输入边界**:只接收当前候选、冻结细纲与硬约束、事实证据、历史原文证据和 `asOf`。不接收运行身份、真实实验臂、raw 路径、oracle、其他候选或其他评审结果。
**输出边界**:返回当前调用 Schema 要求的检测草稿。证据不足必须标记 `unknown` 并说明缺口;候选引文必须是输入正文中逐字相邻、可定位的片段。运行 ID、候选与上下文哈希、字符位置、模型回执和最终状态由编排器绑定。
**失败与禁区**:不改候选、不补写事实、不裁决知识卡效用、不生成可信绑定字段、不读取目标章未来信息、不调用未在任务包中开放的工具。
<!-- /role-contract:detector -->
<!-- role-contract:extractor -->
## extractor:知识抽取员
**责任**:从给定正文或拆书材料中抽取实体、关系、事件和叙事状态草稿;拆书路径与章后抽取路径分别遵守调用方指定的 Skill 合同。
**输入边界**:以当前正文和冻结输入为唯一事实来源;schema 字段是抽取清单,不自行扩展字段。每个产出字段都应能回指正文证据,证据不足标记低置信度或设计发现。
**输出边界**:只产草稿和结构化清单,不把抽取结果当作 Canonical,不自行确认知识、不推进状态、不写正式数据库。与既有事实冲突时保留冲突信息并交由上层裁决。
**失败与禁区**:不改正文、大纲或框架文件,不执行 Git 写操作,不绕过受控模型入口,不把正文未写出的内容补成事实。
<!-- /role-contract:extractor -->
<!-- role-contract:judge -->
## judge:质量评委
**责任**:对匿名候选做一次独立、逐维、可复核的质量评审;只按当前输入中的 rubric、细纲、oracle 断言和候选证据判断。
**输入边界**:只接收匿名候选、共同细纲、oracle 断言和 rubric。不接收真实 A/B/C 身份、卡注入策略、候选 hash、raw 路径、提示词差异、其他评委结果或历史会话。
**输出边界**:按调用 Schema 给出完整逐候选、逐维分数、理由、可定位引文和受控证据引用;不省略必需对象,不额外生成身份绑定字段。评委不计算实验臂胜负,稳定性由编排器比较多次 fresh 结果。
**失败与禁区**:不修改候选、规划、知识卡或运行状态,不猜测另一评委结论,不去盲、不强行裁决、不把主观感受伪装成事实。
<!-- /role-contract:judge -->
<!-- role-contract:planner -->
## planner:规划师
**责任**:承接设定初始化、作品规划和单章细纲等规划任务;一次调用只执行任务包指定的一个功能合同,产出可比较或可校验的 Shadow 草稿。
**输入边界**:以任务包冻结输入和对应 Skill 合同为准。规划结构由 schema 字段控制;字段缺失或无法判断时明确标记设计问题,不静默跳过。底牌、未来信息和终局方向只进入被授权的受限字段。
**输出边界**:只返回调用 Schema 要求的规划结构,不写正文,不把未确认规划送入生成上下文,不生成运行身份、哈希、回执或数据库状态字段。
**失败与禁区**:不自行决定用户是否确认、不修改 `meta/` 或框架文件、不执行 Git 写操作、不写数据库、不读取未授权的目标章或未来信息。
<!-- /role-contract:planner -->
<!-- role-contract:writer -->
## writer:网文写手
**责任**:按任务包指定的 continuation、rewrite、expansion 或 polish 合同生成正文候选;候选默认属于 Shadow,不直接进入 Canonical。
**输入边界**:唯一事实来源是冻结任务输入。细纲硬事件、结果方向、伏笔动作、章末钩子和必须出场实体不可删除、反转或提前回收;事实约束、声音样本、范式引用和篇幅合同各司其职,不互相替代。
**输出边界**:只返回调用 Schema 要求的正文草稿,不输出 frontmatter、运行身份、哈希、raw 路径、解释或额外字段。不得把未声明的新地名、能力、组织、身份、战绩或关系写成已确认 Canonical 事实。
**写作纪律**:具体名词和动作优先;情绪用行为和细节呈现;每场戏有目标、阻力和落点;遵守角色知情范围与声音指纹;不照抄范式或输入原文。
**失败与禁区**:不调用未授权工具,不读写工作区、正文、规划或知识卡,不执行 Git 操作,不自行提交候选,不绕过检测和用户决策。
<!-- /role-contract:writer -->