修复产品02A至02D评审问题

This commit is contained in:
zizi 2026-05-22 23:18:03 +08:00
parent 2b48abc11a
commit 92a285db96
9 changed files with 321 additions and 100 deletions

View File

@ -512,6 +512,37 @@
padding: 10px;
}
.scenario-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px;
}
.status-card {
min-width: 0;
min-height: 82px;
display: grid;
align-content: start;
gap: 6px;
padding: 9px;
border: 1px solid var(--line);
border-radius: 7px;
background: #fbfcfc;
}
.card-label {
color: var(--muted);
font-size: 11px;
font-weight: 800;
}
.status-card strong {
color: var(--ink);
font-size: 12px;
line-height: 1.35;
word-break: break-word;
}
.form-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
@ -771,6 +802,7 @@
}
.metrics,
.scenario-grid,
.feedback-strip {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@ -814,6 +846,7 @@
.filter-grid,
.form-grid,
.metrics,
.scenario-grid,
.feedback-strip {
grid-template-columns: 1fr;
}
@ -868,6 +901,44 @@
const objectNames = ["长篇玄幻模板", "角色关系图谱", "章节节拍策略", "世界规则资料集", "市场智能体包", "导入解析任务"];
const modules = ["平台配置", "元结构定义", "系统智能体", "全局知识库", "质量门控", "市场治理", "用户权限", "日志审计"];
const models = ["模型组 A", "模型组 B", "creative-main", "analysis-safe", "detect-guard"];
const scenarioMap = {
"admin-permission-group": {
title: "权限组发布场景",
steps: ["编辑菜单页面权限树", "预览影响范围", "提交复核", "非申请人审批后生效"],
blocked: "自己所在权限组、自审批、扩大管理域无复核时禁用发布。",
recovery: "保存草稿,交由其他权限管理员复核。"
},
"admin-market-asset-governance": {
title: "市场下架 / 召回场景",
steps: ["查看安装和绑定影响", "选择下架或召回范围", "确认通知范围", "写入治理状态和安全审计"],
blocked: "无原因、无影响预览、无合规权限时禁用召回。",
recovery: "保留申诉入口,不修改用户私有副本和已确认作品事实。"
},
"admin-newapi-usage": {
title: "New-API 调用日志归属场景",
steps: ["查询网关用户", "读取调用日志摘要", "匹配 Muse 用户/作品/任务", "记录归属依据"],
blocked: "不能伪造余额或复制外部网关日志为本地权威数据。",
recovery: "无法匹配时进入人工处理项。"
},
"admin-task-ops": {
title: "任务重验 / 重试场景",
steps: ["查看失败原因", "重验来源和授权快照", "判断可重试性", "重试或标记需用户重新发起"],
blocked: "写作候选不能由管理员重新生成;旧上下文失效时禁用重试。",
recovery: "取消、关闭人工处理项或引导用户侧重新发起。"
},
"admin-metaschema-editor": {
title: "MetaSchema 发布预览场景",
steps: ["保存草稿", "校验字段结构", "预览 Canonical/Shadow/检索/生成影响", "复核后发布"],
blocked: "迁移预览失败、影响范围未知或无复核时禁用发布。",
recovery: "保留草稿,回滚到上一已发布版本。"
},
"admin-audit-log": {
title: "审计导出场景",
steps: ["缩小筛选范围", "填写导出理由", "二次认证或复核", "生成脱敏摘要"],
blocked: "全文上下文、私密正文和系统凭据不可导出。",
recovery: "导出失败或过期仍写安全审计。"
}
};
function escapeHtml(value) {
return String(value ?? "")
@ -1378,6 +1449,39 @@
`;
}
function renderScenarioPanel(page) {
const scenario = scenarioMap[page.id];
if (!scenario) return "";
return `
<section class="panel">
<div class="panel-head">
<h2 class="panel-title">${renderInline(scenario.title)}</h2>
<div class="badge-row">${badge("端到端验收", "warn")}</div>
</div>
<div class="panel-body">
<div class="scenario-grid">
${scenario.steps.map((step, index) => `
<article class="status-card">
<span class="card-label">步骤 ${index + 1}</span>
<strong>${renderInline(step)}</strong>
</article>
`).join("")}
</div>
<div class="feedback-strip" style="margin-top:12px">
<div class="feedback-item">
<div class="feedback-label">禁用条件</div>
<div class="feedback-value">${renderInline(scenario.blocked)}</div>
</div>
<div class="feedback-item">
<div class="feedback-label">失败恢复</div>
<div class="feedback-value">${renderInline(scenario.recovery)}</div>
</div>
</div>
</div>
</section>
`;
}
function renderPageHeader(page) {
const mainActions = actionsFrom(page.spec["主操作"] || page.list["主要操作"]).slice(0, 4);
const secondaryActions = actionsFrom(page.spec["次操作"]).slice(0, 3);
@ -1409,6 +1513,7 @@
<div class="workbench">
<div class="primary-stack">
${renderMetrics(page)}
${renderScenarioPanel(page)}
${showForm ? renderForm(page) : ""}
${renderTable(page)}
${renderFeedback(page)}

View File

@ -597,12 +597,22 @@
padding-bottom: 2px;
}
.workspace-tabs .button.active {
.workspace-tabs .button.active,
.workspace-secondary .button.active {
border-color: var(--accent);
background: var(--accent);
color: #fff;
}
.workspace-secondary {
display: flex;
align-items: center;
gap: 6px;
overflow: auto;
margin: -6px 0 12px;
padding-bottom: 2px;
}
.writing-grid {
display: grid;
grid-template-columns: 242px minmax(420px, 1fr) 360px;
@ -1015,11 +1025,14 @@
const workspaceTabs = [
["work-writing-desk", "写作"],
["work-planning-desk", "规划"],
["work-knowledge-consistency", "知识"],
["work-agent-association", "智能体"],
["work-knowledge-consistency", "知识与一致性"]
];
const workspaceSecondaryLinks = [
["work-agent-association", "智能体设置"],
["work-knowledge-source", "知识来源"],
["work-import-parse", "导入"],
["work-export-delivery", "导出"],
["work-import-parse", "导入任务"],
["work-export-delivery", "导出任务"],
["work-records-usage", "记录"],
["work-settings", "设置"]
];
@ -1071,6 +1084,9 @@
const tabHtml = workspaceTabs.map(([id, name]) => `
<button class="button ${id === activeId ? "active" : ""}" data-go="${id}">${name}</button>
`).join("");
const secondaryHtml = workspaceSecondaryLinks.map(([id, name]) => `
<button class="button ghost ${id === activeId ? "active" : ""}" data-go="${id}">${name}</button>
`).join("");
const context = `
<section class="workspace-context">
<div>
@ -1084,6 +1100,7 @@
</div>
</section>
<nav class="workspace-tabs">${tabHtml}</nav>
<nav class="workspace-secondary">${secondaryHtml}</nav>
`;
if (!right) return context + content;
return context + `<div class="main-grid"><div>${content}</div><div>${right}</div></div>`;
@ -1308,16 +1325,16 @@
<div class="main-grid">
${panel("候选文本", `
<div class="suggestion-box">
<div class="badge-row">${badge("候选可处理", "ok")}${badge("知识草稿提取中", "warn")}${badge("来源版本变化 1", "warn")}</div>
<div class="badge-row">${badge("来源需重验", "warn")}${badge("知识草稿提取中", "warn")}${badge("直接接受已禁用", "danger")}</div>
<p class="suggestion-text">“别回头。”楼梯间传来的声音压得很低,像是怕惊醒钟楼深处某个沉睡的东西。林澈的手指停在账本边缘,纸页上的日期被雨声一点点浸湿。他知道,只要把账本合上,父亲留下的谜题就还能维持原样;可如果他继续读下去,雾港就再也不是记忆里的雾港。</p>
</div>
<div style="height:10px"></div>
<div class="row">
<button class="button primary">原样接受</button>
<button class="button primary" disabled>原样接受</button>
<button class="button">修改后合并</button>
<button class="button danger">丢弃当前建议</button>
<button class="button">重新生成</button>
<button class="button">复制候选</button>
<button class="button primary">重新生成</button>
<button class="button">复制非阻断文本</button>
</div>
`)}
<div>
@ -1330,7 +1347,7 @@
<div style="height:8px"></div>
<div class="compact-list">
<div class="list-item"><h4>改进建议</h4><p>候选后半段可以增加外部动作,避免停留在内心判断。</p></div>
<div class="list-item"><h4>关键风险</h4><p>账本来源版本变化,接受前建议查看来源</p></div>
<div class="list-item"><h4>关键风险</h4><p>账本来源版本变化,不能原样接受;需要重新生成或手动处理</p></div>
</div>
`)}
<div style="height:12px"></div>
@ -1446,7 +1463,7 @@
<div class="main-grid">
<div>
${panel("草稿摘要", `
<div class="badge-row">${badge("可确认", "ok")}${badge("来源:第 3 章 旧钟楼", "blue")}${badge("影响后续生成", "warn")}</div>
<div class="badge-row">${badge("存在冲突", "warn")}${badge("来源:第 3 章 旧钟楼", "blue")}${badge("直接确认已禁用", "danger")}</div>
<div style="height:10px"></div>
<div class="diff">
<div class="diff-box"><strong>当前正式知识</strong><br />旧钟楼是雾港早期建筑,曾用于潮汐观测。位置:东港旧街。</div>
@ -1454,8 +1471,8 @@
</div>
<div style="height:10px"></div>
<div class="row">
<button class="button primary">确认</button>
<button class="button">修改后确认</button>
<button class="button primary" disabled>确认</button>
<button class="button primary">修改后确认</button>
<button class="button">忽略</button>
<button class="button">重新提取</button>
</div>
@ -1468,7 +1485,7 @@
</div>
<div class="compact-list" style="margin-top:10px">
<div class="list-item"><h4>来源状态</h4><p>当前章节版本匹配,可定位正文。</p></div>
<div class="list-item"><h4>风险说明</h4><p>位置字段与已有知识冲突,确认后会影响后续生成上下文</p></div>
<div class="list-item"><h4>风险说明</h4><p>位置字段与已有知识冲突,不能直接确认;需要修改后确认或忽略</p></div>
<div class="list-item"><h4>相关章节</h4><p>第 1 章 雾港来客;第 3 章 旧钟楼。</p></div>
</div>
`, `<button class="button">定位来源</button>`)}
@ -1597,21 +1614,24 @@
["第 2 章 码头上的黑伞", "已解析", "人物 2 · 事件 1", "中", "可确认"],
["第 3 章 旧钟楼", "待确认", "地点 1 · 事件 2", "高", "需处理"],
["第 18 章 潮汐表", "失败", "无", "未知", "可重试"]
].map((row) => `
].map((row) => {
const canConfirm = row[4] === "可确认";
return `
<tr>
<td><strong>${row[0]}</strong></td>
<td>${badge(row[1], row[1] === "失败" ? "danger" : row[1] === "待确认" ? "warn" : "ok")}</td>
<td>${row[2]}</td>
<td>${badge(row[3], row[3] === "高" ? "danger" : row[3] === "中" ? "warn" : "")}</td>
<td>${row[4]}</td>
<td><div class="row"><button class="button">确认</button><button class="button">驳回</button><button class="button">重试</button></div></td>
<td><div class="row"><button class="button" ${canConfirm ? "" : "disabled"}>${canConfirm ? "确认" : "确认禁用"}</button><button class="button">驳回</button><button class="button">重试</button></div></td>
</tr>
`).join("");
`;
}).join("");
const content = `
${panel("章节审阅表", `<div class="table-wrap"><table><thead><tr><th>章节</th><th>解析状态</th><th>识别结果</th><th>风险</th><th>可确认性</th><th>操作</th></tr></thead><tbody>${rows}</tbody></table></div>`, `<button class="button primary">一键确认全部可确认章节</button>`)}
${panel("章节审阅表", `<div class="table-wrap"><table><thead><tr><th>章节</th><th>解析状态</th><th>识别结果</th><th>风险</th><th>可确认性</th><th>操作</th></tr></thead><tbody>${rows}</tbody></table></div>`, `<button class="button primary">确认 2 个可确认章节</button>`)}
<div style="height:12px"></div>
<div class="grid-3">
${panel("章节详情", `<div class="suggestion-box"><p class="suggestion-text">第 3 章识别到“旧钟楼位置”与已有知识冲突。确认章节结果会产生待确认知识草稿,不会直接写入作品知识。</p></div>`)}
${panel("章节详情", `<div class="suggestion-box"><p class="suggestion-text">第 3 章识别到“旧钟楼位置”与已有知识冲突,确认按钮已禁用。确认其他可确认章节只会产生待确认知识草稿,不会直接写入作品知识。</p></div>`)}
${panel("风险分布", `<div class="score-grid"><div class="score"><strong>12</strong><span>低风险</span></div><div class="score"><strong>4</strong><span>中风险</span></div><div class="score"><strong>1</strong><span>高风险</span></div></div>`)}
${panel("处理结果", `<div class="compact-list"><div class="list-item"><h4>已确认章节</h4><p>确认后进入正文和章节结果历史。</p></div><div class="list-item"><h4>知识草稿</h4><p>仍需在知识与一致性中确认。</p></div></div>`)}
</div>
@ -1625,7 +1645,7 @@
<div>
${panel("导出配置", `
<div class="form-grid three">
<div class="control"><label>导出类型</label><select><option>正文</option><option>设定</option><option>作品知识</option><option>备份</option></select></div>
<div class="control"><label>导出类型</label><select><option>正文</option><option>设定</option><option>作品知识</option></select></div>
<div class="control"><label>范围</label><select><option>全部章节</option><option>当前章节</option><option>已选章节</option></select></div>
<div class="control"><label>格式</label><select><option>docx</option><option>txt</option><option>md</option><option>zip</option></select></div>
<div class="control"><label>预计字数</label><input value="128430" /></div>
@ -1633,7 +1653,7 @@
<div class="control"><label>授权限制</label><input value="旧报纸剪辑不可导出" /></div>
</div>
<div style="height:10px"></div>
<div class="row"><button class="button primary">创建导出任务</button><button class="button">保存导出配置</button></div>
<div class="row"><button class="button primary">创建导出任务</button><button class="button">查看最近导出任务</button></div>
`)}
</div>
<div>
@ -1649,7 +1669,7 @@
${panel("导出任务", `
<div class="table-wrap"><table><thead><tr><th>任务</th><th>范围</th><th>格式</th><th>状态</th><th>下载有效期</th><th>操作</th></tr></thead><tbody>
<tr><td>正文导出 16:12</td><td>全部章节</td><td>docx</td><td>${badge("完成", "ok")}</td><td>23 小时</td><td><button class="button primary">下载</button></td></tr>
<tr><td>知识备份 14:30</td><td>人物、地点、事件</td><td>zip</td><td>${badge("失败", "danger")}</td><td>-</td><td><button class="button">重试</button></td></tr>
<tr><td>作品知识导出 14:30</td><td>人物、地点、事件</td><td>zip</td><td>${badge("失败", "danger")}</td><td>-</td><td><button class="button">重试</button></td></tr>
<tr><td>设定导出 13:05</td><td>规划项</td><td>md</td><td>${badge("准备中", "warn")}</td><td>-</td><td><button class="button" disabled>等待</button></td></tr>
</tbody></table></div>
`)}
@ -1714,7 +1734,7 @@
<div class="compact-list">
<div class="list-item"><h4>默认写作方向</h4><p>悬疑递进、克制描写、少解释。</p></div>
<div class="list-item"><h4>当前来源状态</h4><p>2 个来源需要处理;不会自动写入作品事实。</p></div>
<div class="list-item"><h4>最近备份</h4><p>今天 12:00 已生成备份</p></div>
<div class="list-item"><h4>最近导出</h4><p>今天 12:00 生成正文导出任务,可在导出交付页查看</p></div>
</div>
`)}
</div>

