@axiom-lattice/examples-deep_research 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/CHANGELOG.md +16 -0
- package/dist/index.js +301 -819
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/agents/data_agent/index.ts +12 -12
- package/src/agents/data_agent/skills/{analysis-methodology.ts → analysis-methodology/SKILL.md} +8 -8
- package/src/agents/data_agent/skills/{analyst.ts → analyst/SKILL.md} +32 -27
- package/src/agents/data_agent/skills/data-query/SKILL.md +90 -0
- package/src/agents/data_agent/skills/data-query.ts +89 -0
- package/src/agents/data_agent/skills/{data-visualization.ts → data-visualization/SKILL.md} +9 -9
- package/src/agents/data_agent/skills/{infographic-creator.ts → infographic-creator/SKILL.md} +8 -15
- package/src/agents/data_agent/skills/inventory-doctor/SKILL.md +61 -0
- package/src/agents/data_agent/skills/{notebook-report.ts → notebook-report/SKILL.md} +11 -12
- package/src/agents/data_agent/skills/{sql-query.ts → sql-query/SKILL.md} +9 -9
- package/src/agents/data_agent/skills/test/SKILL.md +9 -0
- package/src/agents/index.ts +1 -0
- package/src/agents/inventory_doctor/index.ts +53 -0
- package/src/agents/inventory_doctor/tools.ts +244 -0
- package/src/index.ts +81 -0
- package/src/agents/data_agent/tools/load_skills.ts +0 -88
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-query
|
|
3
|
+
description: 查询数据库中的数据。适用于用户需要直接从数据库获取数据(明细或聚合)的场景。
|
|
4
|
+
metadata:
|
|
5
|
+
category: sql
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 查询数据
|
|
9
|
+
|
|
10
|
+
用户可以直接请求查询数据库中的数据。作为数据代理,你应该帮助用户查询所需的数据。
|
|
11
|
+
|
|
12
|
+
## 核心原则
|
|
13
|
+
|
|
14
|
+
- **用户可以直接请求数据**:用户可以直接要求查询数据库中的特定数据,无论是明细数据还是聚合数据
|
|
15
|
+
- **优先使用真实数据**:优先基于数据库最新数据回答问题,不要猜测或使用假设数据
|
|
16
|
+
- **明确数据需求**:如果当前数据不足以回答问题,明确说明需要的表、字段和过滤条件
|
|
17
|
+
|
|
18
|
+
## 工作流程
|
|
19
|
+
|
|
20
|
+
当用户需要数据库数据时:
|
|
21
|
+
|
|
22
|
+
1. **理解用户需求**:
|
|
23
|
+
- 识别用户需要查询的数据类型(明细、聚合、统计等)
|
|
24
|
+
- 明确数据的时间范围、维度、筛选条件
|
|
25
|
+
|
|
26
|
+
2. **协调 sql-builder-agent**:
|
|
27
|
+
- 将查询任务委托给 sql-builder-agent 子代理
|
|
28
|
+
- 使用以下工具完成检索与执行:
|
|
29
|
+
- `list_tables_sql`: 列出数据库中的所有表
|
|
30
|
+
- `info_sql`: 获取表的详细结构信息
|
|
31
|
+
- `query_checker_sql`: 验证 SQL 查询的正确性
|
|
32
|
+
- `query_sql`: 执行 SQL 查询并返回结果
|
|
33
|
+
|
|
34
|
+
3. **数据验证**:
|
|
35
|
+
- 验证查询结果是否满足用户需求
|
|
36
|
+
- 检查数据完整性和质量
|
|
37
|
+
- 确认返回的数据准确回答了用户的问题
|
|
38
|
+
|
|
39
|
+
4. **结果呈现**:
|
|
40
|
+
- 以清晰、业务友好的方式呈现查询结果
|
|
41
|
+
- 提供必要的上下文和解释
|
|
42
|
+
- 如果数据不足,明确说明需要哪些额外数据
|
|
43
|
+
|
|
44
|
+
## 常见场景
|
|
45
|
+
|
|
46
|
+
### 场景 1:用户直接请求查询数据
|
|
47
|
+
|
|
48
|
+
**用户请求示例**:
|
|
49
|
+
- "请查询最近一个月的订单数据"
|
|
50
|
+
- "显示每个地区的销售总额"
|
|
51
|
+
- "给我看看用户注册的明细数据"
|
|
52
|
+
|
|
53
|
+
**处理方式**:
|
|
54
|
+
1. 理解用户需要的数据类型和范围
|
|
55
|
+
2. 委托 sql-builder-agent 执行查询
|
|
56
|
+
3. 返回查询结果和必要的解释
|
|
57
|
+
|
|
58
|
+
### 场景 2:用户需要数据来回答问题
|
|
59
|
+
|
|
60
|
+
**用户请求示例**:
|
|
61
|
+
- "我们的收入趋势如何?"
|
|
62
|
+
- "哪个产品类别表现最好?"
|
|
63
|
+
- "用户留存率是多少?"
|
|
64
|
+
|
|
65
|
+
**处理方式**:
|
|
66
|
+
1. 识别需要查询的数据来回答问题
|
|
67
|
+
2. 委托 sql-builder-agent 执行必要的查询
|
|
68
|
+
3. 基于查询结果进行分析和回答
|
|
69
|
+
|
|
70
|
+
### 场景 3:数据不足的情况
|
|
71
|
+
|
|
72
|
+
**处理方式**:
|
|
73
|
+
1. 明确说明当前数据无法完全回答问题
|
|
74
|
+
2. 详细列出需要查询的表、字段和过滤条件
|
|
75
|
+
3. 解释为什么这些数据对完整回答问题至关重要
|
|
76
|
+
4. 提供后续查询建议
|
|
77
|
+
|
|
78
|
+
## 最佳实践
|
|
79
|
+
|
|
80
|
+
- **主动查询**:不要猜测数据,主动查询数据库获取准确信息
|
|
81
|
+
- **清晰沟通**:如果数据不足,明确说明需要什么数据以及如何获取
|
|
82
|
+
- **数据质量**:注意数据质量,识别异常值、缺失值等问题
|
|
83
|
+
- **性能考虑**:对于大型查询,考虑使用适当的限制和筛选条件
|
|
84
|
+
- **文档化**:将查询和结果记录在分析文档中,便于后续参考
|
|
85
|
+
|
|
86
|
+
## 与 sql-query skill 的关系
|
|
87
|
+
|
|
88
|
+
- `sql-query` skill 专注于 SQL 查询的技术执行细节
|
|
89
|
+
- `data-query` skill 专注于如何响应用户的数据查询请求
|
|
90
|
+
- 两者配合使用,确保用户能够顺利获取所需数据
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export const dataQuery = {
|
|
2
|
+
name: "data-query",
|
|
3
|
+
description:
|
|
4
|
+
"查询数据库中的数据。适用于用户需要直接从数据库获取数据(明细或聚合)的场景。",
|
|
5
|
+
prompt: `## 查询数据
|
|
6
|
+
|
|
7
|
+
用户可以直接请求查询数据库中的数据。作为数据代理,你应该帮助用户查询所需的数据。
|
|
8
|
+
|
|
9
|
+
## 核心原则
|
|
10
|
+
|
|
11
|
+
- **用户可以直接请求数据**:用户可以直接要求查询数据库中的特定数据,无论是明细数据还是聚合数据
|
|
12
|
+
- **优先使用真实数据**:优先基于数据库最新数据回答问题,不要猜测或使用假设数据
|
|
13
|
+
- **明确数据需求**:如果当前数据不足以回答问题,明确说明需要的表、字段和过滤条件
|
|
14
|
+
|
|
15
|
+
## 工作流程
|
|
16
|
+
|
|
17
|
+
当用户需要数据库数据时:
|
|
18
|
+
|
|
19
|
+
1. **理解用户需求**:
|
|
20
|
+
- 识别用户需要查询的数据类型(明细、聚合、统计等)
|
|
21
|
+
- 明确数据的时间范围、维度、筛选条件
|
|
22
|
+
|
|
23
|
+
2. **协调 sql-builder-agent**:
|
|
24
|
+
- 将查询任务委托给 sql-builder-agent 子代理
|
|
25
|
+
- 使用以下工具完成检索与执行:
|
|
26
|
+
- \`list_tables_sql\`: 列出数据库中的所有表
|
|
27
|
+
- \`info_sql\`: 获取表的详细结构信息
|
|
28
|
+
- \`query_checker_sql\`: 验证 SQL 查询的正确性
|
|
29
|
+
- \`query_sql\`: 执行 SQL 查询并返回结果
|
|
30
|
+
|
|
31
|
+
3. **数据验证**:
|
|
32
|
+
- 验证查询结果是否满足用户需求
|
|
33
|
+
- 检查数据完整性和质量
|
|
34
|
+
- 确认返回的数据准确回答了用户的问题
|
|
35
|
+
|
|
36
|
+
4. **结果呈现**:
|
|
37
|
+
- 以清晰、业务友好的方式呈现查询结果
|
|
38
|
+
- 提供必要的上下文和解释
|
|
39
|
+
- 如果数据不足,明确说明需要哪些额外数据
|
|
40
|
+
|
|
41
|
+
## 常见场景
|
|
42
|
+
|
|
43
|
+
### 场景 1:用户直接请求查询数据
|
|
44
|
+
|
|
45
|
+
**用户请求示例**:
|
|
46
|
+
- "请查询最近一个月的订单数据"
|
|
47
|
+
- "显示每个地区的销售总额"
|
|
48
|
+
- "给我看看用户注册的明细数据"
|
|
49
|
+
|
|
50
|
+
**处理方式**:
|
|
51
|
+
1. 理解用户需要的数据类型和范围
|
|
52
|
+
2. 委托 sql-builder-agent 执行查询
|
|
53
|
+
3. 返回查询结果和必要的解释
|
|
54
|
+
|
|
55
|
+
### 场景 2:用户需要数据来回答问题
|
|
56
|
+
|
|
57
|
+
**用户请求示例**:
|
|
58
|
+
- "我们的收入趋势如何?"
|
|
59
|
+
- "哪个产品类别表现最好?"
|
|
60
|
+
- "用户留存率是多少?"
|
|
61
|
+
|
|
62
|
+
**处理方式**:
|
|
63
|
+
1. 识别需要查询的数据来回答问题
|
|
64
|
+
2. 委托 sql-builder-agent 执行必要的查询
|
|
65
|
+
3. 基于查询结果进行分析和回答
|
|
66
|
+
|
|
67
|
+
### 场景 3:数据不足的情况
|
|
68
|
+
|
|
69
|
+
**处理方式**:
|
|
70
|
+
1. 明确说明当前数据无法完全回答问题
|
|
71
|
+
2. 详细列出需要查询的表、字段和过滤条件
|
|
72
|
+
3. 解释为什么这些数据对完整回答问题至关重要
|
|
73
|
+
4. 提供后续查询建议
|
|
74
|
+
|
|
75
|
+
## 最佳实践
|
|
76
|
+
|
|
77
|
+
- **主动查询**:不要猜测数据,主动查询数据库获取准确信息
|
|
78
|
+
- **清晰沟通**:如果数据不足,明确说明需要什么数据以及如何获取
|
|
79
|
+
- **数据质量**:注意数据质量,识别异常值、缺失值等问题
|
|
80
|
+
- **性能考虑**:对于大型查询,考虑使用适当的限制和筛选条件
|
|
81
|
+
- **文档化**:将查询和结果记录在分析文档中,便于后续参考
|
|
82
|
+
|
|
83
|
+
## 与 sql-query skill 的关系
|
|
84
|
+
|
|
85
|
+
- \`sql-query\` skill 专注于 SQL 查询的技术执行细节
|
|
86
|
+
- \`data-query\` skill 专注于如何响应用户的数据查询请求
|
|
87
|
+
- 两者配合使用,确保用户能够顺利获取所需数据
|
|
88
|
+
`,
|
|
89
|
+
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
---
|
|
2
|
+
name: data-visualization
|
|
3
|
+
description: 为数据分析结果选择合适的图表类型并生成 ECharts 配置。适用于需要将查询结果可视化为柱状图、折线图、饼图、散点图等图表的场景。
|
|
4
|
+
metadata:
|
|
5
|
+
category: analysis
|
|
6
|
+
---
|
|
7
|
+
## 图表类型选择指南
|
|
6
8
|
|
|
7
9
|
根据数据特征和业务问题选择最合适的图表类型:
|
|
8
10
|
|
|
@@ -31,7 +33,7 @@ export const dataVisualization = {
|
|
|
31
33
|
|
|
32
34
|
生成完整的 ECharts 配置,必须包含:
|
|
33
35
|
|
|
34
|
-
\`\`\`
|
|
36
|
+
\`\`\`chart
|
|
35
37
|
{
|
|
36
38
|
"table": [...], // 原始数据表格
|
|
37
39
|
"echarts": {
|
|
@@ -72,6 +74,4 @@ export const dataVisualization = {
|
|
|
72
74
|
|
|
73
75
|
## 输出格式
|
|
74
76
|
|
|
75
|
-
提供完整的 chart JSON 配置,可直接用于渲染。
|
|
76
|
-
`,
|
|
77
|
-
};
|
|
77
|
+
提供完整的 chart JSON 配置,可直接用于渲染。
|
package/src/agents/data_agent/skills/{infographic-creator.ts → infographic-creator/SKILL.md}
RENAMED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
信息图(Infographic)将数据、信息与知识转化为可感知的视觉语言。它结合视觉设计与数据可视化,用直观符号压缩复杂信息,帮助受众快速理解并记住要点。
|
|
1
|
+
---
|
|
2
|
+
name: infographic-creator
|
|
3
|
+
description: 创建信息图表,将数据可视化为易于理解的图表。适用于需要将数据可视化为易于理解的图表的场景。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
信息图(Infographic)将数据、信息与知识转化为可感知的视觉语言。它结合视觉设计与数据可视化,用直观符号压缩复杂信息,帮助受众快速理解并记住要点。
|
|
8
7
|
|
|
9
8
|
Infographic = Information Structure + Visual Expression
|
|
10
9
|
|
|
@@ -35,7 +34,7 @@ theme
|
|
|
35
34
|
palette #3b82f6 #8b5cf6 #f97316
|
|
36
35
|
\`\`\`
|
|
37
36
|
语法规范
|
|
38
|
-
第一行必须是 infographic <template-name
|
|
37
|
+
第一行必须是 infographic <template-name>,模板从下方列表中选择(见"可用模板"部分)。
|
|
39
38
|
|
|
40
39
|
使用 data / theme 块,块内用两个空格缩进。
|
|
41
40
|
|
|
@@ -314,7 +313,7 @@ data
|
|
|
314
313
|
|
|
315
314
|
若用户提供清晰的内容描述,应将其拆解为清晰、简洁的结构。
|
|
316
315
|
|
|
317
|
-
|
|
316
|
+
否则需要向用户澄清(如:"请提供清晰简洁的内容描述。"、"你希望使用哪个模板?")
|
|
318
317
|
|
|
319
318
|
提取关键信息结构(title、desc、items 等)。
|
|
320
319
|
明确所需数据字段(title、desc、items、label、value、icon 等)。
|
|
@@ -336,9 +335,3 @@ theme
|
|
|
336
335
|
1. 必须尊重用户输入的语言。例如用户输入中文,则语法中的文本也必须是中文。
|
|
337
336
|
2. 必须使用 Markdown 代码块格式,语言标识为 infographic,而不是 HTML、JS 或其他代码格式。
|
|
338
337
|
3. 代码块内只包含 AntV Infographic DSL 语法,不要包含任何解释性文字。
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
`,
|
|
344
|
-
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: inventory-doctor
|
|
3
|
+
description: 针对 WMS 拣货缺货场景的库存异常诊断 SOP,涵盖触发、信息收集、决策分支(自动修复/物理复核)与终态汇报。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 场景
|
|
7
|
+
|
|
8
|
+
- 商品 A 系统显示 5 件,拣货员现场为 0(缺货)。
|
|
9
|
+
- 智能体以 Think-Act-Observe 循环完成诊断与处置。
|
|
10
|
+
|
|
11
|
+
## 核心流程(TAO)
|
|
12
|
+
|
|
13
|
+
### 1) Trigger(感知与锁定)
|
|
14
|
+
- 事件:拣货员上报 Pick Shortage。
|
|
15
|
+
- 动作:锁定相关 SKU + 库位,冻结并发变更。
|
|
16
|
+
|
|
17
|
+
### 2) Data Retrieval & Triage(信息收集与分诊)
|
|
18
|
+
- 查路向:拉取未完结的上架/移库/波次任务,判断是否在途或延迟。
|
|
19
|
+
- 查历史:检索近 24 小时库位操作日志,关注未确认的移库、撤销、盘点。
|
|
20
|
+
- 形成初步假设:数据延迟 / 中间态卡死 / 实物错位。
|
|
21
|
+
|
|
22
|
+
### 3) Reasoning & Execution(决策执行)
|
|
23
|
+
- 分支 A 自动修复:接口中间态→触发 retry_sync 或状态刷新。
|
|
24
|
+
- 分支 B 需物理验证:生成盘点任务,派发就近理货员检查可能错放库位。
|
|
25
|
+
- 所有动作记录审计日志,保持可追溯。
|
|
26
|
+
|
|
27
|
+
### 4) Reporting(终态汇报)
|
|
28
|
+
- 输出诊断结论、采取的动作、残留风险与建议(培训/流程改进)。
|
|
29
|
+
|
|
30
|
+
## 推荐工具契约(可 Mock)
|
|
31
|
+
|
|
32
|
+
> 工具可返回随机/固定示例数据即可,无需真实后端。
|
|
33
|
+
|
|
34
|
+
- `get_wms_movement_tasks(skuId, locationId)` → { tasks: [...], pending: boolean }
|
|
35
|
+
- `get_location_logs(locationId, lookbackHours)` → [{ ts, action, operator, status }]
|
|
36
|
+
- `retry_sync(taskId)` → { fixed: boolean, message }
|
|
37
|
+
- `dispatch_cycle_count({ skuId, locations, priority })` → { taskId, assignee, eta }
|
|
38
|
+
- `notify_picker(message)` → { delivered: boolean }
|
|
39
|
+
- `write_case_report(markdown)` → { saved: true, path }
|
|
40
|
+
|
|
41
|
+
## 交付物模板
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
### 诊断概览
|
|
45
|
+
- 异常:Pick Shortage / SKU: xxx / 库位: xxx
|
|
46
|
+
- 初步结论:数据中间态 / 物理错放 / 待验证
|
|
47
|
+
|
|
48
|
+
### 关键发现
|
|
49
|
+
- 路向检查:...
|
|
50
|
+
- 日志发现:...
|
|
51
|
+
- 其他迹象:...
|
|
52
|
+
|
|
53
|
+
### 处置动作
|
|
54
|
+
- 自动修复:已调用 retry_sync(taskId=...) / 结果 ...
|
|
55
|
+
- 物理验证:已派发盘点任务 {taskId, 库位 B/C, ETA}
|
|
56
|
+
- 通知:已告知拣货员重试/等待/改捡
|
|
57
|
+
|
|
58
|
+
### 后续建议
|
|
59
|
+
- 培训/流程:...
|
|
60
|
+
- 监控/预警:...
|
|
61
|
+
```
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
---
|
|
2
|
+
name: notebook-report
|
|
3
|
+
description: 生成笔记本风格的数据分析报告,包含执行摘要、分析步骤(SQL、可视化、洞察)和结论。适用于需要将多步骤分析整合为完整、可复现的分析报告的场景。
|
|
4
|
+
metadata:
|
|
5
|
+
category: analysis
|
|
6
|
+
---
|
|
7
|
+
如何可视化数据,请通过data-visualization技能了解。
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
## 报告结构
|
|
9
10
|
|
|
10
11
|
### 报告标题部分
|
|
11
12
|
|
|
@@ -71,12 +72,10 @@ export const notebookReport = {
|
|
|
71
72
|
## 数据来源
|
|
72
73
|
|
|
73
74
|
报告应基于:
|
|
74
|
-
-
|
|
75
|
-
-
|
|
75
|
+
- `/question.md`:原始业务问题
|
|
76
|
+
- `/topic_*.md`:各子主题的分析结果
|
|
76
77
|
- 步骤 3 的综合摘要
|
|
77
78
|
|
|
78
79
|
## 输出格式
|
|
79
80
|
|
|
80
|
-
生成完整的 Markdown 格式报告,包含所有分析步骤、图表配置和洞察。
|
|
81
|
-
`,
|
|
82
|
-
};
|
|
81
|
+
生成完整的 Markdown 格式报告,包含所有分析步骤、图表配置和洞察。
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
---
|
|
2
|
+
name: sql-query
|
|
3
|
+
description: 生成和执行 SQL 查询以检索业务数据。适用于需要从数据库获取数据、探索表结构、验证查询正确性的场景。委托给 sql-builder-agent 执行。
|
|
4
|
+
metadata:
|
|
5
|
+
category: sql
|
|
6
|
+
---
|
|
7
|
+
## 委托给 sql-builder-agent
|
|
6
8
|
|
|
7
9
|
所有 SQL 相关操作都委托给 sql-builder-agent 子代理执行。
|
|
8
10
|
|
|
@@ -13,7 +15,7 @@ export const sqlQuery = {
|
|
|
13
15
|
- "请显示表 [X] 的模式,包括列、数据类型和关系"
|
|
14
16
|
|
|
15
17
|
**检查现有文档**:
|
|
16
|
-
- 先读取
|
|
18
|
+
- 先读取 `/db_schema.md`(如存在)
|
|
17
19
|
- 仅在需要时请求新的模式探索
|
|
18
20
|
|
|
19
21
|
## 查询生成与执行
|
|
@@ -53,6 +55,4 @@ sql-builder-agent 会返回:
|
|
|
53
55
|
|
|
54
56
|
## 文档化
|
|
55
57
|
|
|
56
|
-
将使用的 SQL 查询和结果保存到分析文档中,便于后续参考和复现。
|
|
57
|
-
`,
|
|
58
|
-
};
|
|
58
|
+
将使用的 SQL 查询和结果保存到分析文档中,便于后续参考和复现。
|
package/src/agents/index.ts
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
registerAgentLattices,
|
|
3
|
+
AgentType,
|
|
4
|
+
AgentConfig,
|
|
5
|
+
} from "@axiom-lattice/core";
|
|
6
|
+
import z from "zod";
|
|
7
|
+
import "./tools";
|
|
8
|
+
|
|
9
|
+
const inventoryDoctorPrompt = `You are the Inventory Doctor Agent handling WMS pick-shortage incidents.
|
|
10
|
+
|
|
11
|
+
## Mission
|
|
12
|
+
- Scenario: System shows stock=5 for SKU A, picker finds 0 at location.
|
|
13
|
+
- Follow Think-Act-Observe loops to diagnose and either auto-fix or dispatch physical verification.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
1) Trigger: on Pick Shortage, freeze concurrent changes for the SKU/location.
|
|
18
|
+
2) Data Retrieval & Triage:
|
|
19
|
+
- Check in-flight tasks (putaway/move/wave) for middle states or delays.
|
|
20
|
+
- Pull last 24h location logs; highlight unconfirmed moves or cancellations.
|
|
21
|
+
- Form hypotheses: data delay, stuck middleware, physical misplacement.
|
|
22
|
+
3) Reasoning & Execution:
|
|
23
|
+
- Branch A Auto-fix: if middle-state, call retry_sync then notify picker to retry.
|
|
24
|
+
- Branch B Physical verify: push a cycle-count task to nearby operator; include candidate locations (B/C) for misplaced stock.
|
|
25
|
+
- Record every action in the report body for auditability.
|
|
26
|
+
4) Reporting: return a concise Markdown case report with diagnosis, actions taken, residual risk, and training/monitoring suggestions.
|
|
27
|
+
|
|
28
|
+
## Output format
|
|
29
|
+
Use Markdown sections: 诊断概览 / 关键发现 / 处置动作 / 后续建议. Keep facts first, then recommendations.`;
|
|
30
|
+
|
|
31
|
+
const inventoryDoctorAgent: AgentConfig = {
|
|
32
|
+
key: "inventory_doctor_agent",
|
|
33
|
+
name: "Inventory Doctor Agent",
|
|
34
|
+
description:
|
|
35
|
+
"Diagnoses pick-shortage inventory anomalies in WMS, auto-fixes data middle states, or dispatches cycle counts for physical verification, and returns an audit-friendly report.",
|
|
36
|
+
type: AgentType.DEEP_AGENT,
|
|
37
|
+
prompt: inventoryDoctorPrompt,
|
|
38
|
+
tools: [
|
|
39
|
+
"get_wms_movement_tasks",
|
|
40
|
+
"get_location_logs",
|
|
41
|
+
"retry_sync",
|
|
42
|
+
"dispatch_cycle_count",
|
|
43
|
+
"notify_picker",
|
|
44
|
+
"write_case_report",
|
|
45
|
+
],
|
|
46
|
+
schema: z.object({
|
|
47
|
+
skuId: z.string().optional(),
|
|
48
|
+
locationId: z.string().optional(),
|
|
49
|
+
incidentId: z.string().optional(),
|
|
50
|
+
}),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
registerAgentLattices([inventoryDoctorAgent]);
|