AI 做事:发现、执行、确认是三件事
AI 做事最容易踩的坑,是把"前一阶段完成了"当成"后一阶段被授权了"。发现证据不等于可以创建任务,创建任务不等于可以提交工时,模型提出计划不等于可以执行外部动作。发现、执行、确认是三件事,每件都要单独的授权,前一件的完成只是后一件的输入。
可信工时:六段证据链
工时回填的流程把这件事拆得很开。证据先从会话元数据、代码提交和结构化工作记录里发现,经过脱敏、估算、路由,最后由人确认任务归属和时长,再以独立授权写入外部系统。完整链条是六段:
- 发现:枚举授权范围内的会话、仓库和记录,不绕过保护去读不该读的东西。
- 脱敏:按私有规则清洗,验证输出没有敏感残留。
- 估算:按可解释的工作活动形成候选,允许少于或超过 8 小时,不凑整。
- 路由:优先匹配语义合适的任务;低置信结果和缺失字段进待确认,不由工具猜归属。
- 确认:人确认日期、时长、任务和描述后,才拿到本批外部写入权限。
- 写入与复核:提交前查重复,提交后反查实际记录,形成幂等闭环。
关键规则有两条。第一,创建任务和提交工时是两次独立的外部状态变更,均需单独确认。第二,创建结果不明确时,先查询是否落库,不能直接重试创建——重试一次可能就多出一条脏数据。提交工时也一样:提交前去重,提交后反查实际日志 ID、任务累计消耗和剩余工时。
Agent 编排:七个可区分的阶段
数字人 Agent 的执行编排用的是同一套思想,阶段分得更细:
- 模型计划:解析用户意图,提出能力节点和目标,不直接执行外部动作。
- DTO 归一化:把中文时间、平台名、来源窗口映射为结构化字段,拒绝无法解释的形态。
- 能力路径编译:只允许声明为无副作用的能力作为隐式中间节点,不能凭空增加通知、创作动作。
- 能力/授权/依赖校验:验证能力注册表、用户授权、节点输入输出和依赖关系。
- 审查与有限修复:对结构错误做有限次修复;未知能力不能降级为近似任务。
- DAG 持久化执行:按依赖就绪、资源锁、暂停/恢复/取消执行,节点结果可追溯。
- 副作用 handler:通知、发布等外部调用由独立 handler 承担,在真实结果确认后才推进后续节点。
正式边界很硬:外部生成、通知、发布、写入或删除,必须由模型计划明确声明,并经过授权与状态门禁。异步外部任务在真实完成或明确失败前,不能把工作流提前标记为成功,更不能伪造最终 URL 或投递结果。
为什么必须拆开
两个场景,一个道理。工时场景里,"整理出候选"和"写入外部系统"之间隔着人工确认,因为写错工时是外部状态污染,清理成本比多一次确认高得多。Agent 场景里,"模型想发通知"和"真的发出通知"之间隔着授权校验,因为模型的一个幻觉可能变成一次真实的外部动作。
拆开的本质是承认:每一阶段的输出都可能错,而错误的影响范围不同。只读的发现阶段错了,最多是候选不准;外部写入阶段错了,就是真实世界的脏数据或打扰。所以阶段越多、影响越大,门禁就要越严。把"做完"自动等同于"被允许做下一步",等于用最弱的检查为最强的动作背书。
小结
发现、执行、确认,三个动词对应三种责任:看清楚、做正确、能证明。前一阶段的完成永远只是后一阶段的输入,授权必须每次单独给。