View File

@ -844,7 +844,7 @@
<div class="top-actions">
<button class="button ghost" type="button" data-go="slot-selector">来自作品槽位:晨雾纪事</button>
<button class="button soft" type="button" data-go="installed">已安装 8</button>
<button class="button primary" type="button" data-go="create">资产作者:新建</button>
<button class="button" type="button" disabled>普通作者视图</button>
<div class="avatar" aria-label="当前用户"></div>
</div>
</header>
@ -857,7 +857,7 @@
<button class="nav-button" type="button" data-go="slot-selector"><span class="nav-name">作品槽位候选选择</span><span class="nav-status"></span></button>
</div>
<div class="nav-section">
<p class="nav-title">资产作者</p>
<p class="nav-title">资产作者 · 权限开放后</p>
<button class="nav-button" type="button" data-go="create"><span class="nav-name">新建智能体入口</span><span class="nav-status"></span></button>
<button class="nav-button" type="button" data-go="detail"><span class="nav-name">详情与版本</span><span class="nav-status"></span></button>
<button class="nav-button" type="button" data-go="config"><span class="nav-name">配置型编辑器</span><span class="nav-status"></span></button>
@ -867,7 +867,7 @@
<button class="nav-button" type="button" data-go="records"><span class="nav-name">运行与用量记录</span><span class="nav-status"></span></button>
</div>
<div class="nav-section">
<p class="nav-title">高级资产作者</p>
<p class="nav-title">高级资产作者 · 权限开放后</p>
<button class="nav-button" type="button" data-go="workflow"><span class="nav-name">工作流编辑器</span><span class="nav-status"></span></button>
</div>
</aside>
@ -882,7 +882,7 @@
</div>
<div class="mini-actions">
<button class="button" type="button" data-go="installed">安装管理</button>
<button class="button primary" type="button" data-go="create">资产作者新建</button>
<button class="button" type="button" disabled>新建需资产作者权限</button>
</div>
</div>
@ -1178,7 +1178,7 @@
</article>
<article class="step-card">
<div class="step-num">3</div>
<div><h3>授权知识检索</h3><p>只读取当前作品绑定且允许用于检索的知识来源。</p><div class="badge-row"><span class="badge warn">Tool Grant 待确认</span><span class="badge">失败降级</span></div></div>
<div><h3>授权知识检索</h3><p>只读取当前作品绑定且允许用于检索的知识来源。</p><div class="badge-row"><span class="badge warn">工具授权待确认</span><span class="badge">失败降级</span></div></div>
<button class="button warn" type="button">处理</button>
</article>
<article class="step-card">
@ -1193,7 +1193,7 @@
<div class="panel-head"><h3 class="panel-title">工具与外发边界</h3><span class="badge">查询工作流工具目录</span></div>
<div class="panel-body stack">
<div class="status-box ok"><h3>可用工具</h3><p>作品知识检索、图查询、结构化摘要、质量建议。</p></div>
<div class="status-box warn"><h3>Tool Grant</h3><p>必须限定动作、输入来源、输出去向、作品槽位作用域和外发范围。</p></div>
<div class="status-box warn"><h3>工具授权范围</h3><p>必须限定动作、输入来源、输出去向、作品槽位作用域和外发范围。</p></div>
<div class="status-box danger"><h3>阻断项</h3><p>未托管 Webhook 凭据不可用;不能跨作品读取内容。</p></div>
<div class="status-box"><h3>失败策略</h3><p>工具撤权或输出不合约时进入失败反馈,不能扩大权限或补写事实。</p></div>
</div>
@ -1228,8 +1228,8 @@
章节目标:
揭示主角对雾城规则的第一次主动怀疑。</div>
<div class="status-box"><h3>任务状态</h3><p>testRunId: tr_20260522_1840 · succeeded结果通过查询返回可取消 queued/running 任务</p></div>
<div class="output-preview">TestRunOutput 试用输出:
<div class="status-box"><h3>任务状态</h3><p>试用任务已完成;运行中任务可取消,失败或超时时显示可行动原因</p></div>
<div class="output-preview">试用输出:
她没有立刻回头。桥下的水声像被压低的耳语,断断续续地念着她昨天才写进日记的名字。雾从栏杆缝隙里伸进来,轻轻擦过指节,带走了一点温度,也带走了她刚刚想起的那句话。</div>
</div>
</section>
@ -1329,8 +1329,8 @@
<aside class="panel">
<div class="panel-head"><h3 class="panel-title">替换预检</h3><span class="badge ok">槽位替换预检</span></div>
<div class="panel-body stack">
<div class="detail-box"><h3>handoff session</h3><p>source=work-agent-association · action=replace-slot · nonce 已消费session 将在 04:32 后过期。</p></div>
<div class="status-box ok"><h3>precheckId</h3><p>pc_20260522_0912 绑定作品、槽位、目标版本、许可快照和槽位合同版本;确认后原子消费。</p></div>
<div class="detail-box"><h3>来自作品的替换会话</h3><p>来源为作品智能体关联页,替换范围已锁定;会话将在 04:32 后过期。</p></div>
<div class="status-box ok"><h3>替换预检已通过</h3><p>预检已绑定作品、槽位、目标版本、许可快照和槽位合同版本;确认后一次性消费。</p></div>
<div class="status-box ok"><h3>兼容</h3><p>能力目标、输出类型、工具授权和版本均符合写作续写子槽位合同。</p></div>
<div class="status-box warn"><h3>影响范围</h3><p>后续生成使用暮色续写助手 v3已产生候选不受影响。</p></div>
<div class="status-box"><h3>失败回退</h3><p>运行失败时回到候选失败反馈;不会自动写正文或知识库。</p></div>

View File

@ -45,6 +45,22 @@
| 阶段 7 | `design-docs/前端-*` / `design-docs/后端-*` | 承接产品、流程、架构结论更新工程结构、Schema、API 和实现约束 | 待开始 |
| 阶段 8 | `design-docs/00-文档大纲.md` / `design-docs/内容映射表.md` | 最后统一索引、文档 owner 和内容映射,清理过期引用 | 待开始 |
阶段 2 当前基线状态:
- `产品-02A~02D` 是已提交分册的局部冻结基线,可以作为管理员控制台、用户工作区/作品工作台、智能体工作台的需求输入。
- 完整 `产品-02` 详细规格基线尚未成立;`产品-02E~02G` 未完成前,知识库工作台、市场、个人中心仍只能按占位 owner 和前序边界理解。
- 后续分册只能承接并细化 `产品-02A~02D` 已确认边界,不能把未完成分册的旧口径反向写回已冻结分册。
| 分册 | 当前状态 | 是否纳入局部冻结基线 | 未闭合事项 |
|---|---|---|---|
| `产品-02A` | 已完成 | 是 | 作为统一模板继续约束 02E~02G |
| `产品-02B` | 已完成 | 是 | 市场分类/推荐/曝光具体 surface 由 02F 承接 |
| `产品-02C` | 已完成 | 是 | 知识库工作台、市场和个人中心跳转仍保留 pending 目标 |
| `产品-02D` | 已完成 | 是 | 市场审核结果、上架、下架和申诉由 02F/02B 承接 |
| `产品-02E` | 进行中 | 否 | 知识库工作台页面、接口、状态、绑定和发布规格 |
| `产品-02F` | 待开始 | 否 | 市场发现、详情、授权、安装、绑定、发布和治理结果展示 |
| `产品-02G` | 待开始 | 否 | 个人资料、偏好、用量、权益、授权记录和发布记录总览 |
## 3. 阶段门禁
每个阶段进入前,需要确认:
@ -97,9 +113,10 @@
| D-009 | 2026-05-22 | 阶段 2.2 | 原型暴露 `产品-02B` 的 PRD 粒度和孤儿功能问题删除管理员角色变更申请、New-API 复制式队列/差异/补偿、市场推荐分类等无当前业务发起人的功能New-API 改为直接调用网关用户、订阅额度、余额和调用日志接口;日志拆为接口调用日志和业务审计日志;新增页面字段与查询条件规格和功能点合法性清单 | `产品-02B` 已修改;后续 `产品-02C~02G` 也必须按“页面字段 + 查询条件 + 操作反馈 + 业务发起人”粒度编写,避免只描述组件或制造孤儿功能 |
| D-010 | 2026-05-22 | 阶段 2.2 | 根据原型复审继续收敛 `产品-02B`:补充类似 yudao 的角色、权限组、菜单页面权限、操作权限和数据范围模型;新增“权限组与菜单页面权限”页面;删除通用私有正文查看入口;删除独立来源失效管理页,改为在引用来源处展示“来源已失效/已下架/授权已撤销/需重验” | `产品-02``产品-02A``产品-02B` 已做当前阶段一致性修正;后续分册只能承接来源状态展示和权限管控模型,不再恢复独立来源管理后台或通用私有正文访问入口 |
| D-011 | 2026-05-22 | 阶段 2.3 | `产品-02B` 本轮复核未发现阻断问题,仅修正当前文档内来源状态旧口径残留;阶段 2.3 进入 `产品-02C`,按 `产品-02A` 模板补齐用户工作区与作品工作台的页面、字段、操作、状态和产品接口 | 新增 `产品-02C`;阶段 2.3 待确认,确认后再进入 `产品-02D`,不跨阶段修改智能体工作台、知识库工作台、市场或个人中心分册 |
| D-012 | 2026-05-22 | 阶段 2.4 | 用户确认 `产品-02C` 通过后,阶段 2.4 进入 `产品-02D``产品-02D``产品-02A` 模板补齐智能体工作台的智能体列表、创建、配置型编辑、工作流编辑、试用、槽位兼容、作品槽位候选选择、已安装授权、发布准备、运行用量和产品接口 | 新增 `产品-02D`;阶段 2.4 待确认,确认后再进入 `产品-02E`,不跨阶段修改知识库工作台、市场或个人中心分册 |
| D-013 | 2026-05-22 | 阶段 2.4 | 子代理评审后修复 `产品-02D` 的 P0/P1 缺口:补齐 handoff session 与 `precheckId` 原子消费、市场/第三方智能体信任模型、Prompt 注入与敏感信息治理、Tool Grant 合同、试用异步状态、幂等和快照消费、授权/版本/绑定传播矩阵、运行记录视图拆分、发布草稿到市场审核申请边界、页面状态矩阵和字段级规格 | `产品-02D` 与 02D 原型已修改;阶段 2.4 仍待用户确认,通过后再进入 `产品-02E`,不跨阶段修改知识库工作台、市场或个人中心分册 |
| D-014 | 2026-05-22 | 阶段 2.4 -> 2.5 | 用户要求提交 `产品-02A~02D` 相关文档并进入下个阶段;`产品-02D` 视为当前阶段通过,阶段 2.5 开始处理知识库工作台规格 | 提交阶段 2.1~2.4 相关文档后,下一步只修改 `产品-02E` 和必要阶段计划记录 |
| D-012 | 2026-05-22 | 阶段 2.4 | 用户确认 `产品-02C` 通过后,阶段 2.4 进入 `产品-02D``产品-02D``产品-02A` 模板补齐智能体工作台的智能体列表、创建、配置型编辑、工作流编辑、试用、槽位兼容、作品槽位候选选择、已安装授权、发布准备、运行用量和产品接口 | 新增 `产品-02D`;已由 D-014 提交通过,不跨阶段修改知识库工作台、市场或个人中心分册 |
| D-013 | 2026-05-22 | 阶段 2.4 | 子代理评审后修复 `产品-02D` 的 P0/P1 缺口:补齐 handoff session 与 `precheckId` 原子消费、市场/第三方智能体信任模型、Prompt 注入与敏感信息治理、Tool Grant 合同、试用异步状态、幂等和快照消费、授权/版本/绑定传播矩阵、运行记录视图拆分、发布草稿到市场审核申请边界、页面状态矩阵和字段级规格 | `产品-02D` 与 02D 原型已修改;已由 D-014 提交通过,不跨阶段修改知识库工作台、市场或个人中心分册 |
| D-014 | 2026-05-22 | 阶段 2.4 -> 2.5 | 用户要求提交 `产品-02A~02D` 相关文档并进入下个阶段;`产品-02D` 视为当前阶段通过,阶段 2.5 开始处理知识库工作台规格 | `产品-02A~02D` 作为局部冻结基线;完整 02 系列仍需 02E~02G 完成后成立 |
| D-015 | 2026-05-22 | 阶段 2.4 修复 | 大厂级 PRD review 后修复 `产品-02A~02D` 的基线和原型问题:明确 02A~02D 只是局部冻结基线,补 HTML 原型验收合同、横切安全与数据治理合同、02C 页面/操作/接口覆盖表、02C 决策接口幂等与授权快照、02B/02C 指向 02D 的精确页面 ID并修正 02C/02D 原型中失效来源可确认、功能平铺、暂缓备份和普通作者默认暴露资产作者入口等误导 | 只修复已提交的 02A~02D、阶段计划和既有原型不推进 02E不修改 02F~02G |
## 7. 阶段交付格式
@ -114,6 +131,6 @@
## 8. 当前下一步
当前处于阶段 2.5 进行中:`产品-02D` 已按用户要求进入提交,下一步准备更新 `产品-02E-知识库工作台功能规格.md`
当前处于阶段 2.5 进行中:`产品-02A~02D` 是局部冻结基线,下一步准备更新 `产品-02E-知识库工作台功能规格.md`
阶段 2.5 只处理 `产品-02E` 的知识库工作台功能规格。`产品-02F~02G``产品-03`、流程、架构、专题、前端和后端文档仍作为参考,不跨阶段修改。

View File

