跳到主要内容

DeepSeek Harness 生产级最佳实践

文档定位

本文面向已跑通本地 Harness、准备上生产或长期运维的工程师。内容覆盖 Profile 分离、Teardown 纪律、审批矩阵、沙箱边界声明、Creator 隔离、Session Log 保留、OpenTelemetry 指标、上下文压缩、多实例部署、密钥管理、变更回滚、Code Review 检查表与 Token 成本控制。配套实战见 七天学会子站开发指南

一、生产级 Harness 运行时全景

DeepSeek Harness(以下简称 DSH)的生产部署,核心不是「把 Web UI 跑起来」,而是把 Agent = Model + Harness 这一等式在可控边界内长期稳定运行。Harness 侧负责 Cordis 插件生命周期、工具管道、Session 事件溯源与安全审批;Model 侧负责推理。生产事故往往发生在 Harness 层:Profile 混用、Teardown 遗漏、审批矩阵空洞、Session 磁盘打满、Token 预算失控。

平面生产关注点常见失误
控制面Bundle / Profile / Patch 版本锁定生产误用 Creator 或评测 Minimal
数据面Session Log 保留与压缩无归档策略导致磁盘满
执行面工具审批、沙箱路径审批矩阵只有「允许/拒绝」两档
观测面OTel trace + 业务指标只看模型延迟不看工具失败率

二、Profile 分离:评测 Minimal vs 生产 Standard

2.1 为什么要分离 Profile

DSH 提供 Standard、Code、Minimal、Creator 四种预设 Bundle。它们不是「UI 皮肤」,而是不同的工具图谱、审批策略与 Token 预算默认值的集合。生产环境最常见的架构失误是:用 Minimal 做线上对话(工具不足导致任务失败),或用 Creator 做批量评测(权限过大且不可复现)。

原则:评测路径与生产路径必须使用不同 Profile,且通过 Patch 显式声明差异,而非在运行时手工切换。

2.2 Minimal 评测 Profile 设计要点

Minimal 预设的设计目标是低 Token、少工具、可重复。适用于:回归基准、插件挂载 smoke test、CI 中的 Harness 集成测试。生产级 Minimal Profile Patch 建议:

配置项评测 Minimal 建议值说明
工具集仅保留 read_filelist_dir 等只读工具避免写操作污染评测环境
审批全自动通过(仅评测机)减少人工变量
Session 保留7 天或 CI 产物归档评测 Session 可丢弃
模型固定型号与 temperature保证基准可比
并发单 Session 串行避免资源争抢扭曲指标

实操步骤

  1. 在仓库中维护 profiles/eval-minimal.patch.yaml,与 profiles/prod-standard.patch.yaml 分目录存放。
  2. CI 流水线只加载 eval-minimal;staging / production 加载 prod-standardprod-code
  3. 预设对比实验室 录制同一任务的 Minimal vs Standard 对比截图,作为团队 onboarding 材料。

2.3 生产 Standard Profile 设计要点

Standard 是大多数对话与轻量工具场景的默认生产 Profile。生产 Patch 应明确:

  • 工具白名单:按业务域分组(文件、网络、MCP 外部工具)。
  • 审批默认值:写操作、网络出站、子 Agent Spawn 需分级审批。
  • 上下文压缩阈值:长会话触发 summarization 的 token 水位线。
  • Creator 插件禁用:生产 Standard Bundle 不得挂载 Creator 高权限插件。

2.4 Code Profile 的边界

Code Profile 面向仓库操作与开发辅助。生产上建议独立实例或独立命名空间,与面向终端用户的 Standard 隔离,避免开发工具(如 shell、git push)进入用户会话图谱。

2.5 常见误区

误区后果纠正
「Minimal 更省 Token,生产也用」任务完不成,用户反复追问生产用 Standard,Minimal 仅评测
「Creator 功能多,staging 也用 Creator」staging 成为权限突破口Creator 仅隔离沙箱 + 人工监督
Profile 切换不写 Patch配置漂移、无法回滚一切差异进版本库 Patch

三、Teardown 纪律:可逆副作用的生产契约

Cordis 插件通过 ctx.effect() 注册可逆副作用。生产环境中 Teardown 遗漏 会导致:内存泄漏、文件句柄耗尽、重复注册工具、幽灵 MCP 连接。这是 DSH 与「一次性脚本」框架的本质区别之一。

