3.9 KiB
3.9 KiB
智能体与模型配置(功能合同)
模型分工(必须保持)
| 角色 | 模型默认 | 模式 | 做什么 | 不做什么 |
|---|---|---|---|---|
| DeepSeek A | deepseek-v4-flash + strict /beta |
ordered_actions |
只根据 inbound_facts 判断意图,调用唯一 route_decision |
不抽字段、不写状态、不输出给用户的正文 |
| DeepSeek B | 同上或普通 base URL | text_extract 等 |
文字字段语义、协同字段、报价文字抽取 | 不改 Java 六态 |
| 千问文本 | qwen-plus |
附件文本/组织 | Excel/PDF 抽出的文本语义 | 不本地正则猜字段 |
| 千问视觉 | qwen3-vl-plus |
图片 | 只读图上可见内容 | 不推测、不算最终缺项 |
| 千问报价表 | 文本模型 | workbook mapping | 把已冻结事实填进清空后的报价模板 | 不发明价格 |
代码侧:新项目自建模型网关与 tool schema。LLM_DATA_USAGE_CONFIRMED 未确认则不得打真实模型。
流程编排(LangGraph)
何时用 Graph: 一单询价会多次挂起(补问、等卡、等主账、等 PDF),需要书签和按版本唤醒。一次性工具调用不要套 Graph。细则见 14-LangGraph与Redis.md。
编排步骤:
- 询价字段确认与补问
- 主账正式建单
- TMS 查询与结果分类
- 协同/群路径
- 报价预览、采用、调价
- 报价文件生成等待
- 成交 / 未成交 / 协商中
- 异常、人工、恢复
怎么用: thread_id 绑一单;checkpoint 在 PostgreSQL;停靠点中断;入站 resume 或 Worker 结构化 wake(工单号 + quoteVersion + waitVersion)。无 sender_id 不进图。正式六态只在主账;图成功不能冒充主账成功。用户文字不能冒充 Worker 完成。
字段合同
机器可读(拷进新仓库,目录自定,文件名保持):
inquiry-required-fields-v1.jsontms-dictionary-projection-v2.json
查价必填(激活业务线之后):
- 海运:起运港、目的港、品名、货量、整柜或拼柜、箱型箱量
箱型箱量是一个原始业务字段;结构化containerItems只由 DeepSeek B 投影。 - 空运:起运地、目的地、品名、件数、毛重、体积、包装类型
- 陆运按二级类型:国内拼车/整车、跨境集拼/整车、中港(见合同 JSON)
协同阶段另有协同必填(贸易条款、HS、含电含磁等),点「协同」必须用 不可变销售原话 重跑模型 B,不得用卡片口令覆盖。
取值规则:当前激活必填字段收到非空即采集;本地不得用封闭枚举拒绝用户原文(除合同声明的机器类型)。未激活字段摘要里的 - 不是事实。
TMS 结果分类(智能体必须能分流)
| 分类 | 含义 |
|---|---|
| 有价 | 业务码成功且有报价 |
TMS_NO_QUOTE_1002 |
无价 |
TMS_NO_QUOTE_1003 / 合同不匹配 |
业务缺项或投影失败 |
| 字典/协议投影失败 | Java 投影失败,不是「没价格」 |
| 技术失败 | HTTP/超时/熔断 |
字典:精确匹配 source_code/source_name,禁止模糊、正则、别名推断。域:空运机场、包装、陆运地址/车型/运输类型、海运箱型、币种参考。
报价文件
- 报价 Excel 模板放进新仓库资源目录(10 类模板与现网等价)。
- 报价任务由后台 Worker 的 LibreOffice 槽写对象存储 + Java 附件 + 企微文件 + Graph wake(现网是独立 quote-worker,新系统不要再拆成单独 Windows 服务)
- 群报价识别:群/工单/角色/segment/报价版本/文件 SHA 全过才能改报价状态
运行合同文件
新系统运行合同声明:主账、智能体 HTTP、AIBOT 桥、一个后台 Worker(外加 Nginx/LibreOffice/库),以及制品完整性。不要做成「必须五个 Python 服务」或「必须持有 Redis 单例锁」。
Redis 只做队列/限流/token 缓存,不当 checkpoint 或六态;用法见 14。