# 领导演示:一句“明天去上海出差”如何变成可复用能力 ## 演示目标 在 3–5 分钟内展示三个差异点: 1. 助理不是只回答问题,而是先读取主人偏好,把一句需求从头到尾想清,识别真正影响结果的决策、信息缺口与后续任务,再利用一切现有资源完成安全范围内的工作。 2. 没有机票或酒店专用 API 时,助理仍会组合 Skill、网页、浏览器、computer use、邮箱和日程;新 Tool 或 Skill 出现后,无需修改助理内核。 3. 办妥后,确认过的个人化经验和验证过的执行路线会分别沉淀,下一次可以直接复用;预订、付款、发送和提交仍停在即时精确确认处。 4. 时间驱动主动会从对话、已读来源(邮件、日历)和个人知识中提取未来事项,去重后转为带来源指针的任务;出行天气等值得提前复核的条件单独建任务,来源支持具体时间才用截止提醒。外部信号主动按逐项启停的订阅检查,助理建议的来源默认关闭,启用由主人决定。 ## 演示前状态 - 已保存偏好:`travel.seat = Window seat preferred`。 - 插件包:`dsh-personal-assistant@0.11.1`,patch id 为 `dsh-personal-assistant`。 - 使用全新根 Session,确保加载本次插件代码。 - 演示只准备方案,不进行真实预订、付款、发送或报销提交。 - 演示外部信号源时可提前用 `assistant_proactivity` 建一个默认关闭的建议来源(如 `weather.travel`),展示“助理建议默认关闭、主人启用”的路径。 ## 主演示提示词 > 明天去上海出差。请按我的习惯主动准备交通和酒店方案,利用一切现有资源把能做的都先做完;任何真实预订、付款、发送或提交前停下来,让我确认精确动作。这个流程如果跑通并验证成功,请自动沉淀成以后可复用的 Skill。 ## 预期可见流程 ### 1. 读取主人上下文并主动拆解 Agent 调用 `assistant_context`,读取靠窗偏好和当前任务,而不是猜测。随后先把这趟行程从头到尾想清,找出真正影响结果的决策、依赖、信息缺口与后续跟进;只追问会改变方案的内容,不把出差案例固化成所有任务都必须经过的清单。 ### 2. 发现一切现有资源 Agent 调用 `assistant_resources` 搜索“上海 出差 机票 酒店”。 - 有专用 Tool 或 API 时直接使用。 - 没有专用接口时,依次尝试匹配 Skill、浏览器或网页自动化、桌面 computer use,最后才给出人工步骤。 - 能力来自当前 Agent 的原生 Tool 与 Skill registry;安装新 provider 后,无需修改个人助理内核。 ### 3. 开始记录可复用流程 Agent 调用 `assistant_workflow(start)`,目标是“在不产生外部承诺的前提下准备可核验的上海出差方案”。插件从此只记录后续根调用 id、资源标识、成功或失败和时间,不记录查询参数、返回正文或页面内容。 ### 4. 主动完成安全范围内的工作 Agent 组合现有资源完成可逆、只读或草拟工作,例如: - 查询交通与酒店候选; - 按时间、价格、地址和靠窗偏好比较; - 准备行程草案; - 建立后续任务与待审批节点; - 从对话和已读来源中提取未来事项:返程落地确认、酒店确认截止等去重后转为任务,并保留来源指针; - 为出行前天气单独建立提前复核任务,来源支持具体时间才设 `due_at`,否则记录确认时间所需的下一步; - 必要时检查相关邮件或日程; - 用 `assistant_proactivity` 把“行程邮件变化”作为默认关闭的来源建议记录下来,等待主人决定是否启用。 结果必须标注来源和查询时间。模拟候选必须标注“演示数据”,不能声称是真实库存或订单。 ### 5. 在外部承诺前停止 Agent 可以给出候选和建议,但不会点击预订、付款、发送确认邮件或提交报销。它会列出等待主人即时确认的精确动作;“帮我准备方案”不是“确认购买某班次或某房型”。 ### 6. 独立验证并自动沉淀 Skill Agent 使用另一次根资源调用检查最终方案,调用 `assistant_workflow(status)` 取得成功调用 id,再调用 `assistant_workflow(complete)`,只提交: - 二至十二项资源序列,每项仅含一个 `resource` 标识,并按轨迹顺序对应验证调用之前的独立成功调用; - 独立验证调用的 `verification_call_id`; - kebab-case Skill 名,例如 `prepare-business-trip-options`。 `complete` 没有 free-form instructions、criteria、observed 或 completion 文本字段。插件也不保存参数、结果、URL、页面、邮件、截图或其他外部文本。skill 名必须是非敏感、能表达用途的 kebab-case 标签;原始目标和前提不会复制进去。provider 的固定模板把记录序列标为候选路线,要求每次使用前根据当前目标、约束与环境重新判断适用性;步骤、验证方式和审批规则同样由固定模板生成,从而避免把一次任务的敏感数据或提示注入变成长期指令。 插件把 Skill 投影到同一工作区的根 Agent。原生 catalog 在下一次模型 step 刷新;随后调用 `skill` 加载它,页面上能看到刚刚跑通的资源序列已经成为可复用能力。 ## 已跑通的组装证据 实际 keyless snapshot 启动真实 Headless 组合,按以下顺序执行: ```text assistant_context → assistant_resources → assistant_workflow(start) → read(第一次执行根调用) → read(第二次执行根调用) → read(第三次根调用,独立验证) → assistant_workflow(status) → assistant_workflow(complete) → skill(加载刚生成的 Skill) ``` 快照验证生成 Skill 已进入原生 registry,并包含外部承诺前即时精确确认的固定安全文本。这不是只测内部函数的 mock 流程,而是实际组装应用的完整 transcript。 ## 领导可直接看到的结论 | 关注点 | 演示证据 | |---|---| | 是否主动 | 先把需求从头到尾想清,再读取偏好、发现资源、建立流程、准备候选与下一步 | | 是否管好未来事项 | 对话、邮件、日程和个人知识中的未来事项去重后转为任务;出行天气等条件获得提前复核 | | 是否利用现有资源 | 优先原生 Tool/API,再用 Skill、浏览器/网页、桌面和人工回退 | | 是否可扩展 | 新 Tool 或模型可调用 Skill 自动进入发现结果;外部信号源订阅用检索词发现能力,无需修改助理内核 | | 是否会越权 | 在预订、付款、发送、提交等外部承诺前要求即时精确确认;助理建议的信号源默认关闭 | | 是否越用越强 | 确认过的个人化经验带到下一次;验证过的资源序列生成运行时 Skill,并可在后续 Session 重建 | | 是否保护隐私 | 不把参数、结果、URL、页面、邮件、截图或自由文本保存为 Skill 指令 | ## 演示失败时的正确表现 - 网站登录失效:说明缺少有效会话,不伪造查询结果。 - 页面结构变化:停在失败步骤,改用其他资源或给出人工接管点。 - 没有任何候选来源:报告当前能力缺口,不发布 Skill。 - 轨迹截断或验证未通过:调用 `assistant_workflow(fail)`,流程不会进入 Skill catalog。 - 用户没有批准:保持待审批任务,不进行真实预订、付款、发送或提交。