3.1 Teardown 检查清单

每个 ctx.effect() 必须回答以下问题:

  • 注册了 event listener?→ Teardown 中 removeListener
  • 打开了 MCP 连接?→ Teardown 中 close() / disconnect()
  • 创建了定时器?→ Teardown 中 clearInterval
  • 写入了临时目录?→ Teardown 中清理或使用 scoped temp
  • 向全局工具表注册?→ Teardown 中注销
  • 修改了 process 级 handler?→ Teardown 中恢复
// 生产级插件 Teardown 示例
export default {
name: "prod-mcp-bridge",
apply(ctx) {
const clients: MCPClient[] = [];
ctx.effect(() => {
const client = connectMCP(process.env.MCP_URL!);
clients.push(client);
ctx.provide("externalTools", client.listTools());
return () => {
clients.forEach((c) => c.close());
clients.length = 0;
};
});
},
};

3.2 热重载与滚动升级

生产滚动升级时,旧实例卸载插件必须完整 Teardown,否则新旧版本可能同时持有 MCP 连接。建议:

  1. 优雅关闭:SIGTERM 时先停止接受新 Session,等待进行中工具完成,再卸载 Bundle。
  2. 健康检查:卸载后检查连接数、内存是否回落(见 技能实验室泄漏调试)。
  3. Code Review:见本文第十二节插件检查表。

3.3 Teardown 与 Session 的关系

Session Log 记录的是对话与工具调用事件,不替代插件 Teardown。即使 Session 已归档,泄漏的 MCP 连接仍占用进程资源。运维告警应同时看 Session 数进程级连接数


四、审批矩阵设计:从二元到分级

工具执行管道支持审批策略。生产级审批不是「全开」或「全关」,而是分级矩阵:按工具类型、路径前缀、命令模式、用户角色四维决策。

4.1 审批矩阵模板

工具 / 操作风险等级默认策略生产 override审计字段
read_file 沙箱内自动通过自动通过path, session_id
write_file 沙箱内首次确认白名单路径自动path, hash
write_file 沙箱外拒绝拒绝
shell 只读命令模式匹配allowlist regexcmd
shell 写/网络人工审批双人或工单cmd, approver
spawn_agent人工审批配额 + 审批parent, child_profile
MCP 外部工具中-高按 server 分级server 级策略mcp_server, tool

4.2 设计原则

  1. 默认拒绝出站网络:仅 MCP 白名单 server 可访问外网。
  2. 命令 allowlist 优于 blocklistrm -rf 类 blocklist 永远不全。
  3. 审批结果写入 Session Log:满足合规审计与 Replay 复盘。
  4. 与 Creator 隔离:Creator Profile 的审批矩阵应更严而非更松。

安全与审批模拟器 中预演矩阵变更,再推生产 Patch。

4.3 常见误区

  • 误区:「内部系统不需要审批。」→ 模型幻觉可能构造危险工具参数,审批防的是模型而非用户。
  • 误区:「审批通过一次就永久信任。」→ 应 Session 级或 time-boxed 授权,见 Session 策略。

五、沙箱边界:诚实声明而非营销话术

DSH 文件系统沙箱限制 Agent 工具的读写路径。生产文档与对用户承诺必须诚实声明边界:沙箱防的是误操作与模型越界,不是防恶意插件或已攻破的运行时

5.1 沙箱能做什么、不能做什么

能力沙箱内沙箱外 / 需知
限制 read/write 路径✅ 可配置根目录符号链接、挂载绕过需额外加固
隔离多租户 Session✅ 每 Session workspace共享卷需 OS 级权限
阻止任意 shell⚠️ 依赖工具注册与审批Creator + shell 可突破
防恶意 npm 插件❌ 非沙箱职责供应链审查 + 镜像签名
防 API Key 泄露❌ 需密钥管理环境变量 + Vault

诚实声明示例(可放入对外 SLA 附录):

本服务 Agent 文件操作默认限制在 /data/sessions/{id}/workspace。不包含对宿主机其他路径的强安全保证。Creator 模式与 shell 工具未启用。如需更高隔离级别,请联系开通独立容器实例。

