初始化询价智能体新仓:同步本地工程并排除密钥与 .env。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
linmianxun
2026-09-13 14:30:44 +08:00
co-authored by Cursor
commit 2a14def882
2621 changed files with 393165 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
# 智能体与模型配置(功能合同)
## 模型分工(必须保持)
| 角色 | 模型默认 | 模式 | 做什么 | 不做什么 |
|---|---|---|---|---|
| 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`。
编排步骤:
1. 询价字段确认与补问
2. 主账正式建单
3. TMS 查询与结果分类
4. 协同/群路径
5. 报价预览、采用、调价
6. 报价文件生成等待
7. 成交 / 未成交 / 协商中
8. 异常、人工、恢复
**怎么用:** `thread_id` 绑一单;checkpoint 在 PostgreSQL;停靠点中断;入站 `resume` 或 Worker **结构化 wake**(工单号 + quoteVersion + waitVersion)。无 `sender_id` 不进图。正式六态只在主账;图成功不能冒充主账成功。用户文字不能冒充 Worker 完成。
## 字段合同
机器可读(拷进新仓库,目录自定,文件名保持):
- `inquiry-required-fields-v1.json`
- `tms-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`。