Skip to content

江中智能助手 · 项目复盘 ​

关键取舍 ​

为什么不让模型任意调用方法? ​

  • 原因:车间查询和场景操作需要限制可调用范围,不能让模型自行拼方法名或参数。
  • 处理:本轮只向模型提供已登记的知识、中台和场景方法;调用名称须命中目录,参数须通过 Zod 校验。参数校验失败最多修正两次,不能借修正更换方法。

多步问题的执行顺序是固定的吗? ​

  • 处理:不是。每一步执行后先读取结果,再由模型判断下一步;例如查询告警后,再根据结果查规程并请求设备定位。
  • 取舍:只有前一步结果会影响后续选择时才继续规划,不把中台、知识和场景写成固定顺序。

遇到的问题与处理 ​

模型选了不存在的方法,或规划失败怎么办? ​

  • 方法不在目录:拒绝该调用,不执行未登记方法。
  • 规划超时、限流或空回复:返回对应的失败说明,不伪装成“没有业务数据”。

用户说“这个设备”时,如何确定指代? ​

  • 沿用上下文:本轮没有提供新设备编号时,参考会话中的工作上下文、近期对话和短事实。
  • 以本轮输入为准:用户本轮明确说出新编号时,使用新编号,不沿用旧编号。

目前的边界 ​

助手怎样触发三维场景动作? ​

  • 执行边界:助手只返回 { name, params } 形式的场景动作,由孪生宿主执行已登记的方法;助手服务端不运行三维场景,也不直接控制真实设备。
  • 能力缺失时:没有对应的已登记场景动作,就向用户说明当前未提供该动作。

如何限制有副作用的操作? ​

  • 权限控制:viewer 不能发起模拟控制;operator 的模拟控制需要确认,并使用幂等键处理重复提交。
  • 项目范围:真实关阀门等物理设备控制不在项目范围内。

下游故障时如何避免错误重试? ​

  • 请求时限:整轮请求共享截止时间;客户端断开后取消后续处理。
  • 重试策略:只读 MCP 网络失败可有限重试;终答、Dify 流和场景动作不盲目重试。

当前部署还有什么限制? ​

  • 部署形态:当前为单实例,多副本水平扩展尚未完成。
  • 中台访问:中台查询通过 MCP 提供的只读工具执行,助手服务端不直接访问中台 SQL。

经验总结 ​

  • 先限制能力,再规划步骤:把可调用方法和参数约束在服务端可验证的目录与契约内。
  • 根据执行结果决定后续动作:多步流程需要观察前一步结果,不能只凭原始问句预设后续结论。
  • 把系统边界说清楚:查询失败、权限不足和能力未提供要分别反馈;场景动作由宿主执行,模拟控制不等于真实设备控制。