主题
场景考量点全景:从“支持”到“选错会怎样”
一句话:平台的上限不由组件清单决定,而由那些必须在具体场景里做选择的地方决定——本文把身份、租户、会话、状态、任务、供给、路由、交付、发布、治理十类考量点摊开,每条都给默认建议、失败后果与验收口径。
单点深挖见 沙箱资源管理,接缝与数据所有权见 落地方法论与总体架构;本篇是决策前的检查地图,不替代任何一篇的机制说明。
为什么需要
“支持多租户”“支持沙箱”“支持 Skill 上架”这类说法没有信息量,因为它们不回答四个问题:谁和谁共享、状态放在哪、失效时怎么办、怎么证明它成立。
一个需求进来,至少要拆到这种程度:
- 不是“每人一个助理”,而是“同一用户两个标签页同时改一份文件,谁赢”;
- 不是“支持 Skill 上线”,而是“已上线版本能不能改、回滚要不要重新审核”;
- 不是“支持 IM 交付”,而是“500MB 报告怎么发、链接被转发后还能不能打开”;
- 不是“支持沙箱”,而是“按 session 还是 user 隔离、热池里会不会留着上一个人的 Token”。
下面的清单就是把这些问法固定下来。每条都按“场景 → 决策 → 建议 → 错了会怎样”组织,落地时再补一列“验收用例”。
这张图的用法是:任何“支持 XX”的需求,先逼出共享边界,再逼出状态位置,最后逼出失败语义;没有验收用例的决策,视为还没决定。
核心机制
一、身份与入口
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 全公司一个助手域名,背后每人一个实例 | 同源代理还是登录后跳转 | 同源反向代理,浏览器只见 Hub 域名 | Cookie 不出域,实例裸奔或反复登录 |
| 浏览器登录态 | Cookie 放什么、存哪、多久 | __Host-sid + HttpOnly/Secure/SameSite,只存随机 ID,服务端会话表 | 脚本可窃取、会话无法撤销 |
| 同一人 PC/手机/桌面同时在线 | 共享会话还是每端一个 | 每端一个 session,工作区与记忆按 subject 共享,同一 session 只允许一个主控端提交 | 两端 Turn 交错、重复扣费 |
| 多身份源,同一人多个账号 | 平台主体用什么唯一键 | 内部 subject UUID,映射 (issuer, sub, tenant, status),email 只展示 | 一人分裂成两个账号,或两人撞 email 被合并 |
客户端自带 X-User-Id 访问下游 | 信任内网头还是重新签发 | 入口剥离全部身份头,注入 HMAC 签名(subject/tenant/时间戳/nonce),下游验签 | 任何能访问内网的人可冒充任意用户 |
| 内网服务之间调用 | 网络边界是否等于信任边界 | 默认拒绝的 NetworkPolicy + 双向 mTLS + 每跳校验 owner | 扫到端口即可调用,横向移动 |
| 用户登出、IdP 全局登出、员工离职 | 失效传播到哪 | 删服务端会话、关长连接、吊销派生凭据,分钟级生效 | 旧 Cookie 仍可用,“人走了助理还在” |
| 访客、共享电脑 | 是否允许匿名、留多久 | 默认拒绝匿名;访客用短时 guest subject + 临时前缀,禁止读写个人数据,退出即销毁 | 下一位使用者看到上一位的会话与文件 |
| IdP 故障 | fail-open 还是 fail-closed | 新登录拒绝,已登录会话短期只读宽限,高风险写操作重新校验 | 全平台匿名放行,或一挂全挂 |
| 配额挂在 Key 还是人 | 限流维度 | 挂 consumer(租户)并叠加 subject,Key 轮换不影响累计 | 换 Key 绕过配额,一个人打满共享池 |
二、租户与命名空间
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 不同业务单元共用平台 | 租户边界由什么承载 | Service 命名空间作资源与授权边界,租户用请求头 + 存储前缀;强合规租户独立集群 | 把注册中心命名空间当租户边界,配置与实例发现串租户 |
| 按人还是按项目建命名空间 | 命名空间粒度 | 按租户与环境建,个人维度用 subject + 存储前缀 | 元数据爆炸、权限表膨胀、控制面查询退化 |
| A 租户调用 B 租户的知识或工具 | 跨租户授权方式 | 显式 grant,绑定资源、动作、有效期与用途;审计同时记录双方 | 隐式共享导致越权,账单无法拆分 |
| 企业、租户、用户三层配额同时存在 | 扣减顺序与超额行为 | 逐层原子扣减,超额显式配置为拒绝/排队/降级 | 网关限住了模型,工具仍被刷 |
| 多租户共享节点池跑 Agent 与沙箱 | 隔离强度 | 普通租户共享池 + 每会话沙箱;敏感租户独立节点池与密钥 | 共享工作目录、卷挂载串数据、侧信道 |
| 新租户开通、停用、合并 | 资源创建与回收 | 模板化创建 namespace/配额/凭据路径;停用走冻结→导出→删除 | 停用后定时任务仍跑、对象存储仍计费 |
| 环境隔离 | 命名空间怎么分 | 注册中心按环境分命名空间,租户不混用环境命名空间 | 测试配置推到生产消费者 |
三、会话与运行时
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 用户连发两条消息 | 同会话并行还是串行 | 同 session 严格串行并排队,不同 session 并行 | 两轮同时推进、状态覆盖、重复扣费 |
| 多副本写事件、客户端重连 | 事件序号谁生成 | 每 session 单调 seq,由权威事件日志分配,客户端去重排序 | 重复、乱序、重复渲染 |
| 断线 30 秒后重连 | 续传策略 | 快照 + as_of 游标 + Last-Event-ID;游标过期返回 410 | 无限重放,或过期后静默空流 |
| 单轮执行 10 分钟 | 超时与心跳 | 连接、首包、流式空闲超时分开设;心跳小于空闲超时;网关不缓冲 | 网关先断、下游仍执行,用户看到失败但继续计费 |
| Pod 缩容、节点故障、实例漂移 | 粘性还是无状态 | 状态外置,任意节点按 (tenant, ns, session) 加载;迁移用租约 + 栅栏令牌 | 粘性会话一挂就丢上下文,双写导致状态回退 |
| 同一用户从两个入口发消息 | 锁的粒度 | session 级串行 + user 级配额;跨 session 并行,记忆写入合并 | 全局锁让多会话互相阻塞,或记忆双写冲突 |
| 客户端超时后重试提交/取消/审批 | 幂等键覆盖范围 | 所有变更操作带 Idempotency-Key;同键不同内容返回 409 | 重试产生两个 Turn、审批重复执行 |
| 会话要留 180 天备查 | 热温冷分层 | 活跃状态在 Redis/DB,事件日志归档对象存储,索引只留元数据 | Redis 内存失控,删除删不干净 |
四、状态与记忆
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 会话状态、工作区、快照、产物混在一起 | 存储选型 | 小 KV 进 Redis/DB,工作区进 NAS/CephFS,产物与快照进 S3 兼容存储,锁进 Redis/DB | 内存账单超过模型账单,对象存储做锁失效 |
| 个人偏好、草稿、角色设定、公共模板 | 共享粒度 | 草稿 SESSION,偏好 USER,角色 AGENT 只读,模板 GLOBAL 只读;AGENT/GLOBAL 写加锁 | 个人记忆写进 AGENT,所有用户互相污染 |
| 日流水、会话文件、临时产物、交付物 | TTL 是否统一 | 分级 7/30/90/180 天,审计单独保留;变更可灰度 | 全永久成本失控,过短复盘无证据 |
| 长会话 200 轮、工具结果 80K 字符 | 压缩时机与配对保护 | 约 50 条或预算触发;不切断工具调用与结果配对;大结果落盘留首尾 | 孤儿工具调用,模型看不到关键证据 |
| 用户一周后问“上次那个方案” | 内置记忆还是外部记忆 | 内置记经历,外部只收已确认事实;同一事实只有一个写入口 | 旧事实反复召回,两套记忆冲突 |
| 两个会话同时写同一 user 记忆 | 写冲突策略 | 版本 CAS + ConflictPolicy.FAIL,冲突合并或转人工 | 静默覆盖,状态回退 |
| 用户要求删除、员工离职 | 删除范围与证明 | 从 subject/session 追到状态、工作区、快照、产物、索引、缓存、向量与图,逐项删除 | 删除后仍能从缓存或向量库召回 |
五、任务与队列
任务状态机、表结构、等待释放与预算算法的完整实现见 22-架构评审与任务闭环;这里只保留决策点。
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 每天 8 点生成报表 | 复用会话还是新建 | 每次触发新建 Agent 实例与唯一 session(如日期后缀) | 多次运行写进同一段历史,上下文污染 |
| 工单创建触发 Agent | 先写库还是先发消息 | 任务与 Outbox 同事务写,Relay 异步投递,失败退避 | 消息发了任务没成立,或任务成立消息丢了 |
| 同一会话多条任务要保序 | 主题粒度 | 父 Topic 按环境/地域拆,LiteTopic 用 t/{tenant}/s/{session},单队列 FIFO | 全局 Topic 慢会话阻塞快会话,每会话 Topic 元数据爆炸 |
| Worker 重连、滚动发布、网络分区 | 旧执行者怎么处理 | 新连接接管前撤销旧连接,写回校验租约版本,旧写回被拒 | 两个 Worker 同时改状态、重复扣费 |
| 消息重复投递 | 去重键 | idempotency_key 由 task 与 attempt 派生,Worker 先查账本 | 退款、发消息执行两次 |
| 工具超时、模型 429、代码缺陷 | 重试策略 | 可重试错误指数退避,不可重试直接死信;死信有 owner 与 SLA | 无限重投打爆下游,或一次缺陷永久卡住 |
| 任务预计 40 分钟 | 截止时间与预算 | 信封带 deadline_ms 与 budget,接手前判断是否太晚,分段检查点 | 过期任务仍烧资源,预算耗尽仍调模型 |
| 用户取消长任务、大租户抢 Worker | 取消语义与公平性 | 停后续轮次并标记不可回滚副作用;租户加权队列 + 单租户并发上限 | 取消后继续计费,大租户饿死小租户 |
| 任务两小时没动静 | 等待原因怎么表达 | wait_reason 机读:类型/关联 ID/开始时间/SLA;界面、告警、Runbook 共用 | 只能显示“处理中”,资源不释放,排障靠猜 |
| 模型说“已完成” | 完成判据与证据 | 四级完成:executed / verified / accepted / delivered;无证据标 completed_unverified | 把模型总结当验收,出问题无法追责 |
| 预算耗尽、审批超时、用户取消 | 终态与未完成清单 | expired / cancelled + unfinished_items + 可续跑检查点 | 悄悄截断,用户不知道哪些已生效、能否续跑 |
六、供给链(Skill / MCP / Agent / Worker)
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| Skill 与 MCP 上架 | 谁是定义权威 | 源码 Git,分发与版本 Nacos,产品与订阅 HiMarket,准入 Higress,运行时只加载执行 | 市场不可用则 Agent 加载不到能力,目录漂移 |
| 修复 Skill 脚本缺陷 | 能否原地改已上线版本 | 已上线不可变,新建草稿重走审核,回滚只切 label | 同一版本号内容不同,复现与追责失败 |
| MCP Server 升级参数 | 端点升级还是发新产品版本 | 产品版本表达契约,端点版本表达部署;破坏性 Schema 变更发新产品并留迁移期 | 调用方大面积校验失败,旧订阅被强制中断 |
| 外部来源 Skill/MCP 上线 | 审核强度与灰度对象 | 内部只读自动扫描 + 轻审核,外部或写操作人工复核;canary 只给少量租户 | 恶意脚本进生产,灰度对象不可控 |
| 应用已订阅某 MCP 产品 | 订阅是否等于可调用 | 订阅、工具策略、网关准入三层分别校验 | 拿到地址即可调用,参数级越权拦不住 |
| 上游改端点或删工具 | 同步机制 | 每日比对注册中心在线版本/工具清单与市场快照,差异告警 | 目录指向空处,消费方拿到坏产品 |
| 某资产要退役 | 下线流程 | 标记弃用、通知订阅方、给替代品、保留迁移期再转 offline | 消费方突然断供 |
| Agent 作为产品上架 | 产品契约与端点版本 | 稳定、版本化的 Endpoint;产品版本与 release 分离 | 定义一改行为就变,消费方无法复现 |
七、模型与路由
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 简单问答与复杂重构混在长任务里 | 谁选模型 | 本地先选档,中心网关做准入与兜底;每条新用户消息重判,同轮工具续接保持模型 | 全用主力模型成本高,频繁切换击穿提示词缓存 |
| 月度成本分摊与对外展示 | 成本以什么为准 | 网关计量为账单权威,本地回执只做估算并标注“非账单” | 估算被当承诺,账单对不上 |
| 主模型 5xx 或 429 | 降级到谁、是否留痕 | 候选做能力等价校验(工具、窗口、结构化输出),降级打标写 trace;预算耗尽拒绝而非升级 | 降级到不支持工具的模型,任务失败且无法复盘 |
| 单租户突发流量 | 限流维度与 429 语义 | 按 consumer/subject/模型三层限流,区分配额耗尽、上游限流、并发过高 | 一个租户打满全局,客户端盲目重试放大故障 |
| 跨境团队与敏感数据 | 模型端点与数据落地区域 | 租户级驻留策略,路由表带 region,存储与端点同区;跨境显式审批 | 数据出境违规,跨区延迟恶化 |
| 相似问题命中语义缓存 | 缓存键与失效条件 | 键含 tenant、模型版本、提示词版本、工具 Schema 版本;敏感请求禁用 | A 租户答案给 B 租户,模型升级后仍返回旧答案 |
| 供应商限流与自身配额混淆 | 归因与降级路径 | 分开统计,按租户隔离配额,命中限流回退候选并降档 | 一个租户触发上游封禁,全体租户一起失败 |
八、产出物与 IM
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 生成 500MB 报告 | 直传还是链接 | 按渠道能力表选择,超限一律走短时 ticket 链接,正文与文件不进消息体 | 撑爆上下文、上传失败、无法撤销 |
| 用户点击下载链接 | ticket 语义 | 随机 ticket 服务端记录 artifact/subject/过期/一次性,TTL 5–15 分钟;下载网关再鉴权 | 链接转发即泄漏,永久链接无法撤销 |
| 报告或审批需要后续动作 | 交付形态 | 需要动作走交互卡片,完成后原地更新;回执记录 message_id、渠道、接收人、状态 | 用户不知道是否成功,重试重复发送 |
| 产物含密钥或个人信息 | 扫描时机与命中动作 | 登记后、可交付前同步扫描,命中转审批或拦截,扫描失败 fail-closed | 敏感数据外发,合规事故 |
| 用户说“发到项目群” | 收件人由谁决定 | 收件人来自 session → subject → IM 绑定,群发显式确认并检查 ACL | 误发群、越权泄露 |
| 员工离职,IM 绑定与旧链接仍在 | 清理范围 | 停绑定、撤销未过期 ticket、按保留期导出或删除、留审计 | 离职后仍能通过旧链接下载 |
| 产物已生成但 IM 发送失败 | 是否回滚任务 | 不回滚任务,退避重试,仍失败降级为链接并在会话留事件 | 重复生成产物,任务状态误判失败 |
| 不同 IM 能力差异 | 适配器边界 | 统一 upload/send/update/receipt,差异用能力表表达 | if-else 糊在业务里,换渠道就改代码 |
九、发布与运维
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 新 Agent 版本上线 | 灰度对象与版本冻结 | 少量会话先行;Session 创建时冻结版本,已有会话不自动升级 | 运行中会话跟着定义变,问题无法复现 |
| 新版本质量退化 | 回滚粒度与止损时间 | 定义切版本、Endpoint 切 release、Workflow 固定 revision;目标 10 分钟 | 回滚要发版,错过止损窗口 |
| 修改超时、灰度比例、功能开关 | 配置变更治理 | 配置像代码一样版本化、评审、灰度、Schema 校验,客户端保留本地快照 | 一个拼写错误让所有实例启动失败 |
| 大促或集中上班高峰 | 容量估算口径 | 活跃会话 × 单轮时长 / 间隔;队列按通道数;存储按保留期 | 按总会话配,峰谷浪费或峰值不足 |
| 单个可用区故障 | 故障域划分 | 控制面、数据面、队列、数据库分别跨区;单会话粘单通道单 Worker | 一个区挂导致全平台不可用 |
| 两地部署 | 多活模式 | 优先单元化,租户固定单元,跨单元只同步目录与计量,会话状态不出单元 | 双写冲突、跨区延迟、状态互相覆盖 |
| 滚动升级 Dataplane 与网关 | 升级策略 | 先 drain,等在途 Turn 结束;消费者先升、生产者后升,信封只增字段 | 升级即中断,混合版本解析失败进死信 |
| 数据库 schema 变更 | 迁移兼容 | 先加列、再双写、后切读;回滚窗口内双向兼容,禁止不可逆删列 | 回滚变成数据事故 |
十、可观测、安全与合规
| 场景 | 决策点 | 建议默认 | 选错的后果 |
|---|---|---|---|
| 跨网关、队列、内核、工具排障 | trace 如何传递 | 入口注入 traceparent,任务信封携带,Worker 作为父上下文 | 一次任务断成多条 trace,无法归因 |
| 高流量下 trace 成本 | 采样策略 | 错误、越权拒绝、高危工具调用 100% 采;正常按比例;审计不依赖采样 | 出事时恰好没采到,或成本失控 |
| 月底成本分摊 | 以谁的数据为准 | 网关计量为权威,内核自报只排障,每月三方对账 | 账单与用量对不上,重试重复计费 |
| 指标标签 | 基数控制 | 只放模型、Agent、工具、状态码;会话/用户/任务放 trace | 时序库基数爆炸,告警失真 |
| 合规追责 | 审计存哪、留多久 | 独立只追加存储,记录主体/动作/对象/结果/时间/来源/trace_id,保留期单设 | trace 过期后无法追责,审计可被篡改 |
| 发布前评估新版本 | 评测集构成 | 按任务类型分层,覆盖正常、边界、对抗与历史 BadCase;用例与阈值随发布冻结 | 离线分数好看线上退化 |
| Agent/提示词/模型升级 | 门禁级别 | 静态→离线→影子→灰度→全量,明确回滚阈值;总分持平但成本翻倍也不能上 | 门禁形式化,退化版本直接全量 |
| 文档/网页/邮件间接注入 | 靠模型还是靠边界 | 指令与数据分离标记 + 工具最小权限 + 出网限制 + 输出过滤,四道同时上 | 一次注入即可触发写操作或外发 |
| MCP 工具描述被篡改 | 工具清单治理 | Schema 哈希锁定,变更审批,运行时只启用显式白名单工具 | 模型被描述带偏,参数注入打到后端 |
| 凭据出现在日志或上下文 | 凭据可见范围 | 只存在凭据库与工具执行环境,按 租户/主体/工具 分区,短 TTL,全程脱敏 | 一次日志导出即泄漏 |
| 删除承诺 | 删除传播范围 | 对象、缓存、索引、CDN 全覆盖,备份靠保留期加密钥销毁 | “已删除”只是看不见,仍可恢复 |
| 供应链来源 | 构建与拉取信任链 | 依赖锁哈希、私有源优先、镜像签名、SBOM、准入校验 | 同名恶意包或已知漏洞长期在线 |
十一、九个管理对象与证据三态:成熟度不看功能数
平台“支持”某个能力,和平台“管理”某个对象,是两件事。功能能跑,对象未必可管;没有权威、状态机、权限与生命周期的对象,一旦上规模就会退回手工表格。
| 对象 | 权威在哪 | 关键状态 | 生命周期归谁 |
|---|---|---|---|
| Agent | 控制面目录 + Release | draft / canary / active / retired | 平台管理员与发布者 |
| Task | 任务账本 | 11 个阶段 + 4 个终态 | 调度器与平台 |
| Task Run | 任务账本 | running / succeeded / failed / cancelled / lost | Worker + 租约 |
| Session | 会话服务 | active / idle / closed / expired | 平台 |
| Tool / MCP | 注册中心 + 网关准入 | draft / published / deprecated / offline | 供给方 |
| Skill / Knowledge | 注册中心 | draft / published / deprecated | 供给方 |
| Memory | 记忆服务 | active / superseded / deleted | 用户与治理方 |
| Artifact | 对象存储 + 元数据 | created / scanned / committed / referenced / expired | 任务与治理方 |
| Budget | 预算账本 | active / settled / released / expired | 平台与父任务 |
| Channel(渠道) | 接入层渠道聚合器 + 网关 | registered / active / suspended / retired;绑定企业身份映射 | 平台与租户管理员 |
九个对象都要有四个共同字段:owner、version 或 release_id、生命周期状态、保留与删除策略;缺一个,界面上看到的就只是投影,不能拿来追责。
Channel 与数据驻留(2026-10-26 补):渠道是第十个管理对象——企业 IM 渠道聚合器(飞书/企微/钉钉,个人助手底座原生 channels 已验证 console/feishu/dingtalk/wecom 等 13 类)按
Channel(渠道)对象纳入管理;数据驻留规则必须挂在渠道+租户维度(哪些渠道的消息/附件允许出域、存多久),并与 §四 证据映射联动,避免"群聊串个人记忆"类事故(13 篇 §通信 边界)。
证据是第十个需要单独建模的东西,因为它既不属于 Task 也不属于 Artifact。它固定三态:
| 状态 | 谁产生 | 含义 | 不能拿它做什么 |
|---|---|---|---|
planned | 任务开始时 | 声明需要哪些验收材料 | 不能证明已经发生 |
issued | 执行者 | 已产生材料并带 ref + sha256 | 不能证明材料充分 |
confirmed | 验收方 | 确认材料足以支撑该评价项 | 不能代替业务验收决定 |
一句话:证据确认的是“材料够不够”,验收决定的是“结果收不收”。把两者合成一个状态,就会出现“证据齐了但业务不认”,或者“业务点头了却没有任何可追溯材料”。
跨组件的接缝
以下十二件事没有单一归属,必须由两篇以上文章共同回答;任何一件悬空,都会在联调时变成“都以为对方做了”。
- 身份权威链:网关认证结果如何变成
tenant/namespace/subject/session,又如何在 Dataplane、Vault、队列、对象存储每一跳重校验。 - 版本冻结与回滚:Agent 定义、Workspace、Workflow、Endpoint、Skill/MCP 引用分别在哪一层冻结,灰度切谁、回滚切谁。
- 会话有序与幂等:Session/Turn 串行、事件 seq、LiteTopic 单队列 FIFO、租约栅栏、先提交结果再提交位点,如何拼成“断线不丢、重投不重”。
- 记忆的单写入口与删除权:内置记忆、外部长期记忆、知识库谁能写、谁能召回、删除如何级联。
- 供给引用与对账:市场存引用、注册中心存定义、网关做准入,没有持续双向同步时谁发现漂移、谁通知订阅方。
- 双层路由与成本归因:本地选档、中心准入与兜底,两层的回执、计量与降级标记如何合成一本账。
- 交付安全闭环:对象存储、ticket、下载网关、IM 回执与 DLP,谁在哪个时刻拥有否决权。
- 单域名与多端并发:Cookie 会话、签名头、mTLS、共享池路由与多设备 Turn 串行,如何不破坏同源约束。
- 门禁、trace 与审计的分工:三者共用哪些字段、各自保留多久、谁能改。
- 故障域与降级开关:Dataplane 重启、通道积压、模型 429、注册中心不可用时,哪一层先降级、谁操作、怎么验证在途任务不丢。
- 预算租约与多 Agent 分账:父任务授权、子任务预留、跨网关与应用的重试共享同一个 attempt 预算;谁记账、谁结算、超额谁拒绝。
- 仿真与调优证据进发布门禁:Scenario / Run / Evidence 与黄金集、Evaluator 如何产出可引用的
evidence_id,门禁认哪一层证据、谁能改阈值、回滚依据是什么。
最小上手
用一场两小时的评审会,把下面十四个问题逐条写进 ADR;答不上来的,就是下一轮调研任务:
text
1. 单域名下 Cookie 怎么到后端?跨端并发谁串行?
2. 租户边界落在哪:命名空间、请求头还是独立集群?
3. 同会话并发提交怎么排队?幂等键覆盖哪些操作?
4. 状态、工作区、快照、产物分别存哪?换节点怎么恢复?
5. 沙箱按 session 还是 user?热池怎么防残留?
6. 任务触发后先写库还是先发消息?重复投递怎么去重?
7. Skill/MCP 的权威在哪?已上线版本能不能改?
8. 订阅、工具策略、网关准入分别由谁判定?
9. 模型降级的候选怎么证明能力等价?成本以谁为准?
10. 大文件怎么交付?链接被转发还能不能打开?
11. 新版本怎么灰度、怎么在 10 分钟内回滚?
12. 出事后靠 trace、审计还是评测定位?各自保留多久?
13. 预算从谁授权、怎么预留与结算?父子任务和重试怎么分账?
14. 仿真与调优产出的证据,哪一条能进发布门禁?阈值谁能改?验收方式:每个问题都有“默认决策 + 例外 + 一条可执行用例”,而不是一句“已支持”。
生产动作
- 决策记录化:每个考量点写成一页 ADR,包含场景、选项、选择、代价、验收;不要只留在会议纪要里。
- 验收用例化:安全类转成红队用例,容量类转成压测脚本,恢复类转成故障演练,发布类转成门禁。
- 季度回填:每次事故至少回填一条考量点;没有回填的事故复盘视为未完成。
- 例外显式化:允许偏离默认,但必须写清补偿措施与到期时间,禁止“默默特殊”。
- 跨组对账:接缝清单每月过一遍,确认没有“双方都以为对方做了”的空洞。
边界
- 清单不是银弹:它保证不漏关键选择,不保证每个选择都适合你的负载;默认值要用压测与事故校准。
- 组件会换,考量点不会:Higress、Nacos、AgentScope 都可以替换,但身份、状态、幂等、回滚这些问题仍在。
- 不是所有项都要现在做:先定 P0(身份、隔离、幂等、回滚),其余按阶段补齐;但“以后再想”必须有 owner 与日期。
- 文档不产生隔离:写进 ADR 不等于生效,必须落到配置、策略与验收用例。
讲清楚
平台建设真正花时间的,不是把组件跑起来,而是把“谁和谁共享、状态放哪、失效怎么办”这些场景问题逐个定死。
十条主线可以压成四句话:身份每跳重校验,租户边界落在资源与存储前缀,会话串行且状态外置,供给与交付都要有权威和否决点。
再往上一层,成熟度看九个对象有没有被真正管理:Agent、Task、Task Run、Session、Tool/MCP、Skill/Knowledge、Memory、Artifact、Budget;每个都要有 owner、版本、生命周期与删除策略。证据单独三态,
planned / issued / confirmed,确认材料充分不等于业务验收通过。判断一份方案是否成熟,看它能不能回答十四个评审问题,并且每个答案都带一条可执行验收;只能回答“支持”的,都是没想清楚。
适用:企业级 Agent 平台设计与评审 | 初稿 2026-10