5.2 生产沙箱加固清单

  • workspace 根目录按 Session ID 隔离,禁止 ../ 逃逸(路径规范化)
  • 只读挂载系统配置与插件目录
  • 禁止或严格审批 shellgit push、网络 fetch(非 MCP)
  • 容器以非 root 运行,readOnlyRootFilesystem where possible
  • 定期扫描 Session workspace 异常大文件或外传模式

详见 开发指南 · 工具与安全


六、Creator 隔离:高权限模式的生产禁令

Creator 预设提供更高权限的工具集,适合受控创作环境。生产默认应禁用 Creator,或仅在独立集群 + 网络隔离 + 人工监督下短期开启。

6.1 Creator 隔离架构

控制项用户生产Creator 隔离区
网络 egressMCP 白名单更严或完全离线
文件系统Session workspace专用卷,定期 wipe
审批分级矩阵全人工
日志保留标准策略延长 + 不可篡改存储
实例生命周期长期短生命周期 VM

6.2 误用 Creator 的事故模式

  • 批量任务脚本挂载 Creator Bundle → 模型一次调用删除大量文件
  • 「为了方便调试」在生产 Profile Patch 中启用 Creator 插件 → 权限持久化
  • Creator Session 与用户 Session 共用存储 → 横向数据泄露

规范:Creator 相关 Patch 文件命名必须含 creator,CI 禁止将该 Patch 部署到 production 命名空间。


七、Session Log 保留策略

Session Log 是 append-only 事件流,支撑 Resume、Fork、Replay 与审计。生产必须定义保留周期、归档格式、删除合规三要素。

7.1 分级保留建议

Session 类型热存储温归档冷删除备注
普通用户对话30 天180 天 S3/OSS按合规含 PII 需脱敏
Code 开发辅助14 天90 天可更短可能含代码片段
评测 Minimal7 天可选30 天无 PII 优先
Creator / 高敏90 天1-3 年法务审批WORM 存储

7.2 磁盘与性能

  • Compaction:历史事件段合并,保留 fork 指针
  • 索引:按 session_id、user_id、created_at 建索引,避免全目录扫描
  • 配额:单 Session 大小上限,超限触发压缩或拒绝新工具大 payload
  • 监控:磁盘使用率 >80% 告警,>90% 自动归档最旧热数据

7.3 Fork 与合规

Fork 产生新 Session 分支,保留策略应继承源 Session 分类。Replay 用于事故复盘时,只读挂载归档,避免重放时再次执行写工具(Replay 沙箱模式)。


八、OpenTelemetry 指标:生产可观测性基线

DSH 可集成 OpenTelemetry 导出 trace 与 metrics。生产至少应采集以下信号,并接入现有 Prometheus / Grafana / Jaeger 栈。

8.1 推荐指标清单

指标名类型标签用途
dsh.session.activeGaugeprofile, instance活跃 Session 数
dsh.tool.calls.totalCountertool, result, profile工具调用量与成功率
dsh.tool.latency.msHistogramtool工具延迟 P99
dsh.model.tokensCountermodel, directionToken 消耗
dsh.model.latency.msHistogrammodel模型 RTT
dsh.approval.pendingGauge待审批积压
dsh.plugin.mount.errorsCounterplugin插件挂载失败
dsh.session.log.bytesGaugeLog 体积

8.2 Trace 跨度设计

一次用户消息处理链建议 span:session.messagemodel.completiontool.execute(可多个)→ context.compress。在 trace 中标注 profilesession_id(哈希)、tool_name,便于定位「哪类 Profile 工具失败率高」。

8.3 告警规则示例

  • rate(dsh.tool.calls.total{result="error"}[5m]) / rate(dsh.tool.calls.total[5m]) > 0.05 → 工具错误率超 5%
  • dsh.approval.pending > 100 持续 10m → 审批积压
  • dsh.session.log.bytes 增长率异常 → 可能 Log 膨胀攻击或压缩失效

九、上下文压缩策略

长 Session 中历史消息与工具输出累积导致 Token 成本上升与上下文窗口溢出。DSH 支持上下文压缩策略,生产需显式配置而非依赖模型默认。

9.1 压缩触发条件