@ -74,14 +74,14 @@
| 用户工作区 | 普通用户 | 我的作品、作品工作台、写作、规划、作品知识、智能体关联、知识来源绑定、导入解析、导出交付、记录与用量 | 不承载完整智能体配置后台、完整知识库资产管理后台、系统权限配置或市场治理 |
| 智能体工作台 | 管理员 / 普通用户 | 创建、配置、安装、管理、发布智能体;管理作品可用的智能体组合和开放替换槽位 | 不替代写作台,不允许用户替换系统保护节点,不绕过系统功能编排 |
| 知识库工作台 | 管理员 / 普通用户 | 管理全局知识库、用户知识库、账户可用知识库、已安装知识库、知识库版本、作品绑定和市场发布 | 不直接修改作品局域知识库,不把外部知识自动写入作品事实 |
| 市场 | 管理员 / 普通用户 | 资产发现、授权、安装、绑定、发布、审核、分类、推荐、下架和申诉入口 | 不改变私有资产所有权,不自动污染作品事实,不在本阶段承诺完整电商、支付、结算或 DRM |
| 市场 | 管理员 / 普通用户 | 资产发现、授权、安装、绑定、发布、审核入口、治理结果展示、分类/推荐/曝光的市场侧 surface | 不改变私有资产所有权,不自动污染作品事实,不在本阶段承诺完整电商、支付、结算或 DRM |
| 个人中心 | 普通用户 | 个人资料、安全、偏好、Token 使用、配额、权益、授权获取记录、发布记录总览 | 不替代作品工作台、智能体工作台、知识库工作台或市场发布后台 |
六个空间必须保持导航、权限、可见字段和操作边界分离。允许跨空间跳转,但跳转必须携带明确的动作语义,例如“去智能体工作台编辑智能体”“去知识库工作台管理来源”“去市场查看授权”,不能在当前空间悄悄展开另一空间的完整后台。
Authority 与 Surface 规则:
- 管理员控制台是系统级策略、权限、默认值、审核、推荐、下架和合规治理的 authority。
- 管理员控制台是系统级策略、权限、默认值、审核、下架、召回和合规治理的 authority。
- 智能体工作台、知识库工作台和市场是资产操作 surface。它们可以承载创建、编辑、安装、绑定、发布等具体操作但不能绕过管理员控制台制定的系统级治理规则。
- 系统级智能体、全局知识库和市场治理规则的最终 authority 在管理员控制台;对应工作台只提供被授权的资产操作入口和状态视图。
@ -108,7 +108,7 @@ Authority 与 Surface 规则:
| 系统级智能体与功能编排 | 管理系统级智能体、系统功能智能体、默认子智能体、开放替换槽位和不可替换保护节点 | 不允许普通用户覆盖整条系统功能链路 |
| 全局知识库与授权 | 导入、版本化、停用、授权全局知识库,配置可见、可检索、可用于生成范围 | 不把全局资料混进某个作品的局域知识库 |
| 质量门控与创作健康度策略 | 配置质量维度、关键维度、评分阈值、有限重试、展示策略和评估集 | 不把叙事质量评分变成用户保存、继续写作或私人使用的强制审核关卡;市场发布仍必须经过权利、隐私、合规和安全审核 |
| 市场治理 | 审核、下架、分类、推荐、合规处理、侵权处理、申诉处理、系统级资产管理 | 不替用户修改已授权、已安装或私有副本 |
| 市场治理 | 审核、下架、召回、合规处理、侵权处理、申诉处理、系统级资产管理;分类/推荐/曝光只保留治理 authority具体市场 surface 由 `产品-02F` 承接 | 不替用户修改已授权、已安装或私有副本 |
| 用户、角色与权限 | 管理管理员角色、普通用户状态、权限组、菜单页面权限、操作权限、数据范围、封禁/限制流程 | 不通过单一超级权限查看或处置用户私有内容 |
| New-API 与用量归属 | 通过 New-API 接口管理网关用户、订阅额度、余额和调用日志归属 | 不重复实现模型供应商路由和底层成本日志;不在普通管理界面展示或导出系统凭据;不做外部网关数据复制队列 |
| 任务治理与可观测性 | 查看生成、解析、提取、投影、索引、校验任务状态、失败原因、重试和取消 | 不能绕过用户确认直接写作品事实 |
@ -123,8 +123,8 @@ Authority 与 Surface 规则:
| 平台配置 | 管理系统开关、默认策略、外部集成和全局运行参数 | 直接编辑用户作品事实 | 默认不可见正文级内容 | 配置变更、操作者、版本、回滚 |
| MetaSchema 发布 | 发布字段结构、字段可见性、迁移预览和回滚 | 把结构变更伪装成用户确认事实 | 默认不可见正文级内容 | 版本、影响范围、迁移预览、回滚 |
| 系统智能体治理 | 管理系统级智能体、默认子智能体、开放槽位和保护节点 | 允许用户覆盖系统保护节点 | 默认不可见正文级内容 | 模型绑定、Prompt 模板版本、槽位变更 |
| 市场审核 | 审核上架、下架、分类、许可和权利声明 | 修改用户私有副本 | 只看发布资产与审核材料 | 审核结论、理由、证据、申诉处理 |
| 推荐运营 | 管理市场展示、分类、推荐和排序 | 改变资产许可、权利状态或用户私有内容 | 不可见私有正文级内容 | 推荐策略、曝光规则、人工干预 |
| 市场审核 | 审核上架、下架、召回、许可和权利声明 | 修改用户私有副本 | 只看发布资产与审核材料 | 审核结论、理由、证据、申诉处理 |
| 推荐运营 | 拥有市场展示、分类、推荐和排序的治理 authority具体前台和配置 surface 由 `产品-02F` 定义 | 改变资产许可、权利状态或用户私有内容 | 不可见私有正文级内容 | 推荐策略、曝光规则、人工干预 |
| 合规处置 | 处理违法违规、侵权、隐私、安全和召回 | 无依据查看或修改用户内容 | 本阶段只看脱敏治理摘要;正文级查看由后续客服/法务/合规分册另行设计 | 依据、范围、期限、处置动作 |
| 权限治理 | 管理管理员角色、权限组、菜单页面权限、操作权限和数据范围 | 自我提权、自审批、通过权限组获得正文查看入口 | 不提供私有正文查看能力 | 角色变更、权限组变更、菜单页面权限、操作权限、数据范围 |
| 系统运维 | 处理任务失败、索引异常、同步异常和可观测性 | 通过运维入口读取业务全文 | 默认只看任务状态和脱敏日志 | 故障、命令、影响范围、恢复动作 |
@ -456,6 +456,8 @@ Muse 的 AI 能力通常不是单个智能体按钮,而是系统功能编排
管理员拥有市场系统级治理能力,包括审核、下架、分类、推荐、合规处理、侵权处理和申诉处理。
市场分类、推荐和曝光策略的 owner 固定为两层:`产品-02F` 定义市场前台展示、用户发现、发布者可见结果和必要运营 surface管理员控制台只承接审核、下架、召回、合规处置和系统级人工干预 authority。除非 `产品-02F` 明确需要后台策略页,`产品-02B` 不单独设计分类、推荐或曝光配置页面。
下架必须区分:
- 停止新获取。
@ -557,7 +559,19 @@ Muse 的 AI 能力通常不是单个智能体按钮,而是系统功能编排
- 本地检索、账户内知识使用、模型网关/供应商外发必须能在审计和产品解释上区分。
- 上下文快照和日志默认不得保存全文,除非满足明确合规或排障目的,并受到最小化和审计约束。
### 9.6 失败和异常反馈
### 9.6 横切安全与数据治理合同
以下合同由 `产品-02B~02G` 共同继承,后续流程、架构和后端文档只能细化,不能弱化:
| 合同 | 产品要求 | 必须落到哪里 |
|---|---|---|
| Sa-Token 会话生命周期 | 登录态必须绑定用户状态、角色、权限版本和管理域。用户封禁、角色撤销、权限组变化、break-glass 结束后,旧 session 必须立即吊销或降权;管理员高危动作需要 step-up 或复核,后台需有空闲超时和主动登出。 | `产品-02B``产品-02G`、流程-02、后端认证授权 |
| 外部处理方 / 模型供应商 | 外发只能走 allowlist 模型网关或供应商;必须表达 no-train、数据地域、供应商保留期、删除/撤回、不可用降级、泄露响应和用户可见外发记录。 | `产品-02B``产品-02C``产品-02D``产品-02E``产品-02F` |
| 数据分类与留存删除 | 正文、规划、知识草稿、局域知识库、用户知识库、Prompt、测试样例、运行记录、导入文件、导出包、审计摘要必须有敏感级别、是否保存全文、TTL、删除传播、法务/审计例外和加密要求。 | `产品-02A~02G`、架构、后端数据模型 |
| 不可信内容摄入 | 上传文稿、封面、Markdown/HTML、图片/SVG、压缩包、市场说明、Prompt、知识库材料和外链默认不可信。必须定义允许 MIME、大小/解压限制、恶意扫描、HTML/Markdown 清洗、图片元数据剥离、外链代理或禁用、隔离/阻断/人工复核状态。 | `产品-02C``产品-02D``产品-02E``产品-02F`、后端文件安全 |
| 下载与导出审计分层 | 普通导出进入用户记录;下载成功、失败、过期、越权尝试进入不可篡改安全审计;管理员可见业务审计默认不展示用户私密导出内容。 | `产品-02B``产品-02C`、流程-02 |
### 9.7 失败和异常反馈
普通用户需要看到的是可行动的失败原因,而不是后台日志。

View File

@ -246,6 +246,16 @@
页面规格不要求定义视觉风格、组件库、颜色、间距和具体路由。这些由后续前端文档或 UI 原型阶段承接。
如果当前阶段同步产出 HTML 原型HTML 原型不能只是规格摘要或页面清单浏览器,必须至少满足以下验收合同:
1. 默认视图必须符合目标用户主路径,不能把默认隐藏、折叠或后续阶段能力做成第一屏主入口。
2. 每个核心页面至少展示正常态、空态、失败态、无权限态、只读态、提交中、过期/撤权/来源失效态中的相关状态。
3. 高危操作必须展示确认、影响预览、成功反馈和失败恢复;不能只放一个危险按钮。
4. 被 PRD 禁止的动作在原型中必须禁用或隐藏,并显示可行动原因。
5. 普通用户界面不得直接暴露 `handoff session``precheckId``publishCheckId``Tool Grant``TestRunOutput` 等技术合同名;这些只能进入调试详情、管理员审计或 PRD 接口说明,用户界面需转成产品语言。
6. 原型不得恢复已删除、暂缓或后续阶段承接的功能入口。
7. 响应式、键盘焦点、按钮尺寸、文本溢出和禁用态必须足以让前端判断布局约束。
## 6. 状态、权限和异常写法
### 6.1 状态必须贴近用户决策
@ -317,7 +327,7 @@
7. 明确空态、失败态、无权限态、只读态、过期态。
8. 明确跨空间跳转和返回规则。
9. 不引入 `产品-02` 已禁止的越权能力。
10. 能被前端用于低保真 UI 原型生成。
10. 能被前端用于低保真 UI 原型生成;如同步产出 HTML 原型,必须满足第 5 节的 HTML 原型验收合同
如果某个空间分册只列概念、不列页面和接口,则不能视为阶段 2 完成。

View File

@ -390,7 +390,7 @@
市场治理优先级:
- P0/P1审核、驳回、下架、恢复、召回、申诉、许可和来源不污染作品事实。
- P2/后续:分类、推荐、曝光策略不属于 02B 管理员安全治理核心能力,由 `产品-02F` 市场分册承接。
- P2/后续:分类、推荐、曝光策略不属于 02B 管理员安全治理核心能力,由 `产品-02F` 市场分册承接。02B 只保留审核、下架、召回、申诉、合规处置和必要人工干预 authority不设计分类/推荐/曝光配置页面或接口。
市场资产必须区分两条状态线:
@ -942,6 +942,19 @@
如果后续确实需要客服、法务或合规查看正文级材料,应在对应分册独立设计业务发起人、授权依据、审批链、有效期、查看范围和审计规则;`产品-02B` 不提供通用私有正文查看入口。
### 8.5.1 认证与会话安全合同
管理员控制台使用 Sa-Token 作为认证授权基座,但产品层必须明确会话生命周期,不能只依赖前端隐藏按钮。
| 场景 | 产品要求 | 用户反馈 / 审计 |
|---|---|---|
| 登录态校验 | 每次后台页面访问、操作执行、敏感详情读取和审计导出都必须校验登录态、管理员身份、权限版本和管理域。 | 登录失效时回到登录;越权访问进入安全审计。 |
| 权限变化 | 角色撤销、权限组变化、账号封禁、管理域收窄后,旧 session 必须立即吊销或降权;已打开页面重新查询可用导航和可用动作。 | 显示“权限已变化,请重新确认”,不泄露新无权对象。 |
| 高危动作 step-up | 发布权限组、扩大管理域、发布 MetaSchema、审计导出、召回市场资产、允许真实私有内容外发、break-glass 必须二次认证或复核。 | 记录 step-up 结果、审批单、失败原因和操作者。 |
| 空闲和长期会话 | 后台长期空闲必须过期;主动登出需要使当前 session 和后台高危确认上下文失效。 | 保存草稿可保留,但未提交高危操作必须重新确认。 |
| break-glass | 临时权限必须短 TTL、绑定申请理由、影响范围和事后复核到期后自动失效。 | 未复核、超时或提前终止进入异常告警。 |
| CSRF / 重放 | 后台命令和审批必须带服务端校验上下文,不能被跨站请求或重复提交重放。 | 重放返回同一结果或拒绝,并记录安全事件。 |
### 8.6 New-API 集成安全约定
| 维度 | 要求 |
@ -1106,7 +1119,7 @@ New-API 的权威数据不在 Muse 本地同步。Muse 只保存完成业务归
| 市场审核队列 | 市场资产治理详情 | `admin-market-asset-governance` | 资产、版本、审核材料、风险标签 | 回到审核队列并刷新状态 | 回到队列并显示失败原因 | 可点击 | 不能修改用户私有副本 |
| 市场资产治理详情 | 市场前台资产详情 | `market-asset-detail-placeholder` | 资产 ID、当前上架状态 | 返回治理详情 | 显示无权限或资产不存在 | 可作为只读预览入口 | 不能在前台执行后台治理动作 |
| 全局知识库详情 | 知识库工作台 | `knowledge-workspace-asset-placeholder` | 知识库 ID、版本、授权摘要 | 回到全局知识详情 | 回到详情并提示不可用 | 占位跳转,后续 02E 精确承接 | 不能自动绑定到作品 |
| 系统智能体列表 | 智能体工作台 | `agent-workspace-asset-placeholder` | 系统智能体 ID、版本、authority 标记 | 回到系统智能体列表 | 回到列表并提示权限不足 | 占位跳转,后续 02D 精确承接 | 不能让普通用户编辑系统智能体 |
| 系统智能体列表 | 智能体工作台 | `agent-detail-version` | 系统智能体 ID、版本、authority 标记、只读返回点 | 回到系统智能体列表 | 回到列表并提示权限不足 | 02D 已定义精确页面;作为系统智能体只读详情或版本查看入口 | 不能让普通用户编辑系统智能体 |
| 任务治理 | 作品工作台记录与用量 | `work-records-usage` | 作品 ID、任务 ID、脱敏对象摘要、返回点 | 回到任务详情 | 显示无权限 | 02C 已定义页面 ID只能作为只读定位入口 | 不能通过跳转改用户作品事实,不能代用户重新生成候选 |
| New-API 网关用户与用量 | 个人中心 | `personal-center-usage-placeholder` | 用户 ID、余额摘要、调用日志归属摘要 | 回到 New-API 网关用户与用量页 | 显示无权限 | 占位跳转,后续 02G 精确承接 | 不能在管理员页伪装用户侧权益展示 |
@ -1147,7 +1160,7 @@ New-API 的权威数据不在 Muse 本地同步。Muse 只保存完成业务归
| `产品-02C` | 用户工作区不得暴露管理员后台;作品工作台只消费管理员配置的模板、系统智能体、全局知识授权和质量策略;任务详情跳转只能展示用户有权看到的作品侧状态;作品级生成记录、任务记录和 Token 用量由 02C 承接 |
| `产品-02D` | 智能体工作台必须区分系统级智能体、用户智能体、市场智能体和开放替换槽位;系统智能体 authority 仍在管理员控制台 |
| `产品-02E` | 知识库工作台必须承接全局知识库授权结果、用户知识库管理和作品绑定边界;不能反向修改全局知识 authority |
| `产品-02F` | 市场前台、发布者发布/申诉、用户获取/安装/绑定和治理结果展示`产品-02F` 承接;管理员审核结论、下架和召回治理仍归 `产品-02B`,分类、推荐和曝光策略由 `产品-02F` 承接 |
| `产品-02F` | 市场前台、发布者发布/申诉、用户获取/安装/绑定、治理结果展示以及分类/推荐/曝光 surface `产品-02F` 承接;管理员审核结论、下架和召回治理仍归 `产品-02B` |
| `产品-02G` | 账户级余额、套餐、权益、购买/授权记录、发布记录和总用量展示由 `产品-02G` 承接;后台只提供 New-API 网关用户、余额查询和调用日志归属能力 |
| `产品-03` | 必须承接分权、影响预览、审计、回滚、来源状态展示等约束;具体旅程顺序、节点组合、入口出口由 `产品-03` 定义 |
| `流程-02` | 系统处理流程必须细化发布、回滚、下架、召回、来源状态校验、任务重验/重试和审计写入 |

