格式通过了,含义可能仍然错了
假设AI把客户要求转换成一个工具调用,JSON可以正常解析,字段名也没有写错,却把业务状态填成系统不认识的近义词。另一次,它填写了真实存在的记录编号,但那条记录并不属于当前请求。技术层面看似规范,执行后却可能办错对象。
这个假设说明,企业AI工作流不能只检查输出是不是JSON。格式只是第一层,字段取值、组合关系、对象范围和当前业务状态都需要核验。尤其是会改变数据的工具,不能把模型生成的参数直接当成已经确认的业务指令。
用结构规则排除最基础的错误
工具应明确要求哪些字段、接受什么类型、是否允许额外字段,以及哪些值可以为空。不要让调用方靠示例猜测。字段说明也要表达业务含义,避免两个看似相近的标识被模型混用。
JSON Schema的enum用于将值限制在指定集合内。项目可以用它表达受支持的状态或类别,但仍需明确类型和其他约束,不能以为列了几个示例就已经限制了所有输入。具体校验器是否按预期执行,需要实际测试。
对数字、布尔值和字符串的自动转换要谨慎。把无法识别的值默默改成默认值,可能让错误请求看起来成功。尤其是金额、数量、标识和动作类型,应由明确规则决定是否转换;不能为了提高通过率,牺牲业务含义。
结构之后,还要检查参数之间的关系
单个字段合法,不代表组合合法。开始时间与结束时间各自格式正确,先后顺序仍可能不对;对象编号存在,目标状态也在枚举中,当前对象却未必允许直接进入那个状态。业务规则必须在模型之外执行。
可以把常见约束写成可测试的校验逻辑,并给出能指导修正的错误信息。错误应说明缺了什么或哪一项不满足条件,不必暴露无关内部信息。让模型重新猜一次不是解决方案,修正请求仍要经过同样检查。
还应区分用户明确提供、系统查询得到和模型推测的值。对于会影响执行对象或结果的关键字段,缺失时应请求补充或走确定的查询流程,不能凭上下文相似度补一个编号。看起来合理的值,可能恰好指向另一条真实记录。
对象范围与权限不能交给参数自证
参数里写着某个客户或项目,并不能证明调用者有权操作它。执行端应根据可信的身份与授权信息检查对象范围,而不是接受模型附带的“已授权”标记。权限判断需要来自系统真实上下文。
同样,模型传入的对象名称不应替代稳定标识的核对。重名、改名或历史别名都可能造成混淆。工具可以返回必要的确认信息供流程使用,但不能因为查到一个相似名称就立即执行变更。
这类检查应放在实际执行边界。即便前面的编排层做过验证,底层工具仍要保护自己的约束。否则绕过某个页面或换一个调用入口,就可能失去原本依赖的检查。这里关注可靠实现,不是要求用户阅读内部技术细节。
执行前要面对状态已经变化的可能
从查询到执行之间,业务对象可能被其他人修改。先前允许的操作,到执行时未必仍然成立。因此关键条件需要在实际变更时重新检查,并按照系统能力采用合适的一致性控制,而不是长期复用一次查询结果。
失败后的返回也要区分原因。参数缺失、对象不存在、权限不符和状态冲突需要不同处理。不能把所有问题都变成“请重试”,否则模型可能反复提交同一个不可能成功的请求,甚至在状态变化后产生意外结果。
可以限制自动修正的范围。允许补充格式,不代表允许改变用户意图;允许重新查询,不代表允许换一个对象执行。修正过程应保留原请求与最终参数之间的对应关系,便于复核为什么做了这件事。
工具定义变化也需要纳入版本管理。新增一个枚举值或改变必填字段后,旧提示词、旧示例与执行端可能不一致。发布时应确认调用方与校验端使用同一份有效约定,并保留不兼容请求的明确拒绝方式。
对校验失败的请求,日志可以保存必要的字段路径、规则和请求标识,避免把完整敏感参数写进普通错误报告。调试需要可定位信息,但并不需要向所有查看日志的人暴露客户内容。错误处理本身也属于交付范围。
最后检查绕过路径:人工重放、批量任务和补偿脚本是否仍经过同样的业务约束。若只有正常对话入口做了校验,系统在恢复任务时仍可能执行原本应被拒绝的参数,验收就还没有覆盖真实运行方式。
用错误样例验证拦截发生在哪里
验收材料应包含未知枚举、错误类型、缺失字段、额外字段、对象不匹配和状态冲突等请求。每个样例都要有预期结果,重点检查是否在产生副作用前被拒绝,而不只是界面最终显示了错误。
还要测试看似正常的边界组合。全部字段都能单独通过校验,但组合违反业务规则,往往比明显乱码更容易漏掉。使用脱敏测试对象,记录调用、拒绝原因和实际数据状态,可以证明检查确实发挥作用。
一个可交付的工具调用流程,需要把模型擅长的意图理解与确定性规则连接起来。模型可以提出候选参数,系统负责判断是否可执行。只有格式、值、对象和当前状态都符合要求,才有理由进入下一步,而不是因为JSON看起来很工整就放行。
要点总结
- 不能单独保证。结构约束之外还需要对象、权限、参数关系和当前状态检查。
- 不应默认这样处理,关键动作不能通过猜测改变含义,应拒绝或按明确流程补充确认。
- 证明错误请求在副作用发生前被拦截,并检查拒绝后实际数据没有被错误修改。
参考来源说明
本文提出可供业务团队评估的方法,示例不代表真实客户项目。官方资料仅用于核对对应技术机制,站内服务页用于了解业务范围,不作为效果证明。
