Agent X-Ray
RuntimeNotesAbout
Notes/产品经理/Agent 基础知识/S07-实践

阶段 7 实践 — 桌面 Harness 生命周期设计

4 分钟 · 更新于 2026-09-01

阶段 7 实践 — 桌面 Harness 生命周期设计

本实践的产出最小产出:桌面 Harness 的启动、自检、升级、失败回滚完整生命周期设计 完整产出:生命周期设计 + 会话恢复三方案对照 + 长任务形态设计 + 架构选型模板

预计投入:6~8 小时。对象直接用 Pi Agent 桌面端——它是你手上真实的、有历史包袱的产品,比虚构案例有价值得多。


实践 1 · 完整生命周期设计(⭐ 必做)

第一部分:首次启动

环节要定义什么我的设计
安装分发形态、体积、是否需要管理员权限、依赖
首次启动自检检查哪些项?每项失败时提示什么?
凭据配置引导流程;绝不在日志/文档里落明文
能力发现发现什么?结果如何呈现?不可用的工具是否从工具面移除?
首次任务引导让用户第一次成功做成一件事

自检清单要求:至少 6 项,每项写清 检查什么 / 通过标准 / 失败提示 / 用户能怎么修

必须包含的三项(来自真实踩坑):

  • "我是被谁拉起来的"——进程是否处于预期的管理方式下(避免脱离进程管理器后的静默掉线)
  • 运行时依赖的实际路径(尤其是内置解释器/运行时,路径含中文或空格时的行为)
  • 配置文件编码(无 BOM 的脚本、CRLF/LF、JSON 转义)

第二部分:运行期

画一张状态图,包含七个状态(创建/运行/挂起/中断/恢复/取消/完成/失败),每条边标注:

  • 触发者(用户 / 系统 / 规则)
  • 用户可见的表现
  • 中间产物如何处理

第三部分:升级

环节要定义什么我的设计
更新检测频率、是否强制、用户能否推迟
更新形态热更 / 整包 / 混合;分别适用于什么变更
更新前备份备份什么(配置、会话、记忆)、放哪
更新后校验至少三项:能启动 / 老会话能打开 / 仍被进程管理器托管
数据迁移迁移脚本、版本号、失败时怎么办

第四部分:失败回滚

回滚方案必须是一张表,不是一句"支持回滚":

失败场景检测方式回滚动作数据版本怎么退用户感知
新版启动即崩
新版能启动但核心功能坏
数据迁移中途失败
更新后脱离进程管理

验收标准

  • 四部分齐全
  • 自检清单 ≥ 6 项,含上述三项必须
  • 回滚表里每一行都写清数据版本怎么退——只写"退回上个版本"不算合格
  • 整份设计能直接给研发排期

实践 2 · 会话恢复三方案对照

任务:对同一个会话,比较三种恢复方式的效果与代价。

方案恢复什么实验做法
A · 原始消息全量把完整消息历史重新喂进去直接重放
B · 摘要消息用压缩后的摘要重建上下文先压缩再恢复
C · 结构化状态只恢复任务目标、已完成步骤、待办、关键事实自定义状态结构

在阶段 4 的最小 Loop 上实测:跑一个 6 步任务,在第 4 步中断,用三种方式恢复,各 3 次。

记录表

方案恢复后 token 数能否接着做对有没有重复已做过的步骤有没有丢关键约束
A
B
C

要看到的现象

  • A 最保险但最贵,且会话长了以后不可行
  • B 便宜但可能丢掉早期的硬约束(比如用户一开始说"预算 5000 以内")
  • C 最省且最稳,但要求你事先想清楚"什么必须留"——这正是产品工作

产出:一份《会话状态最小集》——列出恢复一个任务必须保留的字段,以及每个字段为什么不能丢。


实践 3 · 长任务的产品形态设计

任务:选一个真实的长任务场景,设计完整产品形态。

推荐场景:"帮我扫一遍这 200 条航线下个月的最低价,找出异常波动的"(本仓有 od-lowprice-batch 技能,是真实存在的批量任务)。

要设计的六件事

#事项设计要点
1提交时的确认展示:预计耗时、预计成本、会调用什么
2进度呈现不是转圈:当前在做什么 / 已完成 x/200 / 预计剩余
3中途可干预能暂停吗?能改参数吗?能只看已完成部分吗?
4断点续跑checkpoint 粒度是什么?重启后从哪继续?
5完成通知通过什么渠道?失败时通知吗?
6部分成功200 条里 12 条失败,产品怎么表达?

第 6 项是长任务的核心产品问题 长任务几乎不可能全部成功。把"部分成功"当成正常状态设计,而不是当成异常处理,是长任务产品成熟度的分水岭。要给出:成功的部分能不能先用?失败的部分能不能单独重试?重试会不会重复计费?

验收

  • 六项齐全
  • 第 6 项有明确的界面表达与重试策略
  • checkpoint 粒度有理由(太细则开销大,太粗则重跑多)

实践 4 · 架构选型模板(承接阶段 6)

在阶段 6 实践 5 的模板上,补充 Runtime 与分发相关的条目:

text
六、Runtime
   19. 持久化形态:检查点 / 事件溯源 / 混合?
   20. 持久化时机:退出时 / 异步 / 同步?依据是"有无副作用"
   21. 会话状态最小集是什么
   22. 长任务:checkpoint 粒度、通知渠道、部分成功表达

七、分发与运维
   23. 分发形态与目标平台(注意 Windows 成本系数)
   24. 首次启动自检清单
   25. 更新形态与更新后校验项
   26. 回滚方案(含数据版本)
   27. 诊断包:出问题时用户要提供什么

验收:拿完整模板(阶段 6 的 18 条 + 本阶段的 9 条)套一遍 Pi 桌面端,列出当前缺口清单并按风险排序。


自测

维度阶段 7 的问法
解释讲清"为什么 Agent 的重放不能复现问题"
画图七状态生命周期图 + 升级/回滚流程图
比较三种会话恢复方案的成本与风险
实践生命周期设计 + 恢复实验有数据
评测定义"升级成功"的验收项(至少三项,含"仍被托管")
产品化长任务的六项设计能直接做原型
迁移把生命周期设计换成云端 Agent 服务,哪些项消失、哪些项变难?

通过标志 能说出三件"只有长期运行才会暴露、Demo 阶段绝对看不到"的问题,并给出各自的产品对策。


  • 阶段 7 讲义
  • 阶段 6 实践
  • 阶段 14 实践:作品集交付模板
  • 学习路线

本章目录
实践 1 · 完整生命周期设计(⭐ 必做)实践 2 · 会话恢复三方案对照实践 3 · 长任务的产品形态设计实践 4 · 架构选型模板(承接阶段 6)自测Related Documents
苏ICP备2025204887号-2