策略触发条件行为适用
水位线压缩token > 70% 窗口摘要早期轮次Standard 对话
工具输出裁剪单次 tool output > N KB保留摘要 + 哈希Code Profile
滑动窗口保留最近 K 轮丢弃更早Minimal 评测
结构化归档检测到 plan 完成将 plan 存 Session 元数据多 Agent

9.2 压缩质量保障

  • 压缩后保留系统指令与最新用户目标不可摘要
  • 工具失败的 stderr 保留完整片段便于调试
  • 压缩事件写入 Session Log,支持 Replay 对比压缩前后行为
  • A/B:在 staging 对比「压缩 vs 不压缩」的任务完成率

9.3 Token 成本关联

压缩降低 input token,但摘要本身消耗 output token。监控 dsh.model.tokens 中 compression 前后差值,找到业务最优水位线(通常 60%-75% 窗口触发)。


十、多实例与多 Profile 部署

水平扩展 Harness 时,需解决 Session 亲和、配置一致性与 Profile 路由。

10.1 部署拓扑

模式Session 存储适用
粘性会话本地卷 + IP hash小规模
共享存储NFS / S3 兼容 + 锁中规模
Session 服务化独立 Session API大规模

10.2 配置一致

  • Bundle 版本通过镜像 tag 锁定,禁止实例间手工改 Patch
  • 滚动升级:先升 Pool 中一个 canary,对比 OTel 错误率再全量
  • 多 Region:Profile Patch 同步,Session 数据 residency 合规

10.3 多 Profile 路由

按 URL 路径、Header 或租户 ID 路由到不同 Pool。评测流量不得与用户流量共用 Pool,避免 Minimal 资源被挤占或配置串扰。


十一、密钥管理

API Key、MCP token、Webhook secret 不得进入 Session Log 或插件源码。

11.1 分层 secrets

秘密类型存储注入方式轮换
模型 API KeyVault / K8s Secret启动时 env90 天
MCP OAuthVault 动态凭据插件 init按 IdP
Session 加密密钥KMS侧车注入
OTel exporter tokenSecretenv按需

11.2 实践清单

  • .env.gitignore,CI 用 sealed secrets
  • 日志脱敏:拦截 Authorization header 打印
  • Creator 区禁止 printenv 类工具或严格审批
  • 密钥轮换演练每季度一次,验证 Harness 热重载或滚动重启流程

十二、变更与回滚

Harness 生产变更包括:Bundle 升级、Profile Patch、审批矩阵、插件版本。回滚必须可重复、可审计

12.1 变更流程

  1. 变更单:描述 Profile/Bundles diff、影响面、回滚命令
  2. Staging 验证:自动化基准 + 人工抽检 Creator 未误开
  3. Canary:单实例 10% 流量 30 分钟,盯 OTel
  4. 全量 / 回滚:Git tag 对应镜像,一键回滚上一 tag

12.2 Patch 版本化

# profiles/prod-standard/v3.patch.yaml
apiVersion: dsh/v1
profile: standard
version: "3.1.0"
changes:
- approval: shell 策略收紧
- tools: 移除 deprecated_mcp_v1
rollbackTo: "3.0.2"

Session Log 格式升级需向后兼容或提供迁移 job;不可兼容时必须维护双读期。


十三、Code Review 插件检查表

合并插件 PR 前,Reviewer 使用本检查表(可粘贴到 PR 模板)。

13.1 功能与安全

  • 插件 name 唯一,无与 Bundle 内置冲突
  • 所有 ctx.effect() 有 Teardown,并在 lab 泄漏调试中验证
  • 工具 Schema 准确,无过度宽泛的 any 参数
  • 文件/网络操作走沙箱与审批,无 bypass 捷径
  • 不 log 密钥、PII、完整 session 内容
  • Creator 能力未混入 Standard 插件

13.2 性能与可靠性

  • MCP 连接有超时与重连上限
  • 大 payload 流式或分块,避免 OOM
  • 错误向 Agent 返回可行动消息,非裸 stack
  • 依赖版本 pinned,无 latest

13.3 可观测

  • 关键路径有 OTel span 或结构化 log
  • 指标名符合 dsh.* 前缀规范

13.4 文档

  • README 说明 Profile 要求与 env 变量
  • 变更日志条目
  • 若发布社区,含 dsh-plugin topic 说明(见 从零到一 毕业作业)

