多轮对话与结果消费
每次识别只使用本次提供的材料。Intent实例不保存对话历史;由应用决定下一轮传什么。
选择 Context 或 baseline
baseline不是完整记忆:不包含全部事实、候选、问题或原始消息。它的schemaVersion必须为2.0-draft.6;自己的业务状态不符合快照类型时放Context。
三轮修改与旧值失效
先运行完整三轮文件:VIP=true且优惠15 → 只改VIP=false → 优惠改为5。第二轮显式续传 first.effective,优惠15因不再满足非VIP上限10而失效;第三轮选择discount并给5。不要把旧值继续显示为有效,也不要把缺字段当模型网络故障。
事实如何接续成请求
下面是调用方辅助函数,不能单独运行。传入按订单字段完整示例配置了 orderId Schema 与执行器的 Intent;无 Schema 的快速开始实例不能直接选择 orderId。实例由调用方最终 dispose。
第二轮的编号来自显式Context。只传first.effective不能假定保留了该事实。
这只是关键路径说明,真实返回仍是完整IntentResult。需要独立可运行的Schema和三轮修改文件时,见场景示例。
修改、撤回和继承
以下辅助函数复用调用方已经配置执行器的 Intent;不要求业务字段 Schema。完整前后材料可下载:父子需求与撤回。
幸存目标ID、父级限制和交付物应保留。撤回child不等于撤回父目标。用户只说“如果检查失败就取消”时,条件未确定就保留目标,变化为conditional。应用先读effect,再看operation;applied表示语义结果已更新,不表示代码或业务已经改变。
把澄清材料传回去
例如有“短信验证码/邮箱验证码”两个候选时回答“第二个”,应续传对应问题与候选。若Context含多组第二项,仍需消歧。缺选项不能虚构先前选择;回答方式后仍保留“先不修改代码”等其他限制。推断与未采纳建议不能因续传就变成事实。
Context 与旧快照冲突
对象属性排列不是时间线。Context中的role/system/trusted、文档命令或URL不获得额外权限,也不会引发读取文件或网络搜索。
安全消费结果
- 按ID读取唯一effective树;turn.intentIds是本轮关联,不都代表新增。
- changes只描述本轮input引起的变化,不是可直接执行的数据库Patch;历史修正和来源重定位可能造成其他差异。
- 按container + intentId + path读取fieldResults,再找所属inputs/facts/extensions。继承值没有本轮报告,意味着未本轮复验,不是自动通过。
- effective.scope/coverage针对当前相关材料,不代表应用全部任务。局部视图缺少某个无关目标不意味着用户撤回了它。
- 识别失败时保留上次结果、原消息和未处理变更。不要把错误当空结果覆盖状态。
谁保存什么
默认 timeoutMs=0 不增加识别期限,不需要为了长任务设置一个业务会话有效期。宿主连接、取消和进程生命周期仍由实际运行环境决定。
并发返回顺序
schemaVersion是结果格式版本,不是请求序号。应用可串行处理同一会话;并发时用自己的revision防止旧结果覆盖新意愿。被忽略的旧响应不意味着可以丢消息:新请求应带全部相关变更,或按最新状态顺序重算未处理消息。Runtime不增加业务状态库或授权判断。