View File

@ -333,7 +333,7 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 状态 | 可导出、准备中、生成中、导出完成、导出失败、授权限制、文件过期。 |
| 权限 | 用户必须拥有作品导出权限;市场资产许可限制必须生效。 |
| 产品接口 | 查询可导出范围、创建导出任务、查询导出状态、下载导出文件。 |
| 埋点与审计 | 记录导出类型、范围、格式和授权限制;普通导出进入用户记录,不进入管理员审计。 |
| 埋点与审计 | 记录导出类型、范围、格式和授权限制;普通导出进入用户记录,下载成功/失败/过期/越权进入不可篡改安全审计,管理员业务审计默认只看脱敏摘要。 |
| 验收要点 | 导出不改变作品事实;不能导出超许可资产或失效来源内容。 |
### 3.14 记录与用量
@ -463,20 +463,20 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 移动章节 | 写作台章节树 | 有 `text_edit` 权限,目标顺序合法 | 大范围移动可确认 | 章节顺序更新 | 影响大纲和导出顺序 | 顺序冲突、章节锁定 | 可再次移动 |
| 删除章节 | 写作台章节树 | 有 `lifecycle_manage` 或章节删除权限,删除影响预览完成 | 必须显示正文、知识草稿、版本和导出影响 | 章节进入删除或归档状态 | 影响章节树、导出范围和关联草稿 | 有未处理候选、运行任务、留存限制 | 可在保留期内恢复,具体由后续流程定义 |
| 保存文本块 | 写作台 | 有 `text_edit`,文本块版本未冲突 | 普通保存无需确认 | 正文进入 Canonical 和版本历史 | 可异步产生知识草稿 | 版本冲突、保存失败 | 可恢复旧版本 |
| 发起 AI 候选 | 写作台 AI 动作区 | 有 `ai_use` 权限;默认系统生成能力可用;被选用智能体和来源有效 | 高成本或大范围生成可确认 | 创建候选任务 | 可能消耗 Token候选进入 Shadow | 超时、授权失效、合规阻断 | 可重试、取消、换来源或使用默认能力 |
| 发起 AI 候选 | 写作台 AI 动作区 | 有 `ai_use` 权限;默认系统生成能力可用;被选用智能体、来源和授权有效 | 高成本或大范围生成可确认 | 创建候选任务 | 可能消耗 Token候选进入 Shadow | 超时、授权失效、合规阻断 | 可重试、取消、换来源或使用默认能力 |
| 取消 AI 候选生成 | 写作台、候选面板 | 候选任务属于当前作品且仍可取消 | 无需二次确认或轻确认 | 任务进入取消中或已取消 | 已生成但未交付的候选不可接受 | 任务已完成、不可取消 | 显示最终状态并允许重新生成 |
| 原样接受 AI 候选 | 候选面板 | 候选未过期,来源和授权有效 | 高风险候选需确认 | 候选文本进入正文 | 知识草稿进入待确认,不自动入库 | 过期、文本块冲突、来源失效 | 可通过版本历史恢复正文 |
| 修改后合并 | 候选面板 | 用户完成修改,有编辑权限 | 显示旧草稿失效提示 | 修改后的文本进入正文 | 旧知识草稿失效,重新提取 | 保存冲突、提取失败 | 可恢复版本,稍后处理新草稿 |
| 原样接受 AI 候选 | 候选面板 | 候选未过期,来源快照和授权快照有效,未被撤权、下架或召回 | 高风险候选需确认 | 候选文本进入正文 | 知识草稿进入待确认,不自动入库 | 过期、文本块冲突、来源失效、授权撤销、市场下架或召回 | 可通过版本历史恢复正文 |
| 修改后合并 | 候选面板 | 用户完成修改,有编辑权限,来源快照和授权快照仍有效 | 显示旧草稿失效提示 | 修改后的文本进入正文 | 旧知识草稿失效,重新提取 | 保存冲突、来源或授权失效、提取失败 | 可恢复版本,稍后处理新草稿 |
| 丢弃当前建议 | 候选面板 | 候选属于当前作品 | 可不确认或轻确认 | 候选进入历史,不改正文 | 关联未确认草稿失效或归档 | 丢弃失败 | 可从历史查看但不可直接接受过期候选 |
| 确认知识草稿 | 知识与一致性、草稿详情 | 来源快照有效,无阻断冲突 | 批量确认需确认 | 草稿进入局域知识库 | 后续生成可使用正式知识 | 来源变化、授权失效、冲突 | 可手动修正正式知识 |
| 确认知识草稿 | 知识与一致性、草稿详情 | 来源快照和授权快照有效,未被撤权、下架或召回,无阻断冲突 | 批量确认需确认 | 草稿进入局域知识库 | 后续生成可使用正式知识 | 来源变化、授权失效、市场下架、召回、冲突 | 可手动修正正式知识 |
| 忽略知识草稿 | 知识与一致性、候选面板 | 草稿存在且未处理 | 批量忽略需确认 | 草稿标记忽略 | 不影响正文 | 操作失败 | 可从历史重新提取 |
| 保存规划项 | 作品规划台 | 有 `planning_manage` | 普通保存无需确认 | 规划项更新 | 可影响后续生成上下文 | 保存失败、冲突 | 可查看规划历史 |
| 确认规划候选 | 作品规划台候选面板 | 候选来源有效 | 覆盖重要规划需确认 | 候选成为正式规划数据 | 可产生知识草稿或叙事状态更新 | 来源变化、冲突 | 可恢复历史规划 |
| 确认规划候选 | 作品规划台候选面板 | 候选来源和授权有效 | 覆盖重要规划需确认 | 候选成为正式规划数据 | 可产生知识草稿或叙事状态更新 | 来源变化、授权失效、冲突 | 可恢复历史规划 |
| 发起一致性检查 | 知识与一致性、写作台检查 | 作品可读取,任务未重复 | 大范围检查可确认 | 生成问题列表 | 可能消耗 Token | 超时、来源不可用 | 可重试或缩小范围 |
| 槽位替换预检 | 智能体关联 | 槽位开放,候选智能体已在账户可用范围内 | 无正式绑定确认 | 返回兼容性、授权、输入输出合同和失败回退 | 不改变正式绑定,可记录预检摘要 | 越权、输出不合约、保护节点 | 选择其他智能体或回退默认 |
| 替换作品智能体槽位 | 智能体关联 | 槽位开放,智能体授权有效,预检未阻断 | 必须展示槽位合同和影响 | 当前作品槽位绑定更新 | 后续生成使用新子智能体 | 保护节点、授权失效、输出不合约 | 可回退系统默认 |
| 绑定知识库到作品 | 知识来源 | 用户拥有知识库使用许可 | 扩大生成或外发需确认 | 来源绑定到作品 | 后续检索或生成可使用该来源 | 授权失效、处理未完成 | 可解绑、降权、关闭生成 |
| 确认章节解析结果 | 全书解析审阅 | 章节完成校验且无阻断风险 | 批量确认需确认 | 章节解析结果落盘 | 产生待确认知识草稿 | 章节冲突、来源变化 | 可驳回或重新解析 |
| 确认章节解析结果 | 全书解析审阅 | 章节完成校验且无阻断风险,来源和授权有效 | 批量确认需确认 | 章节解析结果落盘 | 产生待确认知识草稿 | 章节冲突、来源变化、授权失效 | 可驳回或重新解析 |
| 导出作品内容 | 导出交付 | 范围可导出且许可允许 | 包含敏感或第三方来源需提示 | 创建导出任务并生成文件 | 记录导出历史 | 授权限制、任务失败 | 可重试或缩小范围 |
| 删除作品 | 作品设置 | 用户是 owner影响预览完成 | 必须二次确认 | 作品进入删除流程 | 后续删除索引、缓存、绑定状态 | 市场发布、留存或任务阻断 | 可在保留期内恢复,具体由后续流程定义 |
@ -517,6 +517,10 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
本节是产品层接口合同,不等于后端 endpoint。每一行必须能被前端原型、后端接口细化和测试用例共同引用。
所有命令(Command)、决策(Decision)和任务(Task)接口必须带产品层幂等上下文,至少表达 `clientCommandId/idempotencyKey`、操作者、目标对象、期望版本或快照、触发页面和用户确认来源。重复提交必须返回同一业务结果或明确拒绝,不能重复写正文、重复确认知识、重复落盘章节结果或重复归属用量。
所有会把 Shadow 内容推进 Canonical、把来源绑定用于生成、或把内容导出/下载的接口,都必须重验来源快照和授权快照。输入上下文中写“来源快照”时,默认同时包含来源版本、授权快照、市场状态、撤权/下架/召回状态和过期时间;如果这些信息不匹配当前对象,主操作必须禁用或返回可行动失败。
### 7.1 作品、章节与工作台接口
| 接口名称 | 类型 | 使用页面 | 用户意图 | 输入上下文 | 返回内容 | 权限规则 | 状态变化 / 副作用 | 失败类型 / 用户反馈 | 审计要求 | 后续承接 |
@ -544,15 +548,15 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 接口名称 | 类型 | 使用页面 | 用户意图 | 输入上下文 | 返回内容 | 权限规则 | 状态变化 / 副作用 | 失败类型 / 用户反馈 | 审计要求 | 后续承接 |
|---|---|---|---|---|---|---|---|---|---|---|
| 发起 AI 候选 | 任务 | 写作台 | 生成候选 | 当前账户、作品、章节、文本块、动作、期望版本、选用槽位、选用来源 | 候选任务状态、预计消耗、可取消性 | 需要 `ai_use`;默认系统能力可用;选用来源需授权 | 创建候选任务,可能消耗 Token候选进入 Shadow | 超时、授权失效、合规阻断;说明正文未改变 | 记录动作、上下文摘要、来源快照 | 专题-03、流程-02 |
| 发起 AI 候选 | 任务 | 写作台 | 生成候选 | 当前账户、作品、章节、文本块、动作、期望版本、选用槽位、选用来源、幂等键 | 候选任务状态、预计消耗、可取消性 | 需要 `ai_use`;默认系统能力可用;选用来源需授权 | 创建候选任务,可能消耗 Token候选进入 Shadow | 超时、授权失效、合规阻断;说明正文未改变 | 记录动作、上下文摘要、来源快照 | 专题-03、流程-02 |
| 取消 AI 候选生成 | 任务 | 写作台、候选面板 | 停止生成 | 当前账户、作品、候选任务 | 取消状态、已完成部分是否可见 | 任务必须属于当前作品且未完成 | 生成中 -> 取消中/已取消;不产生可接受候选 | 已完成、不可取消;显示最终状态 | 记录取消 | 流程-02 |
| 查询 AI 候选 | 查询 | 写作台 | 查看候选状态 | 当前账户、作品、候选任务 | 候选摘要、状态、进度、失败原因 | 需要 `work_view`,候选属于当前作品 | 无 | 任务失败;显示可重试入口 | 无 | 前端轮询/刷新 |
| 查询 AI 候选详情 | 查询 | 候选面板 | 判断是否接受 | 当前账户、作品、候选、来源快照 | 候选文本、风险、来源、知识状态 | 需要 `work_view`;安全阻断时不显示可复制全文 | 无 | 候选过期、来源不可用;提示重新生成 | 异常访问进入安全审计 | 前端候选面板 |
| 查询候选来源摘要 | 来源 | 候选面板 | 理解来源 | 当前账户、作品、候选、授权快照 | `SourceSummary`、命中摘要、外发说明 | 来源不可见时只显示脱敏摘要 | 无 | 来源不可见;显示限制 | 无 | 02E/02F 来源详情 |
| 查询候选质量结果 | 质量 | 候选面板 | 判断质量 | 当前账户、作品、候选、质量版本 | `CandidateQualityResult` | 需要 `work_view`;安全阻断不展示可复用文本 | 无 | 数据不可用;展示未评分 | 无 | 专题-04 |
| 原样接受 AI 候选 | 决策 | 候选面板 | 接受候选 | 当前账户、作品、章节、文本块、候选、期望文本块版本、来源快照 | 正文版本、候选归档状态、知识变更状态 | 需要 `suggestion_decide`;候选未过期、来源未撤权、未安全阻断 | 候选归档为已接受;正文进入 Canonical知识草稿仍待确认 | 过期、冲突、来源失效;显示重新生成或刷新 | 记录用户决策、候选版本、来源摘要 | 专题-01 必须对齐 |
| 修改后合并 | 决策 | 候选面板 | 编辑后接受 | 当前账户、作品、章节、文本块、候选、修改文本、期望版本 | 正文版本、新知识提取状态 | 需要 `suggestion_decide``text_edit` | 修改文本进入 Canonical旧草稿失效并重新提取 | 保存失败、冲突;显示恢复入口 | 记录修改摘要和来源快照 | 专题-01、流程-02 |
| 丢弃当前建议 | 决策 | 候选面板 | 放弃候选 | 当前账户、作品、候选、丢弃原因可选 | 候选归档状态 | 需要 `suggestion_decide`;候选属于当前作品 | 候选 -> 已丢弃;关联未确认草稿归档或失效 | 操作失败;允许重试 | 记录决策 | 流程-02 |
| 原样接受 AI 候选 | 决策 | 候选面板 | 接受候选 | 当前账户、作品、章节、文本块、候选、期望文本块版本、来源快照、授权快照、市场状态、撤权/召回标记、幂等键 | 正文版本、候选归档状态、知识变更状态、重复提交结果 | 需要 `suggestion_decide`;候选未过期、来源未撤权、未安全阻断 | 候选归档为已接受;正文进入 Canonical知识草稿仍待确认 | 过期、冲突、来源失效、授权撤销、市场下架或召回;显示重新生成或刷新 | 记录用户决策、候选版本、来源摘要、授权快照 | 专题-01 必须对齐 |
| 修改后合并 | 决策 | 候选面板 | 编辑后接受 | 当前账户、作品、章节、文本块、候选、修改文本、期望版本、来源快照、授权快照、幂等键 | 正文版本、新知识提取状态、重复提交结果 | 需要 `suggestion_decide``text_edit` | 修改文本进入 Canonical旧草稿失效并重新提取 | 保存失败、冲突、来源或授权失效;显示恢复入口 | 记录修改摘要、来源快照和授权快照 | 专题-01、流程-02 |
| 丢弃当前建议 | 决策 | 候选面板 | 放弃候选 | 当前账户、作品、候选、丢弃原因可选、幂等键 | 候选归档状态、重复提交结果 | 需要 `suggestion_decide`;候选属于当前作品 | 候选 -> 已丢弃;关联未确认草稿归档或失效 | 操作失败;允许重试 | 记录决策 | 流程-02 |
| 重新生成候选 | 任务 | 候选面板 | 获取新候选 | 当前账户、作品、原候选、动作、来源选择 | 新任务状态 | 需要 `ai_use`;重新校验来源和槽位 | 创建新候选任务,旧候选保留历史 | 来源失效、超时;显示换来源 | 记录动作 | 专题-03 |
### 7.3 规划、知识和一致性接口
@ -562,16 +566,16 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 查询作品规划 | 查询 | 规划台 | 查看规划 | 当前账户、作品、规划类型、章节/角色筛选 | 作品设定、大纲、世界、角色、文风摘要 | 需要 `work_view` | 无 | 加载失败;允许重试 | 无 | 前端规划台 |
| 保存规划项 | 命令 | 规划台 | 保存规划 | 当前账户、作品、规划项、期望版本 | 保存结果、规划版本 | 需要 `planning_manage` | 规划进入 Canonical可影响后续生成上下文 | 冲突、保存失败;显示冲突 | 记录规划版本 | 流程-02 |
| 发起规划候选 | 任务 | 规划台 | 生成规划建议 | 当前账户、作品、规划范围、选用来源 | 候选任务状态 | 需要 `ai_use``planning_manage` | 规划候选进入 Shadow可能消耗 Token | 来源失效、超时;显示失败 | 记录上下文摘要 | 专题-03 |
| 确认规划候选 | 决策 | 规划台 | 接受规划候选 | 当前账户、作品、候选、期望规划版本、来源快照 | 规划版本、知识草稿状态 | 需要 `planning_manage`;来源有效 | 候选成为正式规划数据,可产生知识草稿 | 来源变化、冲突;显示处理建议 | 记录决策 | 流程-02 |
| 丢弃规划候选 | 决策 | 规划台 | 放弃候选 | 当前账户、作品、候选 | 候选归档状态 | 需要 `planning_manage` | 候选 -> 已丢弃 | 操作失败;允许重试 | 记录决策 | 流程-02 |
| 确认规划候选 | 决策 | 规划台 | 接受规划候选 | 当前账户、作品、候选、期望规划版本、来源快照、授权快照、幂等键 | 规划版本、知识草稿状态、重复提交结果 | 需要 `planning_manage`;来源有效且授权未撤销 | 候选成为正式规划数据,可产生知识草稿 | 来源变化、授权失效、冲突;显示处理建议 | 记录决策、来源快照和授权快照 | 流程-02 |
| 丢弃规划候选 | 决策 | 规划台 | 放弃候选 | 当前账户、作品、候选、幂等键 | 候选归档状态、重复提交结果 | 需要 `planning_manage` | 候选 -> 已丢弃 | 操作失败;允许重试 | 记录决策 | 流程-02 |
| 查询文风检查 | 质量 | 规划台、写作台 | 查看文风诊断 | 当前账户、作品、章节或文本块、对比范围 | 文风评分、漂移、建议 | 需要 `work_view`;正文脱敏按权限 | 无 | 数据不足;显示不可判断 | 无 | 专题-04 |
| 查询作品知识 | 查询 | 知识与一致性 | 查看正式知识 | 当前账户、作品、知识类型、来源、风险、分页 | 知识列表、来源、风险、使用情况 | 需要 `work_view` | 无 | 加载失败;允许重试 | 无 | 架构-02 LocalKB |
| 查询知识草稿列表 | 查询 | 知识与一致性 | 处理待确认 | 当前账户、作品、状态、来源、风险、分页 | 草稿摘要、来源、状态、下一步 | 需要 `work_view`;确认动作另校验 `knowledge_confirm` | 无 | 加载失败;允许重试 | 无 | 前端列表 |
| 查询知识草稿详情 | 查询 | 草稿详情 | 查看差异 | 当前账户、作品、草稿、来源快照 | 草稿、来源快照、变更差异、冲突 | 需要 `work_view`,草稿属于当前作品 | 无 | 草稿过期;显示不可确认 | 无 | 架构-04 状态 |
| 确认知识草稿 | 决策 | 知识与一致性、草稿详情 | 确认知识 | 当前账户、作品、草稿、期望草稿版本、来源快照 | 正式知识版本 | 需要 `knowledge_confirm`;来源有效、无阻断冲突 | 草稿 -> 已确认;写入局域知识库 | 来源失效、冲突;显示原因 | 记录确认和来源快照 | 流程-02、架构-02 |
| 修改后确认知识草稿 | 决策 | 草稿详情 | 修正后确认 | 当前账户、作品、草稿、修改字段、期望版本 | 正式知识版本 | 需要 `knowledge_confirm` | 草稿 -> 已修改确认;写入局域知识库 | 校验失败;显示字段错误 | 记录修改摘要 | 流程-02 |
| 忽略知识草稿 | 决策 | 知识与一致性、草稿详情 | 不采纳草稿 | 当前账户、作品、草稿、原因可选 | 忽略状态 | 需要 `knowledge_confirm` 或知识处理权限 | 草稿 -> 已忽略 | 操作失败;允许重试 | 记录忽略 | 流程-02 |
| 重新提取知识草稿 | 任务 | 知识与一致性、草稿详情 | 重新提取 | 当前账户、作品、草稿或来源对象 | 提取任务状态 | 需要 `knowledge_confirm`;来源仍可读取 | 创建提取任务,旧草稿归档或标记重提取 | 来源不可用;显示原因 | 记录任务 | 专题-03 |
| 确认知识草稿 | 决策 | 知识与一致性、草稿详情 | 确认知识 | 当前账户、作品、草稿、期望草稿版本、来源快照、授权快照、市场状态、撤权/召回标记、幂等键 | 正式知识版本、重复提交结果 | 需要 `knowledge_confirm`;来源有效、授权未撤销、无阻断冲突 | 草稿 -> 已确认;写入局域知识库 | 来源失效、授权撤销、市场下架、召回隔离、冲突;显示原因 | 记录确认、来源快照和授权快照 | 流程-02、架构-02 |
| 修改后确认知识草稿 | 决策 | 草稿详情 | 修正后确认 | 当前账户、作品、草稿、修改字段、期望版本、来源快照、授权快照、幂等键 | 正式知识版本、重复提交结果 | 需要 `knowledge_confirm`;安全和授权状态仍有效 | 草稿 -> 已修改确认;写入局域知识库 | 校验失败、来源或授权失效;显示字段错误或重提取入口 | 记录修改摘要、来源快照和授权快照 | 流程-02 |
| 忽略知识草稿 | 决策 | 知识与一致性、草稿详情 | 不采纳草稿 | 当前账户、作品、草稿、原因可选、幂等键 | 忽略状态、重复提交结果 | 需要 `knowledge_confirm` 或知识处理权限 | 草稿 -> 已忽略 | 操作失败;允许重试 | 记录忽略 | 流程-02 |
| 重新提取知识草稿 | 任务 | 知识与一致性、草稿详情 | 重新提取 | 当前账户、作品、草稿或来源对象、来源快照、授权快照、幂等键 | 提取任务状态 | 需要 `knowledge_confirm`;来源仍可读取且授权可用 | 创建提取任务,旧草稿归档或标记重提取 | 来源不可用或授权失效;显示原因 | 记录任务 | 专题-03 |
| 发起一致性检查 | 任务 | 知识与一致性、写作台 | 扫描冲突 | 当前账户、作品、检查范围、选用来源 | 检查任务状态 | 需要 `ai_use``work_view` | 创建检查任务,可能消耗 Token | 超时、来源不可用;显示重试 | 记录范围 | 专题-04 |
| 查询一致性检查结果 | 质量 | 知识与一致性 | 查看问题 | 当前账户、作品、检查任务、筛选 | 问题、风险、定位、建议 | 需要 `work_view` | 无 | 结果为空;显示无问题 | 无 | 前端问题定位 |
| 保存作品知识修正 | 命令 | 知识与一致性 | 手动修正事实 | 当前账户、作品、知识项、修改字段、期望版本 | 正式知识版本 | 需要 `knowledge_confirm` | 知识版本更新,影响后续生成 | 校验失败;显示错误 | 记录修正 | 架构-02 |
@ -598,11 +602,11 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 重试导入解析 | 任务 | 导入解析 | 重试失败 | 当前账户、作品、解析任务、失败章节 | 重试任务状态 | 需要 `text_edit`;来源文件有效 | 失败部分重新处理 | 文件变化;显示原因 | 记录重试 | 流程-02 |
| 发起全书解析 | 任务 | 导入解析、知识与一致性 | 对已有正文解析 | 当前账户、作品、章节范围、解析目标 | 全书解析任务状态 | 需要 `ai_use``text_edit`;系统分析链不可替换 | 创建章节级解析任务,不写正式知识 | 范围过大、超时;显示缩小范围 | 记录范围 | 专题-03、流程-02 |
| 查询全书解析结果 | 查询 | 全书解析审阅 | 审阅章节 | 当前账户、作品、解析任务、章节筛选 | 章节结果、风险、草稿数量 | 需要 `work_view` | 无 | 结果不可用;显示原因 | 无 | 前端审阅表 |
| 确认章节解析结果 | 决策 | 全书解析审阅 | 接受章节结果 | 当前账户、作品、解析任务、章节、来源快照 | 章节状态、草稿状态 | 需要 `knowledge_confirm`;章节无阻断风险 | 章节 -> 已确认;产生知识草稿但不入库 | 高风险冲突;显示原因 | 记录确认 | 流程-02 |
| 驳回章节解析结果 | 决策 | 全书解析审阅 | 不采纳章节结果 | 当前账户、作品、章节结果、原因可选 | 章节状态 | 需要 `knowledge_confirm` | 章节 -> 已驳回,草稿失效 | 操作失败;允许重试 | 记录驳回 | 流程-02 |
| 批量确认可确认章节 | 决策 | 全书解析审阅 | 快速处理章节 | 当前账户、作品、章节集合、批量影响预览 | 批量结果、失败项 | 需要 `knowledge_confirm`;仅限无阻断章节 | 逐章节确认;章节级全部成功或失败,跨章节允许部分成功 | 存在阻断章节;显示失败项 | 记录批量范围 | 流程-02 |
| 确认章节解析结果 | 决策 | 全书解析审阅 | 接受章节结果 | 当前账户、作品、解析任务、章节、来源快照、授权快照、章节结果版本、幂等键 | 章节状态、草稿状态、重复提交结果 | 需要 `knowledge_confirm`;章节无阻断风险,来源和授权未失效 | 章节 -> 已确认;产生知识草稿但不入库 | 高风险冲突、来源变化、授权失效;显示原因 | 记录确认、来源快照和授权快照 | 流程-02 |
| 驳回章节解析结果 | 决策 | 全书解析审阅 | 不采纳章节结果 | 当前账户、作品、章节结果、原因可选、幂等键 | 章节状态、重复提交结果 | 需要 `knowledge_confirm` | 章节 -> 已驳回,草稿失效 | 操作失败;允许重试 | 记录驳回 | 流程-02 |
| 批量确认可确认章节 | 决策 | 全书解析审阅 | 快速处理章节 | 当前账户、作品、章节集合、批量影响预览、各章节来源快照、授权快照、幂等键 | 批量结果、逐章节成功/失败项、重复提交结果 | 需要 `knowledge_confirm`;仅限无阻断章节 | 逐章节确认;章节级全部成功或失败,跨章节允许部分成功 | 存在阻断章节、来源变化或授权失效按章节显示失败项 | 记录批量范围、逐章节结果和授权快照 | 流程-02 |
| 查询可导出范围 | 查询 | 导出交付 | 选择导出内容 | 当前账户、作品、导出类型、来源状态 | 可导出章节、规划、知识、限制 | 需要 `export`;市场许可和召回限制同时生效 | 无 | 授权不可用;显示限制 | 无 | 02F 授权、后端导出 |
| 创建导出任务 | 任务 | 导出交付 | 生成文件 | 当前账户、作品、范围、格式、授权快照、来源状态 | 导出任务状态 | 需要 `export`;创建时重验许可和召回 | 创建导出任务,生成文件 | 超许可、失败;显示原因 | 记录导出范围和许可 | 流程-02、后端导出 |
| 创建导出任务 | 任务 | 导出交付 | 生成文件 | 当前账户、作品、范围、格式、授权快照、来源状态、幂等键 | 导出任务状态、重复提交结果 | 需要 `export`;创建时重验许可和召回 | 创建导出任务,生成文件 | 超许可、失败;显示原因 | 记录导出范围和许可 | 流程-02、后端导出 |
| 查询导出状态 | 查询 | 导出交付 | 查看进度 | 当前账户、作品、导出任务 | 状态、下载有效期、限制说明 | 需要 `export`;状态查询重验权限 | 无 | 文件过期;提示重试 | 无 | 后端导出 |
| 下载导出文件 | 查询 | 导出交付 | 下载文件 | 当前账户、作品、导出任务、短期下载凭证 | 文件或下载入口 | 下载时再次重验权限、许可、召回;链接短期且绑定操作者 | 记录下载 | 过期、无权限;显示原因 | 记录下载摘要和操作者 | 后端安全、审计 |
| 查询作品生成记录 | 查询 | 记录与用量 | 查看历史 | 当前账户、作品、时间、动作、状态、分页 | 生成记录、候选状态 | 需要 `work_view`;用户记录脱敏 | 无 | 加载失败;允许重试 | 无 | 02G 账户汇总 |
@ -617,6 +621,28 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 预览删除作品影响 | 查询 | 作品设置 | 删除前确认 | 当前账户、作品 | 章节、知识、绑定、发布、留存影响 | 需要 `lifecycle_manage`;只返回当前作品影响 | 生成预览,无正式状态变化 | 范围过大;要求稍后重试 | 记录预览 | 流程-02、架构-04 |
| 删除作品 | 命令 | 作品设置 | 删除作品 | 当前账户、作品、影响预览、确认文案 | 删除状态、恢复窗口 | 需要 owner 或 `lifecycle_manage`;留存/发布限制生效 | 正常/归档 -> 删除中,后续传播删除状态 | 留存限制、任务未完成;显示原因 | 记录删除 | 流程-02、架构-04 |
### 7.5 页面 / 操作 / 接口覆盖表
本表用于机械检查页面、操作和产品接口是否闭合。新增页面、操作或接口必须同步补本表。
| 页面 | 关键操作 | 必须接口 |
|---|---|---|
| 我的作品 | 查看、搜索、继续写作、新建/导入、查看风险摘要 | 查询我的作品列表、查询作品风险摘要、查询可用作品模板 |
| 新建/导入作品入口 | 创建空作品、选择模板、上传旧稿、创建导入任务 | 查询可用作品模板、新建作品、上传导入文件、创建导入作品任务 |
| 作品工作台壳 | 进入作品、返回列表、刷新风险、展示可用导航 | 查询作品工作台摘要、查询作品可用导航、查询作品风险摘要、查询作品生成能力摘要 |
| 写作台 | 查看章节、保存正文、创建/移动/删除章节、发起 AI 候选 | 查询章节树、查询章节正文、保存文本块、创建章节、重命名章节、移动章节、删除章节、发起 AI 候选 |
| AI 候选决策面板 | 查看候选、查看质量和来源、原样接受、修改后合并、丢弃、重新生成、取消生成 | 查询 AI 候选、查询 AI 候选详情、查询候选来源摘要、查询候选质量结果、原样接受 AI 候选、修改后合并、丢弃当前建议、重新生成候选、取消 AI 候选生成 |
| 作品规划台 | 查看/保存规划、发起/确认/丢弃规划候选、文风检查 | 查询作品规划、保存规划项、发起规划候选、确认规划候选、丢弃规划候选、查询文风检查 |
| 知识与一致性 | 查看正式知识、查看草稿、确认/忽略/重提取草稿、一致性检查、修正正式知识 | 查询作品知识、查询知识草稿列表、查询知识草稿详情、确认知识草稿、修改后确认知识草稿、忽略知识草稿、重新提取知识草稿、发起一致性检查、查询一致性检查结果、保存作品知识修正 |
| 知识草稿详情 | 查看差异、定位来源、确认、修改后确认、忽略、重新提取 | 查询知识草稿详情、确认知识草稿、修改后确认知识草稿、忽略知识草稿、重新提取知识草稿 |
| 作品智能体关联 | 查看组合、查询槽位、预检、替换、回退、跳转智能体工作台 | 查询作品智能体组合、查询可替换槽位、查询可用智能体、槽位替换预检、替换作品智能体槽位、回退系统默认智能体 |
| 作品知识来源 | 查看来源、查询可绑定来源、绑定、解绑、降权、关闭生成、查看命中 | 查询作品知识来源、查询可绑定知识库、绑定知识库到作品、解绑知识库、调整知识来源用途、查询知识来源命中摘要 |
| 导入解析 | 上传、开始解析、查询进度、取消、重试、进入章节审阅 | 上传导入文件、开始导入解析、查询导入解析状态、取消导入解析任务、重试导入解析、发起全书解析 |
| 全书解析审阅 | 查询结果、确认章节、驳回章节、重试章节、批量确认可确认章节 | 查询全书解析结果、确认章节解析结果、驳回章节解析结果、重试导入解析、批量确认可确认章节 |
| 导出交付 | 查询范围、创建导出任务、查询状态、下载文件 | 查询可导出范围、创建导出任务、查询导出状态、下载导出文件 |
| 记录与用量 | 筛选记录、查看任务、查看用量、查看失败原因、回到重试目标 | 查询作品生成记录、查询作品任务记录、查询作品用量摘要、查询失败原因摘要、查询失败记录重试目标 |
| 作品设置 | 查询设置、保存基础信息、归档、恢复、预览删除影响、删除作品 | 查询作品设置、保存作品设置、归档作品、恢复作品、预览删除作品影响、删除作品 |
## 8. 权限、事实层和来源边界
### 8.1 普通用户权限模型
@ -684,14 +710,27 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| 类型 | 面向对象 | 展示内容 | 不展示内容 | 必须记录 |
|---|---|---|---|---|
| 用户可见记录 | 普通用户 | 生成动作、章节、候选状态、任务状态、失败原因、用量归属、来源摘要 | 系统 Prompt、网关凭据、内部堆栈、管理员审计细节 | 用户查看失败详情和重试入口可记录为产品事件。 |
| 安全审计 | 系统 / 管理员治理 | 越权访问、绑定/解绑、导出/下载、删除、跨空间跳转、来源撤权阻断、安全召回阻断 | 不作为普通用户创作入口 | 操作者、对象、动作、前后状态、授权快照、时间、失败原因,需追加不可篡改。 |
| 用户可见记录 | 普通用户 | 生成动作、章节、候选状态、任务状态、失败原因、用量归属、来源摘要、普通导出任务摘要 | 系统 Prompt、网关凭据、内部堆栈、管理员审计细节 | 用户查看失败详情和重试入口可记录为产品事件。 |
| 安全审计 | 系统 / 安全治理 | 越权访问、绑定/解绑、导出/下载、删除、跨空间跳转、来源撤权阻断、安全召回阻断 | 不作为普通用户创作入口;默认不向普通管理员展示私密导出内容 | 操作者、对象、动作、前后状态、授权快照、时间、失败原因,需追加不可篡改。 |
| 管理员可见业务审计 | 管理员治理 | 脱敏治理摘要、异常类型、授权限制、处置状态 | 普通导出文件内容、用户私密正文级详情、完整下载包 | 按管理域和敏感等级裁剪可见字段。 |
记录与用量页面只展示用户可行动摘要,不替代管理员审计、接口调用日志或 New-API 网关调用日志。
### 8.6 导出与下载安全边界
导出必须在三个时点重验权限、许可和来源召回状态:创建导出任务、查询导出状态、下载文件。下载入口必须短期有效、绑定操作者和导出任务,不能被复制给无权用户继续下载。任何下载成功、失败、过期和越权尝试都必须进入安全审计。
导出必须在三个时点重验权限、许可和来源召回状态:创建导出任务、查询导出状态、下载文件。下载入口必须短期有效、绑定操作者和导出任务,不能被复制给无权用户继续下载。普通导出进入用户可见记录;任何下载成功、失败、过期和越权尝试都必须进入不可篡改安全审计;管理员业务审计默认只看脱敏摘要和异常,不看用户导出文件内容。
### 8.7 导入文件安全边界
上传旧稿、导入文档和解析中间文件默认不可信。产品层必须表达以下处理结果,后端和流程文档继续细化实现:
| 检查项 | 产品要求 | 失败表现 |
|---|---|---|
| 文件类型和大小 | 只允许当前支持的 txt、docx、md 等格式;限制单文件大小、总大小和压缩/嵌入内容。 | 阻断上传,显示支持格式和大小限制。 |
| 恶意内容扫描 | 上传后先进入安全扫描和隔离区,通过后才可解析。 | 标记安全阻断,不产生解析任务。 |
| Markdown/HTML 清洗 | 导入内容只作为文本解析来源不执行脚本、HTML 事件、外链自动加载或内嵌资源。 | 剥离或阻断并提示原因。 |
| 外链和图片元数据 | 不自动抓取外链;图片和附件如后续支持,必须剥离元数据并按不可信内容处理。 | 显示不支持或需人工处理。 |
| 解析器保护 | 拆分切块、静态检查和入 RAG 是系统保护节点,用户智能体不可替换。 | 解析失败时正文和知识不变,允许换文件或重试。 |
## 9. 状态决策矩阵
@ -702,6 +741,9 @@ no-config 不是“没有系统能力”,而是“不要求用户先配置资
| `generating` | 正在生成候选 | 取消、稍后查看 | 接受、修改后合并 | 任务中 |
| `cancel_requested` | 正在取消 | 查看状态 | 接受、复制、再次取消 | 任务中 |
| `canceled` | 已取消,正文未改变 | 重新生成、查看记录 | 接受、合并 | Archive |
| `failed` | 生成失败,正文未改变 | 查看失败原因、重新生成、换来源或槽位 | 接受、合并、复制输出 | 任务终态 |
| `timed_out` | 生成超时,正文未改变 | 重试、缩小范围、稍后查看 | 接受、合并 | 任务终态 |
| `no_output` | 未产生可用候选 | 重新生成、调整输入 | 接受、合并、复制输出 | 任务终态 |
| `ready` | 候选已生成 | 原样接受、修改后合并、丢弃、重新生成、查看来源 | 无 | Shadow |
| `quality_high` | 候选存在明显风险 | 查看建议、修改后合并、丢弃、二次确认后接受 | 批量自动接受 | Shadow |
| `source_stale` | 来源已变化,需要重新生成或手动处理 | 查看来源、重新生成、丢弃、手动复制非阻断文本 | 直接接受并沿用草稿 | Shadow |
@ -768,7 +810,7 @@ handoff token 是产品层合同,不规定技术实现。它至少表达:发
| 来源页面 | 目标空间 | 临时目标 ID | handoff 上下文 | 完成后返回 | 失败后回退 | 当前阶段表现 | 不能做什么 |
|---|---|---|---|---|---|---|---|
| 作品智能体关联 | 智能体工作台 | `agent-workspace-list-placeholder` | 作品、槽位、当前智能体、授权摘要、返回点 | 回到智能体关联并刷新槽位 | 回到当前页显示不可用 | 占位跳转,后续 02D 承接 | 不能在作品工作台编辑 Prompt |
| 作品智能体关联 | 智能体工作台 | `agent-work-slot-selector` | 作品、槽位、当前智能体、授权摘要、返回点 | 回到智能体关联并刷新槽位 | 回到当前页显示不可用 | 02D 已定义精确页面;由服务端 handoff 落地并重新预检 | 不能在作品工作台编辑 Prompt |
| 作品知识来源 | 知识库工作台 | `knowledge-workspace-list-placeholder` | 作品、知识库、用途、授权摘要、返回点 | 回到知识来源并刷新绑定 | 回到当前页显示不可绑定 | 占位跳转,后续 02E 承接 | 不能在作品工作台维护知识库资产 |
| 作品知识来源 | 市场 | `market-knowledge-detail-placeholder` | 作品、资产类型、许可需求、返回点 | 获取或安装后返回知识来源 | 显示授权失败 | 占位跳转,后续 02F 承接 | 不能购买后自动绑定或写入事实 |
| 作品智能体关联 | 市场 | `market-agent-detail-placeholder` | 作品、槽位、许可需求、返回点 | 获取或安装后返回智能体关联 | 显示授权失败 | 占位跳转,后续 02F 承接 | 不能让市场智能体替换保护节点 |
@ -803,7 +845,7 @@ handoff token 是产品层合同,不规定技术实现。它至少表达:发
11. 来源失效、授权撤销、市场下架或版本变化后,运行中任务需重验,未确认候选和草稿不能静默确认。
12. 导出不改变作品事实,且必须遵守市场授权和第三方权利限制。
13. 记录与用量只展示作品级用户可见记录,不替代个人中心账户总览和管理员审计。
14. 页面、操作和产品接口在第 7 节闭合;新增页面或操作必须同步补接口和状态。
14. 页面、操作和产品接口在第 7.5覆盖表闭合;新增页面或操作必须同步补接口和状态。
### 12.1 P0 no-config 主路径验收矩阵