十四、容量规划与 Token 成本控制

14.1 容量维度

维度估算方法扩容信号
并发 Session峰值 QPS × 平均 Session 时长CPU >70% 或排队
磁盘日均 Session 数 × 平均 Log 大小 × 保留天磁盘告警
模型 QPS工具 轮次 × 模型调用429 率上升
内存插件数 × MCP 连接 × 缓存OOMKilled

14.2 Token 成本控制

  • Profile 级预算:Standard 单 Session 日 token 上限,超限降级 Minimal 或拒绝
  • 模型路由:简单意图用小模型,复杂任务才调大模型
  • 工具轮次上限:防止 Agent 循环调用工具
  • 缓存:相同 system prompt、重复 MCP schema 缓存 embedding 若适用
  • 账单分账:OTel label tenant_id 导出到成本报表

14.3 成本复盘会议议程(每月)

  1. Top 10 高 token Session 抽样:是否压缩失效或工具输出过大
  2. Profile 分布:Code 是否占用过高比例
  3. 评测 Minimal 是否误连生产模型 endpoint(贵)

十五、生产上线总清单

上线前逐项勾选:

  • Profile 分离:生产 Standard/Code,评测 Minimal,Creator 隔离
  • Teardown 在 lab 泄漏调试通过
  • 审批矩阵文档化并在 approval-sim 预演
  • 沙箱边界对外诚实声明
  • Session Log 保留与归档 job 就绪
  • OTel 指标与告警接入
  • 上下文压缩水位线配置
  • 多实例 Session 存储方案验证
  • 密钥在 Vault,无 repo 泄露
  • 变更回滚 runbook 演练
  • 插件 CR 检查表进入 PR 流程
  • Token 预算与容量告警就绪

延伸阅读

生产级 Harness 工程是边界、纪律与可观测的组合。把 Profile 当权限模型、把 Teardown 当发布门禁、把 Session Log 当审计资产,才能在 Agent 运行时长期可靠运行。


十六、生产事故响应与 Harness 特有故障模式

16.1 故障分类

类别典型现象首要动作
插件挂载失败实例启动 error loop回滚 Bundle tag,查 dsh.plugin.mount.errors
工具风暴Token spike、延迟飙升降并发、临时收紧审批、查 Agent 循环
Session 存储满写入失败紧急归档、扩容、临时缩短保留期
MCP 上游不可用工具大面积 timeout熔断 MCP 插件、降级工具集
审批积压用户任务卡住扩容审批人力或临时 auto-deny 非关键写

16.2 Postmortem 模板

  1. 时间线:从 OTel trace 与 Session Log Replay 提取
  2. 根因:区分 Model 幻觉、工具 bug、Profile 配置、基础设施
  3. Harness 改进:Patch 变更、审批矩阵、Teardown 修复
  4. 验证:Minimal 基准是否新增回归 case

16.3 与模型供应商故障的边界

模型 429/5xx 时,Harness 应熔断重试并给用户明确提示,而非无限 tool-model 循环。在 Profile Patch 中配置 model.maxRetriesmodel.fallback(若支持)。


十七、多租户与配额(生产扩展)

若一套 Harness 服务多租户,必须在 Profile 之上增加租户 Patch

  • 租户级工具白名单(禁止 A 租户调用 B 租户的 MCP server)
  • 租户级 Session 命名空间与磁盘 quota
  • 租户级 OTel label 用于成本与审计分账
  • Creator 能力按租户 feature flag,默认 off

常见误区:仅在前端区分租户,后端共用 Creator Profile —— 任何租户突破前端即全站沦陷。


十八、合规与数据驻留

  • PII 最小化:Session Log 不存 unnecessary 用户字段;导出前脱敏
  • 删除权:用户请求删除时,热温冷三层 Session 均需 purge,含 Fork 子树
  • 跨境:Session 存储 Region 与模型 API Region 策略一致,在 Profile 文档声明
  • 审计:审批记录与工具写操作不可篡改;WORM 或 append-only 对象锁

十九、与 CI/CD 集成最佳实践

阶段Harness 动作门禁
PRMinimal Profile 集成测试插件 mount + 样例 tool call
Merge main构建镜像 tagCR 检查表
StagingStandard Profile soakOTel 对比 baseline
Prod canary10% 流量错误率
Prod full滚动Session 无中断

