M6第 2 课 · 内容运营
M6-L2.2M6-L2.3Technical Design:Marketing Studio
一句话: 一份多 agent 内容工作室的参考设计:事实放在有负责人的文件里,文案和设计是类型化的交接,基于模板构建的 HTML 是唯一母版,独立审核者的批准绑定到具体产物,而联锁由代码执行,而不是靠 agent 记住。
教学参考。 这份设计遵循 handbook 的九节骨架,并满足 Marketing Studio PRD。第 9 节说明当前构建与它的关系。
1. 设计原则
Section titled “1. 设计原则”文件掌管事实,模板掌管版式,代码掌管 gate;模型负责写、判断和选择。 agent 可以提议任何东西。在代码检查过证明每一步已完成的文件之前,没有任何东西会到达营销人员手中。
2. 架构与所有权
Section titled “2. 架构与所有权”营销人员 ──#requests──► Lead ──#studio-floor──► Copywriter → Reviewer → Designer │ │ 私信(上报) job 命令:advance ▼ ▼ Operator outputs/<job-id>/(任务存储) │营销人员 ◄── 经验证的链接 ◄── 链接签发器 ◄── 编辑器服务 ◄── 组装器 + 审计 │ headless 浏览器 → PNG(导出 gate)| 组件 | 负责 |
|---|---|
事实文件(_meta/) | 每个课程和营销事实,每个事实一个负责人、一个位置,附变更日志 |
| Skills | 每类文案怎么写、怎么检查 |
| Agent brief | 每个 agent 的职责、边界和写入范围 |
| Job 命令 | 状态机:转换、前置条件、事件 |
| 组装器 | 把模板和 content.json 变成 material.html;用版式原型库组装幻灯片 |
| 审计 | 在真实浏览器中测量溢出、重叠和预算 |
| 编辑器服务 | 锁、自动保存、上传、导出;营销人员唯一接触的界面 |
| 链接签发器 | 只为已批准、已构建、已审计、服务在线的任务打印链接 |
| 审批日志 | 每个 operator 决定,只追加 |
3. 信任边界与 gate
Section titled “3. 信任边界与 gate”- 联锁是代码。 链接签发器只在以下条件都满足时才签发:审核记录为
PASS、其中的哈希与当前content.json和material.html的文字一致、审计通过、编辑器响应健康检查。拦截次数记在任务状态里;第三次拦截自动上报。 - 批准绑定到产物。 审核者写入
{verdict, content_hash, html_text_hash, channel, reviewer, time}。之后任一文件的改动都会让结论作废,任务退回审核。 - 导出 gate 在人工编辑后再检查一次。 生成 PNG 之前,代码对当前文字运行硬性禁用语词表,并把承载事实的区域(价格、日期、CTA)与已审核的值比对;有改动就标记为需要重新审核,而不是直接导出。
- 每个 agent 最小权限。 写入通过窄工具进行:文案 agent 只能写
content.json和说明,审核者只能写审核记录,设计 agent 只能写素材文件,Lead 只能写简报、状态和审批日志。没有 agent 跳过权限检查,也没有 agent 拥有完整的文件系统访问权。 - operator gate。 缺失事实、反复拦截、要求推翻硬性拦截、服务故障和范围变更,以一条带字母选项的简短消息交给 operator;决定记入日志。
4. 状态与数据
Section titled “4. 状态与数据”- 任务状态只向前推进:intake、briefed、copy-draft、review、design、ready、editing、complete、archived,
BLOCKED退回 copy-draft。Job 命令在写入每次转换之前,先检查证明这一步的文件,并追加事件。 - 唯一母版。
material.html是唯一可编辑文件;state.json只存锁、状态、修订号和令牌,从不存内容副本。快照只在 AI 初稿和人工完成时生成。 - 事实只在一处修改。 修改事实时同时更新文件和变更日志,日志写明哪些产出因此过期。
- 任务文件夹不提交进仓库; 已发布的素材收录到样例库。
5. 独立检查
Section titled “5. 独立检查”- 审核者使用比生产者更强的模型,读文件而不读任何总结,逐字比对每个事实与其来源文件。
- 审核者之前先运行一遍确定性词表,所以硬性禁用语从不依赖模型判断。
- 审核者从不修改;它列出必改项和结论,由文案 agent 修改。
- 审核者的输入不包含文案 agent 的理由,所以它评判的是素材,而不是为素材辩护的论证。
6. 失败处理与幂等
Section titled “6. 失败处理与幂等”| 失败 | 行为 |
|---|---|
| 事实在任何文件中都没有 | 字段标为 [NEEDS CONFIRMATION];只问 operator 一次;答复记入简报,随后补改文件 |
| 编辑器宕机 | 不签发链接;Lead 报告服务状态和恢复步骤 |
| 导出失败 | 保留 HTML 草稿;重试;第二次失败则上报 |
| 锁失效 | 超时后释放;等待中的会话变为可编辑 |
| 重复唤醒或重复请求 | Job ID 只生成一次;状态转换幂等 |
| 用量上限或登录过期 | 停止工作并给出可操作的提示;没有虚假的成功 |
7. 评测与测试
Section titled “7. 评测与测试”- 模板审计:每次模板改动和每个构建好的素材都在真实浏览器中审计。
- 编辑器自检:对运行中的服务检查令牌、锁、保存、上传、导出保真度。
- 审核者评测:埋入错误的价格、日期和禁用语,加上干净用例,按分级衡量识别率和误报率。
- 验收测试:与 PRD 的 12 条标准一一对应,包括必须被拦截的错误事实和必须只读的第二个会话。
- 用配置实现隔离: 每个角色组在自己的 space;就绪检查核实每个 agent 的 space 和频道成员关系,并用哈希确认每份运行时 profile 与其 brief 一致。
- 成本: 生产者用中档模型,审核者用最强模型;限制每次唤醒的轮数和每个任务的拦截次数。
- 可观测性: 每个任务的事件日志、审批日志,以及按状态汇总的每日概览。
- 规则一致性: agent 读到的每个文件都视为 prompt;任何一个文件与架构决策冲突时,检查直接失败。
9. 当前构建
Section titled “9. 当前构建”当前构建已有 Puffo 上的四个 agent、模板库和组装器、真实浏览器审计、带自检的本地编辑器,以及只追加的审批日志。它的联锁和状态机写在 agent 的 brief 里,而不是在 job 命令中;批准尚未绑定内容哈希;人工编辑后没有导出 gate;agent 以较宽的文件权限运行。第 3 至 5 节描述的正是补上这些缺口的设计。
"没有 PASS 就没有链接"这条规则应该放在哪里?为什么?
放在链接签发器里,作为每次请求链接时都会运行的检查。写在 agent brief 里的规则只在模型遵守时成立;写在代码里的检查每次都成立。再把它绑定到已审核文件的哈希,这样”PASS”的意思就是”对这份素材的 PASS”。
营销人员在审核之后在编辑器里改了价格,会发生什么?
导出 gate 把承载事实的区域与已审核的值比对,发现改动,在审核者重新看过之前拒绝导出。营销人员会看到哪个区域被改了、为什么需要重新审核。
Syllabus 行:M6-L2.2、M6-L2.3