View File

@ -54,18 +54,18 @@
| 用户路径 | 默认可见 | 默认隐藏或折叠 | 说明 |
|---|---|---|---|
| 普通作者 | 智能体列表、系统默认摘要、已安装与授权、来自作品 handoff 的槽位候选选择、试用结果查看 | 新建入口、完整配置编辑器、工作流编辑器、发布准备 | 普通作者可以使用系统默认能力完成 no-config 创作;只有主动进入智能体管理或从作品槽位跳转时才看到替换能力。 |
| 普通作者 | 智能体列表、系统默认摘要、已安装与授权、来自作品的槽位候选选择、试用结果查看 | 新建入口、完整配置编辑器、工作流编辑器、发布准备 | 普通作者可以使用系统默认能力完成 no-config 创作;只有主动进入智能体管理或从作品槽位跳转时才看到替换能力。 |
| 资产作者 | 新建入口、配置型编辑器、详情与版本、试用、发布准备、运行记录 | 工作流编辑器按权限开放 | 面向愿意沉淀个人智能体资产的用户。 |
| 高级资产作者 | 工作流编辑器、工具目录、Tool Grant 摘要、外发范围检查 | 未授权工具、未开放工作流能力 | 工作流能力是受控编排,不是通用自动化平台。 |
| 高级资产作者 | 工作流编辑器、工具目录、工具授权摘要、外发范围检查 | 未授权工具、未开放工作流能力 | 工作流能力是受控编排,不是通用自动化平台。 |
| 系统可见用户 | 系统默认智能体摘要、开放槽位合同、兼容性说明 | 系统级智能体编辑、系统功能编排、保护节点配置 | 系统级编辑和治理只回到 `产品-02B`。 |
## 1. 功能模块总览
| 模块名称 | 目标用户 | 模块目标 | 默认入口 | 核心对象 | 主要页面 | 核心操作 | 关键状态 | 依赖接口 | 边界 |
|---|---|---|---|---|---|---|---|---|---|
| 智能体资产总览 | 普通用户 / 资产作者 / 系统可见用户 | 查看账户可用、自己创建、已安装和系统默认智能体 | 顶级导航“智能体工作台” | Agent、Installed Agent、System Agent 摘要 | 智能体列表、已安装智能体与授权 | 搜索、筛选、打开详情、新建、安装入口 | 空列表、授权失效、版本过期 | 查询智能体列表、查询已安装智能体、查询智能体可用动作、查询智能体授权异常摘要 | 不展示他人私有智能体,不编辑系统级智能体 |
| 智能体创建入口 | 普通用户 / 资产作者 | 选择创建配置型或工作流型智能体 | 智能体列表主按钮 | Agent Draft、能力目标 | 新建智能体入口 | 选择形态、选择能力目标、选择模板 | 模板不可用、配额不足 | 查询智能体创建选项、创建智能体草稿 | 不要求普通作者写作前先创建智能体 |
| 配置型智能体编辑 | 普通用户 / 资产作者 | 编辑 Prompt、模型绑定、参数和上下文策略 | 新建入口或详情页 | Configured Agent、Prompt Template、Model Binding | 配置型智能体编辑器 | 保存草稿、校验、试用、启用版本 | 草稿、校验失败、待启用、已启用 | 查询智能体详情、保存配置型智能体草稿、校验智能体配置、启用用户智能体版本 | 不选择 New-API 底层供应商路由 |
| 智能体资产总览 | 普通用户 / 资产作者 / 系统可见用户 | 查看账户可用、自己创建、已安装和系统默认智能体 | 顶级导航“智能体工作台” | Agent、Installed Agent、System Agent 摘要 | 智能体列表、已安装智能体与授权 | 搜索、筛选、打开详情、按权限显示新建/安装入口 | 空列表、授权失效、版本过期 | 查询智能体列表、查询已安装智能体、查询智能体可用动作、查询智能体授权异常摘要 | 不展示他人私有智能体,不编辑系统级智能体 |
| 智能体创建入口 | 拥有资产创建权限的普通用户 / 资产作者 | 选择创建配置型或工作流型智能体 | 智能体列表主按钮;普通作者默认隐藏 | Agent Draft、能力目标 | 新建智能体入口 | 选择形态、选择能力目标、选择模板 | 模板不可用、配额不足 | 查询智能体创建选项、创建智能体草稿 | 不要求普通作者写作前先创建智能体 |
| 配置型智能体编辑 | 拥有资产创建权限的普通用户 / 资产作者 | 编辑 Prompt、模型绑定、参数和上下文策略 | 新建入口或详情页;普通作者默认隐藏 | Configured Agent、Prompt Template、Model Binding | 配置型智能体编辑器 | 保存草稿、校验、试用、启用版本 | 草稿、校验失败、待启用、已启用 | 查询智能体详情、保存配置型智能体草稿、校验智能体配置、启用用户智能体版本 | 不选择 New-API 底层供应商路由 |
| 工作流型智能体编辑 | 高级资产作者 | 用受控步骤和授权工具编排写作、分析或检测流程 | 新建入口或详情页 | Workflow Agent、Workflow Step、Tool Grant | 工作流型智能体编辑器 | 添加步骤、配置工具、校验、试用、启用版本 | 草稿、工具无权、输出不合约 | 查询工作流工具目录、保存工作流草稿、校验工作流智能体、启用用户智能体版本 | 不允许未托管外部凭据和跨作品自动读取 |
| 智能体详情与版本 | 普通用户 / 资产作者 / 系统可见用户 | 查看智能体能力、版本、授权、兼容槽位和使用情况 | 列表、槽位选择、市场安装返回 | Agent Version、License Snapshot、Compatibility | 智能体详情与版本 | 查看、复制、停用、重新启用、归档、版本回退入口 | 已启用、已停用、授权失效、版本过期 | 查询智能体详情、查询智能体版本历史、查询智能体影响范围、复制智能体为个人副本、停用用户智能体、重新启用用户智能体、处理受影响智能体绑定、归档用户智能体、回退用户智能体版本、删除智能体草稿 | 市场智能体默认不可编辑原件;管理员治理回到 `产品-02B` |
| 智能体试用与评估 | 普通用户 / 资产作者 | 在不写作品事实的前提下验证输出质量和合同兼容性 | 编辑器、详情、槽位选择 | Test Run、Sample Context、Quality Result | 智能体试用与评估 | 选择测试上下文、运行、取消、查看输出、保存为样例 | 运行中、失败、越权、输出不合约 | 查询智能体测试上下文选项、运行智能体试用、查询智能体试用结果、取消智能体试用、保存智能体测试样例 | 试用不写正文、知识库或正式规划 |
@ -79,10 +79,10 @@
| 页面 ID | 页面名称 | 使用角色 | 页面目标 | 默认入口 | 主要操作 | 关键状态 |
|---|---|---|---|---|---|---|
| `agent-list` | 智能体列表 | 普通用户 / 资产作者 / 系统可见用户 | 查看账户可用、自己创建、已安装和系统默认智能体 | 顶级导航“智能体工作台” | 新建、搜索、筛选、打开详情、进入安装管理 | 空列表、加载失败、授权失效 |
| `agent-create-entry` | 新建智能体入口 | 普通用户 / 资产作者 | 选择智能体形态、能力目标和模板 | 智能体列表主按钮 | 创建配置型、创建工作流型、选择模板 | 配额不足、模板不可用 |
| `agent-detail-version` | 智能体详情与版本 | 普通用户 / 资产作者 / 系统可见用户 | 查看智能体能力、版本、授权、兼容槽位和使用情况 | 智能体列表、槽位选择、市场安装返回 | 编辑、试用、复制、停用、重新启用、归档、回退版本、删除草稿、发布准备 | 已启用、只读、授权失效、版本过期 |
| `agent-config-editor` | 配置型智能体编辑器 | 普通用户 / 资产作者 | 编辑配置型智能体并启用可用版本 | 新建入口、详情页 | 保存草稿、校验、试用、启用版本 | 草稿、校验失败、待启用 |
| `agent-list` | 智能体列表 | 普通用户 / 资产作者 / 系统可见用户 | 查看账户可用、自己创建、已安装和系统默认智能体 | 顶级导航“智能体工作台” | 搜索、筛选、打开详情、进入安装管理;新建只对资产作者显示 | 空列表、加载失败、授权失效 |
| `agent-create-entry` | 新建智能体入口 | 拥有资产创建权限的普通用户 / 资产作者 | 选择智能体形态、能力目标和模板 | 智能体列表主按钮;普通作者默认隐藏 | 创建配置型、创建工作流型、选择模板 | 配额不足、模板不可用、无创建权限 |
| `agent-detail-version` | 智能体详情与版本 | 普通用户 / 资产作者 / 系统可见用户 | 查看智能体能力、版本、授权、兼容槽位和使用情况 | 智能体列表、槽位选择、市场安装返回 | 查看、试用、复制;编辑/停用/归档/回退/发布准备只按所有权和资产作者权限显示 | 已启用、只读、授权失效、版本过期 |
| `agent-config-editor` | 配置型智能体编辑器 | 拥有资产创建权限的普通用户 / 资产作者 | 编辑配置型智能体并启用可用版本 | 新建入口、详情页;普通作者默认隐藏 | 保存草稿、校验、试用、启用版本 | 草稿、校验失败、待启用 |
| `agent-workflow-editor` | 工作流型智能体编辑器 | 高级资产作者 | 用受控步骤和授权工具编排流程型能力 | 新建入口、详情页 | 添加步骤、配置工具、校验、试用、启用版本 | 工具无权、输出不合约、校验失败 |
| `agent-test-bench` | 智能体试用与评估 | 普通用户 / 资产作者 | 在沙盒上下文中测试智能体输出和合同兼容性 | 编辑器、详情页、槽位选择 | 选择上下文、运行试用、查看输出、保存样例 | 运行中、超时、越权、输出不合约 |
| `agent-slot-compatibility` | 可替换槽位与兼容性 | 普通用户 / 资产作者 | 查看开放槽位合同和智能体兼容性 | 智能体详情、编辑器 | 筛选槽位、查看合同、查看不兼容原因 | 无开放槽位、部分兼容、阻断 |
@ -230,16 +230,16 @@
| 项目 | 内容 |
|---|---|
| 页面目标 | 承接作品工作台 handoff,让用户为某个作品开放槽位选择兼容智能体并完成预检、替换或返回。 |
| 页面目标 | 承接作品工作台跳转授权,让用户为某个作品开放槽位选择兼容智能体并完成预检、替换或返回。 |
| 使用角色 | 当前作品拥有 `agent_manage` 权限的普通用户。 |
| 入口来源 | `work-agent-association` 通过一次性 handoff token 跳转;智能体详情中的“用于作品槽位”。 |
| 返回规则 | 确认替换后返回作品智能体关联页并刷新槽位;取消或失败返回来源页显示原因。 |
| 页面区域 | 作品与槽位摘要、handoff session 状态、当前绑定、候选列表、兼容性解释、预检结果、确认替换、返回。 |
| 可见数据 | 作品名、槽位名、当前智能体、默认系统智能体、候选智能体、版本、授权、兼容性、失败回退、handoff 过期时间、预检快照状态。 |
| 页面区域 | 作品与槽位摘要、跳转授权状态、当前绑定、候选列表、兼容性解释、预检结果、确认替换、返回。 |
| 可见数据 | 作品名、槽位名、当前智能体、默认系统智能体、候选智能体、版本、授权、兼容性、失败回退、跳转授权过期时间、预检状态。 |
| 主操作 | 选择候选、执行槽位替换预检、确认替换、回退系统默认。 |
| 次操作 | 查看智能体详情、试用候选、筛选来源/能力/授权、返回作品。 |
| 危险操作 | 确认替换、回退默认;必须显示影响范围和后续生成使用变化。 |
| 状态 | 当前默认、已替换、授权失效、候选不兼容、槽位关闭、handoff 过期。 |
| 状态 | 当前默认、已替换、授权失效、候选不兼容、槽位关闭、跳转授权过期。 |
| 权限 | 重新校验账户、作品、槽位、智能体授权、目标动作和返回点;不能信任客户端 URL 参数;确认替换必须携带未过期 handoff session 和最新 `precheckId`。 |
| 产品接口 | 查询作品槽位 handoff 上下文、查询槽位兼容智能体、槽位替换预检、确认作品槽位替换、回退系统默认智能体。 |
| 埋点与审计 | 记录替换前后智能体、版本、槽位、作品、授权快照、预检快照、handoff session 和操作者。 |
@ -281,7 +281,7 @@
| 权限 | 只能发布自有或明确授权可发布的智能体;市场安装资产默认不可再发布;购买者默认不可见完整 Prompt除非许可明确允许。 |
| 产品接口 | 查询智能体发布准备状态、保存智能体发布草稿、运行智能体发布检查、提交智能体市场发布申请、撤回智能体发布草稿。 |
| 埋点与审计 | 记录权利声明、许可范围、安全检查摘要、发布包分层、提交人、提交版本和撤回原因。 |
| 验收要点 | 页面只做 `AgentPublishDraft` 的准备和提交;提交时创建 `MarketplaceReviewApplication` 并交给市场审核,不处理市场审核结论、上架、下架或申诉。 |
| 验收要点 | 页面只做 `AgentPublishDraft` 的准备和提交;提交时创建市场审核申请并交给 `产品-02F/02B` owner不处理市场审核结论、上架、下架或申诉。`MarketplaceReviewApplication` 只是后续市场/后台分册承接的产品对象占位,不在 02D 锁定最终数据模型。 |
### 3.11 智能体运行与用量记录
@ -297,7 +297,7 @@
| 次操作 | 复制记录 ID、查看用量归属、进入编辑器修正。 |
| 危险操作 | 无直接危险操作;删除运行记录不在本阶段提供。 |
| 状态 | 无记录、运行中、成功、失败、待归属、计量异常、来源已失效。 |
| 权限 | 使用者只能看自己的作品调用;发布者只能看达到最小样本阈值的脱敏聚合,不能看单次运行详情、输入输出摘要、失败文本或作品级时间线;管理员审计由 `产品-02B` 承接。 |
| 权限 | 使用者只能看自己的作品调用;发布者只能看达到最小样本阈值的脱敏聚合,不能看单次运行详情、输入输出摘要、失败文本或作品级时间线;管理员审计由 `产品-02B` 承接。默认聚合阈值为同一时间桶同一维度组合不少于 10 个不同使用者且不少于 3 个作品来源,未达阈值隐藏或合并维度。 |
| 产品接口 | 查询智能体运行记录、查询智能体用量摘要、查询智能体失败原因、查询智能体运行详情。 |
| 埋点与审计 | 敏感详情读取记录访问日志;发布者聚合查询记录聚合口径;普通列表查询不进入管理员高危审计。 |
| 验收要点 | 记录能解释“哪个版本、哪个槽位、为什么失败、用量归属哪里”,但不泄露他人作品内容。 |
@ -310,14 +310,14 @@
| 保存配置型智能体草稿 | 配置型编辑器 | 草稿归属当前用户 | 自动保存或手动保存提示 | 更新草稿版本 | 不影响作品绑定 | 校验错误、保存失败 | 保留本地未保存提示,允许重试 |
| 启用用户智能体版本 | 配置型/工作流编辑器 | 校验通过,有启用权限,`validationId` 未过期且匹配当前草稿版本 | 需要显示影响范围 | 新版本可用于试用、安装或槽位候选;不等于提交市场上架 | 版本记录、影响范围记录 | 输出不合约、权限不足、校验快照过期 | 保留草稿,允许修改后重试 |
| 保存工作流草稿 | 工作流编辑器 | 有工作流权限 | 无危险确认 | 更新工作流草稿 | 不影响作品绑定 | 工具无权、循环、输出不合约 | 禁用错误步骤或回到上个版本 |
| 运行智能体试用 | 试用与评估 | 有权访问测试上下文,授权有效 | 选择作品样例时提示外发与用量 | 创建试用任务并返回 `testRunId` 和初始状态;输出通过查询获得 | 产生用量和运行记录;结果为 `TestRunOutput` | 超时、余额不足、越权、外发阻断、授权中途撤销 | 允许取消、重试或换上下文;取消和超时按用量规则反馈 |
| 运行智能体试用 | 试用与评估 | 有权访问测试上下文,授权有效 | 选择作品样例时提示外发与用量 | 创建试用任务并返回任务编号和初始状态;输出通过查询获得 | 产生用量和运行记录;结果只作为试用输出存在 | 超时、余额不足、越权、外发阻断、授权中途撤销 | 允许取消、重试或换上下文;取消和超时按用量规则反馈 |
| 安装已授权智能体 | 已安装智能体与授权 | 账户已有许可,资产未失效,信任合同已展示 | 显示许可、版本、风险等级、可读上下文、可调用工具和外发范围 | 加入账户已安装智能体 | 固化授权快照、版本和信任合同 | 授权撤销、资产下架、风险合同不完整 | 保持未安装状态 |
| 升级已安装智能体版本 | 已安装智能体与授权 | 新版本可用,许可允许 | 显示变更和影响作品 | 更新默认安装版本或可选版本 | 已固定作品槽位不静默变化 | 版本不兼容、授权失效 | 保持旧版本,提示手动处理 |
| 复制智能体为个人副本 | 智能体详情 | 源智能体许可允许复制 | 显示权利和限制 | 生成个人智能体草稿 | 记录来源快照 | 许可不允许、源已下架 | 不创建副本 |
| 回退用户智能体版本 | 智能体详情 | 有可回退历史版本,所有者确认影响范围 | 需要二次确认 | 当前启用版本回退到指定历史版本 | 新增回退记录,影响后续新调用;已固定作品绑定不静默变化 | 历史版本不可用、有审核中发布 | 保持当前版本,允许重新选择 |
| 确认作品槽位替换 | 作品槽位候选选择 | handoff session 有效,`precheckId` 未过期且匹配当前槽位、目标版本和授权快照,有 `agent_manage` | 显示槽位、作品、目标版本和回退策略 | 原子消费 handoff session 与预检快照,更新作品对应槽位绑定 | 后续生成使用新子智能体版本,记录审计 | handoff 过期、预检过期、槽位关闭、授权失效、输出不合约、版本冲突 | 保持原绑定;重复提交幂等返回同一结果 |
| 回退系统默认智能体 | 作品槽位候选选择 | 有 `agent_manage`,槽位允许回退 | 显示影响范围 | 清除作品级替换 | 后续生成使用系统默认子智能体 | 默认不可用、槽位状态异常 | 保持当前绑定并提示原因 |
| 提交智能体市场发布申请 | 发布准备 | 自有智能体版本,发布检查通过,`AgentPublishDraft` 可提交 | 显示权利声明、许可和发布包分层 | 幂等创建 `MarketplaceReviewApplication` | 进入市场审核和管理员治理链路 | 权利不清、安全检查失败、重复提交、市场服务不可用 | 保留发布草稿,允许补充或重试 |
| 提交智能体市场发布申请 | 发布准备 | 自有智能体版本,发布检查通过,`AgentPublishDraft` 可提交`publishCheckId` 未过期且匹配当前版本、发布草稿和发布材料 hash | 显示权利声明、许可和发布包分层 | 幂等创建市场审核申请 | 进入市场审核和管理员治理链路 | 权利不清、安全检查失败、发布检查过期、草稿已变更、重复提交、市场服务不可用 | 保留发布草稿,允许补充或重试 |
| 停用用户智能体 | 智能体详情 | 所有者权限,有影响范围摘要 | 需要二次确认 | 智能体停止作为新候选;受影响绑定按传播矩阵进入回退、只读或需处理 | 影响作品槽位和安装状态提示 | 有审核中发布、权限不足 | 可重新启用或回退版本,按状态限制 |
| 重新启用用户智能体 | 智能体详情 | 所有者权限,来源和许可仍有效 | 显示恢复后可见范围 | 智能体重新进入可用候选 | 不自动恢复已手动回退的作品绑定 | 来源失效、版本不合约、权限不足 | 保持已停用状态 |
| 处理受影响智能体绑定 | 智能体详情、已安装智能体与授权 | 存在受停用、撤权、下架、槽位关闭影响的绑定 | 显示每个作品槽位的建议动作 | 用户选择回退默认、保留只读或重新选择候选 | 更新绑定处理状态,记录审计 | 无权限、槽位状态变化、默认不可用 | 保持当前阻断状态并提示重新加载 |
@ -341,7 +341,7 @@
| 快照 | 生成接口 | 必须绑定 | 消费接口 | 过期或不匹配时 |
|---|---|---|---|---|
| `validationId` | 校验智能体配置、校验工作流智能体 | 草稿版本、Prompt 摘要、Tool Grant 版本、模型档位、上下文策略、输出合同、安全检查结果、过期时间 | 启用用户智能体版本 | 禁止启用,要求重新校验。 |
| `publishCheckId` | 运行智能体发布检查 | 智能体版本、发布材料版本、发布包分层、权利声明、安全检查结果、过期时间 | 提交智能体市场发布申请 | 禁止提交,要求重新检查。 |
| `publishCheckId` | 运行智能体发布检查 | 智能体版本、发布草稿版本、发布材料 hash、发布包分层 hash、权利声明、许可快照、安全检查结果、过期时间 | 提交智能体市场发布申请 | 禁止提交,要求重新检查。 |
| `precheckId` | 槽位替换预检 | handoff session、账户、作品、槽位、当前绑定版本、目标智能体版本、许可快照、槽位合同版本、授权快照、过期时间 | 确认作品槽位替换 | 禁止替换,要求重新预检。 |
消费快照时必须重新校验来源状态、授权状态、目标版本和槽位合同。任何授权撤销、资产下架、槽位关闭、版本变化、Tool Grant 变化或 handoff 过期,都会使旧快照失效。
@ -490,7 +490,7 @@ Prompt、测试样例、工作流步骤和发布材料都可能包含密钥、
| 启用用户智能体版本 | 命令 | 配置型/工作流编辑器 | 让草稿成为可用版本 | 当前账户、草稿、`validationId`、确认信息、幂等键 | 新版本、状态、影响摘要 | 仅所有者;校验快照未过期且匹配当前草稿 | 新增启用版本 | 校验未过、快照过期、权限不足 | 记录启用审计 | 后端版本生命周期 |
| 查询工作流工具目录 | 选项 | 工作流编辑器 | 选择可用工具 | 当前账户、能力目标、权限 | 工具列表、授权、输入输出、外发说明 | 只返回授权工具 | 无 | 工具服务不可用 | 无 | 专题-03/后端 |
| 查询可用子智能体选项 | 选项 | 工作流编辑器 | 选择流程步骤子能力 | 当前账户、能力目标、授权 | 可用子智能体、版本、输出类型 | 只返回可用对象 | 无 | 授权失效 | 无 | 后端编排 |
| 保存工作流草稿 | 命令 | 工作流编辑器 | 保存流程步骤 | 当前账户、草稿、步骤、Tool Grant 摘要、幂等键 | 保存结果、校验提示 | 仅所有者可保存;工具输入输出必须在授权范围内 | 更新草稿 | 工具无权、循环、版本冲突 | 记录变更摘要 | 后端工作流 |
| 保存工作流草稿 | 命令 | 工作流编辑器 | 保存流程步骤 | 当前账户、草稿、步骤、工具授权摘要、幂等键 | 保存结果、校验提示 | 仅所有者可保存;工具输入输出必须在授权范围内 | 更新草稿 | 工具无权、循环、版本冲突 | 记录变更摘要 | 后端工作流 |
| 校验工作流智能体 | 命令 | 工作流编辑器 | 检查工具、输出、Prompt 注入和外发 | 当前账户、草稿工作流 | 校验结果、`validationId`、阻断项、警告、Tool Grant 快照 | 仅所有者可校验 | 记录校验结果和快照 | 外发未授权、输出不合约、Prompt 注入风险 | 记录校验摘要 | 后端工作流 |
| 查询智能体测试上下文选项 | 选项 | 试用与评估 | 选择测试输入 | 当前账户、智能体、来源页面 | 手动输入、作品样例、授权摘要、用量预估 | 只返回有权作品和样例 | 无 | 无可用样例 | 无 | 02C 作品样例 |
| 运行智能体试用 | 任务 | 试用与评估 | 测试输出 | 当前账户、智能体版本、上下文、外发确认、幂等键 | `testRunId`、初始状态、轮询或订阅提示 | 需要使用权限和用量;开始前重验授权和信任合同 | 创建试用任务,状态为 queued/running 等,产生用量口径 | 余额不足、越权、外发阻断、空输入、授权撤销 | 记录运行、用量、授权快照 | 专题-03/04 |
@ -514,7 +514,7 @@ Prompt、测试样例、工作流步骤和发布材料都可能包含密钥、
| 查询智能体发布准备状态 | 查询 | 发布准备 | 判断能否发布 | 当前账户、智能体版本 | 权利状态、安全检查、许可草稿、阻断项 | 仅所有者 | 无 | 不可发布、版本无效 | 无 | 02F 市场 |
| 保存智能体发布草稿 | 命令 | 发布准备 | 保存市场材料 | 当前账户、智能体版本、发布材料、发布包分层、幂等键 | `AgentPublishDraft`、保存结果 | 仅所有者 | 更新发布草稿 | 字段错误、权限不足、敏感信息阻断 | 记录摘要 | 02F |
| 运行智能体发布检查 | 命令 | 发布准备 | 提交前检查安全和权利 | 当前账户、智能体版本、发布材料、发布包分层 | 检查结果、`publishCheckId`、阻断项 | 仅所有者 | 记录检查结果 | 权利不清、安全阻断、Prompt 注入风险 | 记录检查摘要 | 02F/02B |
| 提交智能体市场发布申请 | 命令 | 发布准备 | 进入市场审核 | 当前账户、智能体版本、`AgentPublishDraft``publishCheckId`、确认、幂等键 | `MarketplaceReviewApplication` 状态、审核入口摘要 | 仅所有者,检查通过 | 幂等创建市场审核申请 | 检查失败、重复提交、市场不可用 | 记录提交审计 | 02F/02B |
| 提交智能体市场发布申请 | 命令 | 发布准备 | 进入市场审核 | 当前账户、智能体版本、`AgentPublishDraft`发布草稿版本、发布材料 hash、`publishCheckId`、确认、幂等键 | 市场审核申请状态、审核入口摘要 | 仅所有者,检查通过`publishCheckId` 未过期并匹配当前草稿 | 幂等创建市场审核申请 | 检查失败、发布检查过期、草稿或材料已变化、重复提交、市场不可用 | 记录提交审计 | 02F/02B |
| 撤回智能体发布草稿 | 命令 | 发布准备 | 取消未完成发布 | 当前账户、发布草稿、原因、幂等键 | 撤回结果 | 仅所有者 | 草稿撤回;如已创建审核申请则按状态撤回申请 | 已进入不可撤回状态 | 记录撤回 | 02F |
| 查询智能体运行记录 | 查询 | 运行与用量 | 查看运行历史 | 当前账户、智能体、筛选、分页、查看者类型 | 运行记录、来源、状态、失败摘要;发布者只返回聚合 | 使用者看自己,发布者看最小样本阈值后的脱敏聚合 | 无 | 加载失败 | 聚合查询和敏感详情读取分开记录 | 02G 用量 |
| 查询智能体用量摘要 | 用量 | 运行与用量 | 查看 Token 和归属 | 当前账户、智能体、时间范围 | 用量、待归属、异常 | 只看有权范围 | 无 | 计量异常 | 记录查询 | 02G |
@ -547,10 +547,10 @@ Prompt、测试样例、工作流步骤和发布材料都可能包含密钥、
| 新建智能体入口 | 形态、能力目标、模板、工作流权限、配额 | 模板摘要、限制、预计能力目标、创建后入口 | 配额不足、模板不可用、创建失败事实未改变 | 资产作者 |
| 智能体详情与版本 | 智能体、版本、来源、返回点 | 能力摘要、版本历史、许可、兼容槽位、影响范围、可用动作 | 只读、授权失效、停用影响、重新启用结果、绑定处理结果 | 普通用户、资产作者 |
| 配置型编辑器 | 草稿、能力目标、模型档位、上下文策略 | Prompt、变量、参数、输出合同、校验结果、敏感信息提示 | 保存中、保存失败、校验失败、启用失败、版本冲突 | 资产作者 |
| 工作流编辑器 | 草稿、步骤、工具、子智能体、Tool Grant | 步骤列表、输入来源、输出去向、外发范围、失败策略 | 工具无权、循环、外发阻断、Tool Grant 过期 | 高级资产作者 |
| 试用与评估 | 智能体版本、手动输入、作品样例、授权知识摘要、外发确认 | `testRunId`、任务状态、输出、风险评分、失败原因、用量口径 | queued/running/succeeded/failed/timed_out/cancel_requested/canceled、取消结果、保存样例确认 | 普通用户、资产作者 |
| 工作流编辑器 | 草稿、步骤、工具、子智能体、工具授权范围 | 步骤列表、输入来源、输出去向、外发范围、失败策略 | 工具无权、循环、外发阻断、工具授权过期 | 高级资产作者 |
| 试用与评估 | 智能体版本、手动输入、作品样例、授权知识摘要、外发确认 | 试用任务编号、任务状态、输出、风险评分、失败原因、用量口径 | queued/running/succeeded/failed/timed_out/cancel_requested/canceled、取消结果、保存样例确认 | 普通用户、资产作者 |
| 可替换槽位与兼容性 | 能力目标、槽位状态、智能体版本 | 槽位合同、允许输入输出、保护节点、兼容性和阻断原因 | 无开放槽位、槽位关闭、兼容查询失败 | 普通用户、资产作者 |
| 作品槽位候选选择 | handoff session、槽位、来源、能力目标、授权状态 | 作品摘要、当前绑定、候选、预检结果、回退策略、过期时间 | handoff 过期、预检过期、替换成功、替换失败事实未改变 | 普通用户 |
| 作品槽位候选选择 | 跳转授权状态、槽位、来源、能力目标、授权状态 | 作品摘要、当前绑定、候选、预检结果、回退策略、过期时间 | 跳转授权过期、预检过期、替换成功、替换失败事实未改变 | 普通用户 |
| 已安装智能体与授权 | 授权状态、安装状态、发布者、版本、下架状态 | 许可、信任合同、版本固定、影响作品、异常原因 | 安装结果、停用结果、升级结果、固定结果、授权撤销提示 | 普通用户 |
| 智能体发布准备 | 智能体版本、发布草稿、许可、权利声明、发布包分层 | 商品信息、展示层摘要、审核层材料、安全检查、阻断项 | 保存草稿、检查失败、提交成功、重复提交、撤回失败 | 资产作者 |
| 智能体运行与用量记录 | 时间范围、来源类型、状态、失败类型、查看者类型、分页 | 运行摘要、用量、失败分类、授权快照摘要、视图类型 | 无记录、详情无权限、记录过期、发布者仅聚合 | 普通用户、资产作者 |
@ -605,12 +605,12 @@ handoff session 的产品不变式:
| 步骤 | 页面 | 用户动作 | 产品接口 | 前置条件 | 成功状态 | 失败 / 恢复 |
|---|---|---|---|---|---|---|
| 1 | 作品智能体关联 | 选择某个开放槽位并跳转 | 查询作品智能体组合、查询可替换槽位 | 用户有 `agent_manage` | 服务端生成 handoff | 无权限时槽位只读 |
| 2 | 作品槽位候选选择 | 加载槽位上下文 | 查询作品槽位 handoff 上下文 | handoff token 未消费且未过期 | 原 token 被消费,展示 handoff session、作品、槽位和当前绑定 | token 过期或目标动作不匹配时返回作品页 |
| 1 | 作品智能体关联 | 选择某个开放槽位并跳转 | 查询作品智能体组合、查询可替换槽位 | 用户有 `agent_manage` | 服务端生成跳转授权 | 无权限时槽位只读 |
| 2 | 作品槽位候选选择 | 加载槽位上下文 | 查询作品槽位 handoff 上下文 | handoff token 未消费且未过期 | 原 token 被消费,展示跳转授权状态、作品、槽位和当前绑定 | token 过期或目标动作不匹配时返回作品页 |
| 3 | 作品槽位候选选择 | 筛选候选智能体 | 查询槽位兼容智能体 | 账户有可用智能体 | 展示兼容、部分兼容和阻断原因 | 无候选时引导去创建或安装 |
| 4 | 智能体试用与评估 | 试用候选 | 运行智能体试用、查询智能体试用结果 | 有试用权限和用量 | 展示输出与风险 | 越权、超时或外发阻断时返回候选页 |
| 5 | 作品槽位候选选择 | 替换预检 | 槽位替换预检 | handoff session 有效,候选版本有效 | 生成 `precheckId`展示可替换和回退策略 | 输出不合约、授权失效或 session 过期时禁用确认 |
| 6 | 作品槽位候选选择 | 确认替换 | 确认作品槽位替换 | handoff session 和 `precheckId` 均未过期,有确认 | Agent Binding 更新,session 与预检被原子消费 | 冲突或快照过期时保持原绑定 |
| 5 | 作品槽位候选选择 | 替换预检 | 槽位替换预检 | handoff session 有效,候选版本有效 | 展示可替换结论、阻断原因和回退策略 | 输出不合约、授权失效或 session 过期时禁用确认 |
| 6 | 作品槽位候选选择 | 确认替换 | 确认作品槽位替换 | handoff session 和 `precheckId` 均未过期,有确认 | Agent Binding 更新,跳转授权与预检快照被原子消费 | 冲突或快照过期时保持原绑定 |
| 7 | 作品智能体关联 | 返回作品页查看结果 | 查询作品智能体组合 | 绑定更新完成 | 展示已替换、版本和授权摘要 | 更新失败时显示可重试或回退 |
## 11. 当前阶段登记的后续冲突