CI 中 Harness 应用 CONVEX_AGENT_MODE=anonymous 类隔离模式(若适用云 Agent)避免污染开发者本地 Session 存储 —— 参见团队 Agent 开发规范。


二十、Benchmark 与 SLO 定义

建议对生产 Standard Profile 定义 SLO:

SLO目标测量
消息端到端延迟 P95< 15s(无长工具)trace
工具调用成功率> 99%metrics
Session 可 Resume 成功率> 99.9%合成探测
计划外 Creator 暴露0配置 drift 检测

每月用 Minimal 基准任务集回归,确保 Bundle 升级未退化工具轮次与完成质量。


二十一、Profile Patch 编写规范详解

生产 Patch 文件必须可读、可 diff、可回滚。推荐结构:

metadata:
name: prod-standard
version: "4.2.1"
owner: platform-team
reviewed: "2026-03-01"
spec:
bundle: standard@2.0.0
tools:
include: [read_file, write_file, search_repo]
exclude: [creator_shell]
approval:
inherit: base-standard
overrides:
- match: { tool: write_file, pathOutsideSandbox: true }
action: deny
compression:
triggerRatio: 0.72
strategy: summarization
observability:
otel:
serviceName: dsh-prod-standard

字段说明bundle 锁定主版本,避免 minor 自动漂移。tools.exclude 显式优于依赖默认。approval.overrides 按 match specificity 从高到低排序。compression.triggerRatio 需与模型窗口联合调优。

Review Patch 时问:若新同事仅读 Patch 能否理解生产权限边界?若不能,补注释与链接到审批矩阵文档。


二十二、Teardown 代码审查实例(正反例)

反例:注册全局 process.on('uncaughtException') 无 Teardown → 卸载插件后仍劫持进程。

正例:在 effect 内注册并在 Teardown 移除;或使用 Cordis 提供的 scoped lifecycle API(以仓库最新文档为准)。

反例:MCP client 懒连接,首次 tool call 才 connect,Teardown 在 mount 时执行 → client 泄漏。

正例:connect 与 close 对称;或使用 weak ref 表在 Teardown 统一关闭。

团队在 技能实验室 建立「挂载 fifty 次循环」自动化测试,内存曲线应平坦。


二十三、审批矩阵版本演进案例

假设 v1 矩阵对 write_file 沙箱内自动通过。事故:模型生成路径 workspace/../../etc/passwd 若规范化不足可能越界。v2 增加路径规范化 middleware + 仍自动通过。v3 对首次 write 每 Session 弹一次确认。v4 对 >1MB 文件 write 人工审批。

每次演进在 Session Log 标记 policy_version,Replay 旧 Session 时用当时版本策略(可选)或现策略(调试)需文档说明。


二十四、Session Log 存储格式与归档流水线

热存储:本地 SSD 或低延迟块存储,支持随机 append。温存储:按日打包 gzip JSONL 上传对象存储,保留索引 manifest。冷删除:lifecycle policy 自动删除超过 retention 的对象。

归档 job 必须幂等:重复运行不产生 duplicate 段。Fork 指针在 manifest 中维护,避免归档后无法 Resume。

监控:archive.job.durationarchive.job.failureshot.storage.bytes


二十五、OpenTelemetry 与现有栈集成步骤

  1. 部署 OTel Collector,配置 receiver OTLP gRPC/HTTP。
  2. Harness Patch 注入 OTEL_EXPORTER_OTLP_ENDPOINTOTEL_SERVICE_NAME
  3. Collector exporter 指向 Prometheus + Jaeger。
  4. Grafana 导入 DSH 仪表盘模板(社区或自建)。
  5. 告警规则接入 PagerDuty / 飞书。

注意采样率:生产 trace 可 head sample 10%,但 tool error span 100% 保留。成本与可观测平衡。


二十六、上下文压缩算法选型讨论

在生产环境中,上下文压缩算法选型讨论 是 Harness 运维经常面对的主题。以下从原理、配置与实践三方面展开,并与 开发指南 中的架构描述保持一致。

原理:Harness 作为 Agent 运行时,任何配置变更都会影响 Cordis 插件图谱与 Session 行为。运维团队应把变更视为对「执行面」的修改,而非简单的环境变量调整。

配置:通过 Profile Patch 显式声明策略,避免依赖隐式默认。所有默认值应在 staging 与 production 文档中有对照表。

实践:在 七天学会子站实验室 验证相关行为,再推生产。每次推生产前运行 Minimal 基准,确保核心 tool call 路径未回归。

常见误区:认为「staging 测过就等于生产安全」而忽略数据规模、并发与 Session 历史长度差异。生产环境的长 Session、大工具输出、多 MCP 连接会放大 staging 未覆盖的问题。

检查项:(1) Patch 已版本化;(2) OTel 能反映变更前后差异;(3) 回滚 tag 可用;(4) on-call runbook 已更新;(5) 用户可见 changelog 若涉及行为变化。

下表汇总该主题下的推荐责任分工:

角色职责
平台工程Patch 维护、实例部署
安全审批矩阵、Creator 隔离审计
SREOTel、容量、事故响应
应用团队插件 CR、业务工具 Schema

二十七、多实例 Session 锁机制

在生产环境中,多实例 Session 锁机制 是 Harness 运维经常面对的主题。以下从原理、配置与实践三方面展开,并与 开发指南 中的架构描述保持一致。

下表汇总该主题下的推荐责任分工:


二十八、密钥轮换零停机实践

在生产环境中,密钥轮换零停机实践 是 Harness 运维经常面对的主题。以下从原理、配置与实践三方面展开,并与 开发指南 中的架构描述保持一致。

下表汇总该主题下的推荐责任分工:


二十九、插件供应链安全

在生产环境中,插件供应链安全 是 Harness 运维经常面对的主题。以下从原理、配置与实践三方面展开,并与 开发指南 中的架构描述保持一致。

下表汇总该主题下的推荐责任分工:


三十、Token 预算告警与降级用户体验

在生产环境中,Token 预算告警与降级用户体验 是 Harness 运维经常面对的主题。以下从原理、配置与实践三方面展开,并与 开发指南 中的架构描述保持一致。

下表汇总该主题下的推荐责任分工:

生产深化:把清单变成可执行机制

P1. 变更窗口的可观测性协议

变更开始前记录基线:每分钟 tool calls、token、审批 ask 率、MCP up。变更后 30 分钟内这些曲线应可对比。若只看 CPU,你会错过「deny 变多导致任务假成功」。

P2. 审批矩阵的演进方式

从「全 ask」起步会不可用;从「全 auto」起步会出事。推荐:只读 auto → 工作区写 ask → 工作区外与密钥路径 deny → 网络默认 deny 白名单。每次放宽必须有 Incident 回顾或明确收益证明。

P3. Session 保留与法务

定义热/温/冷存储:热用于 Resume;温用于审计查询;冷加密归档。删除权(用户请求删除)与审计留存冲突时,走法务例外流程,而不是工程师口头决定。

P4. 多租户隔离检查

租户 A 的 Patch 不得影响租户 B 的 Host 单例状态。测试:交替高压会话,检查工具注册表与沙箱 workdir 是否串扰。

P5. Token 成本治理

预算按 Profile 分配;对超长 Session 强制 compaction;对工具输出做截断与外置存储(日志存对象存储,模型只看摘要)。成本异常告警应能下钻到 tool name。

P6. 供应链

锁文件、镜像扫描、插件签名或 checksum、禁止生产 npx latest。Bundle pin 是供应链策略的一部分,不是口味问题。

P7. Creator 专区

独立集群、无共享卷、短 TTL、强审计、默认无公网。教学可在子站模拟,生产必须物理/虚拟隔离。

P8. 回滚演练

每季度一次:把 Bundle 回退一版,验证 Session Replay 套件与 MCP 兼容。没演练过的回滚按钮等于装饰。

P9. 插件 Code Review 强制问题

  1. 每个副作用是否 effect 化?
  2. inject 是否完整?
  3. 是否引入模型可控的 URL/路径?
  4. 卸载后集成测试是否通过?
  5. 是否更新兼容矩阵?

P10. SLO 示例

指标目标
会话启动成功率≥ 99%
审批等待 P95(不含人工思考)系统侧 < 2s 展示
工具执行错误率分类告警
Effect 泄漏检测零容忍进生产