@shulex/cxclawctl 0.1.2 → 0.1.3
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/README.md +25 -22
- package/dist/cli.js +2202 -127
- package/dist/cli.js.map +1 -1
- package/package.json +19 -6
- package/capabilities.lock.json +0 -898
- package/requirements-cli.txt +0 -2
- package/skills/__lib__/__init__.py +0 -0
- package/skills/__lib__/skill-runtime/bootstrap.py +0 -134
- package/skills/__lib__/solvea-api/__init__.py +0 -0
- package/skills/__lib__/solvea-api/client.py +0 -1944
- package/skills/__lib__/solvea-api/dashboard.py +0 -100
- package/skills/__lib__/solvea-api/solvea_api.py +0 -1341
- package/skills/agent-analytics/SKILL.md +0 -74
- package/skills/agent-analytics/references/chat-report-fields.md +0 -36
- package/skills/agent-analytics/references/report-fields.md +0 -130
- package/skills/agent-analytics/references/transcript.md +0 -110
- package/skills/agent-builder/SKILL.md +0 -42
- package/skills/agent-builder/interfaces/fallback-chatflow.md +0 -47
- package/skills/agent-builder/references/chatflow/graph-spec.md +0 -259
- package/skills/agent-builder/references/chatflow/node-selection.md +0 -89
- package/skills/agent-builder/references/chatflow/nodes/agent.md +0 -350
- package/skills/agent-builder/references/chatflow/nodes/business-track.md +0 -43
- package/skills/agent-builder/references/chatflow/nodes/code.md +0 -157
- package/skills/agent-builder/references/chatflow/nodes/collect-order.md +0 -47
- package/skills/agent-builder/references/chatflow/nodes/finish.md +0 -34
- package/skills/agent-builder/references/chatflow/nodes/human-review.md +0 -60
- package/skills/agent-builder/references/chatflow/nodes/if-else.md +0 -100
- package/skills/agent-builder/references/chatflow/nodes/intent.md +0 -79
- package/skills/agent-builder/references/chatflow/nodes/knowledge-reply.md +0 -43
- package/skills/agent-builder/references/chatflow/nodes/llm.md +0 -117
- package/skills/agent-builder/references/chatflow/nodes/note.md +0 -38
- package/skills/agent-builder/references/chatflow/nodes/question.md +0 -97
- package/skills/agent-builder/references/chatflow/nodes/rag-reply.md +0 -68
- package/skills/agent-builder/references/chatflow/nodes/reply.md +0 -97
- package/skills/agent-builder/references/chatflow/nodes/start.md +0 -35
- package/skills/agent-builder/references/chatflow/nodes/sub-graph.md +0 -48
- package/skills/agent-builder/references/chatflow/nodes/tool.md +0 -138
- package/skills/agent-builder/references/chatflow/nodes/transfer-to-human.md +0 -63
- package/skills/agent-builder/references/chatflow/nodes/variable-assignment.md +0 -52
- package/skills/agent-builder/references/chatflow/nodes/variable-extract.md +0 -50
- package/skills/agent-builder/references/chatflow/nodes/variable-process.md +0 -70
- package/skills/agent-builder/references/chatflow/overview.md +0 -53
- package/skills/agent-builder/references/chatflow/visual-translation.md +0 -64
- package/skills/agent-builder/references/chatflow/workflow.md +0 -134
- package/skills/agent-builder/references/multi-agent/create-update.md +0 -185
- package/skills/agent-builder/references/multi-agent/graph-spec.md +0 -246
- package/skills/agent-builder/references/multi-agent/graph-structure.md +0 -12
- package/skills/agent-builder/references/multi-agent/migrate-to-chatflow.md +0 -13
- package/skills/agent-builder/references/multi-agent/migration/large.md +0 -554
- package/skills/agent-builder/references/multi-agent/migration/principles.md +0 -446
- package/skills/agent-builder/references/multi-agent/migration/small.md +0 -225
- package/skills/agent-builder/references/multi-agent/orchestration.md +0 -11
- package/skills/agent-builder/references/multi-agent/overview.md +0 -48
- package/skills/agent-builder/references/multi-agent/update.md +0 -128
- package/skills/agent-builder/references/multi-agent/workflow.md +0 -87
- package/skills/agent-builder/references/single-agent/overview.md +0 -48
- package/skills/agent-builder/references/single-agent/prompt.md +0 -16
- package/skills/agent-builder/references/single-agent/tools.md +0 -36
- package/skills/agent-builder/references/single-agent/voice.md +0 -46
- package/skills/agent-builder/references/tools/http-tool.md +0 -315
- package/skills/agent-builder/references/tools/mock-tool.md +0 -279
- package/skills/agent-builder/references/tools/overview.md +0 -46
- package/skills/agent-builder/references/tools/tool-config.md +0 -43
- package/skills/agent-builder/references/tools/x-token.md +0 -34
- package/skills/agent-builder/scripts/chatflow/chatflow_builder.py +0 -3458
- package/skills/agent-builder/scripts/chatflow/validate_graph.py +0 -1697
- package/skills/agent-builder/scripts/copy_marketplace_agent.py +0 -61
- package/skills/agent-builder/scripts/multi-agent/legacy_graph_analyzer.py +0 -5974
- package/skills/agent-builder/scripts/multi-agent/replay_compare.py +0 -679
- package/skills/agent-builder/scripts/patch_agent_tools.py +0 -135
- package/skills/agent-builder/scripts/tools/validate_tool_config.py +0 -384
- package/skills/agent-tester/SKILL.md +0 -35
- package/skills/agent-tester/batch-test/overview.md +0 -86
- package/skills/agent-tester/scripts/batch_test_sheet.py +0 -213
- package/skills/agent-tester/single-test/badcase-retest.md +0 -85
- package/skills/agent-tester/single-test/direct-test.md +0 -24
- package/skills/agent-tester/single-test/overview.md +0 -142
- package/skills/delivery/SKILL.md +0 -112
- package/skills/delivery/interfaces/classify.md +0 -38
- package/skills/delivery/interfaces/create-agents.md +0 -89
- package/skills/delivery/interfaces/delivery-test.md +0 -67
- package/skills/delivery/references/flow.md +0 -40
- package/skills/delivery/references/validation.md +0 -15
- package/skills/delivery/scripts/batch_test.py +0 -704
- package/skills/delivery/scripts/classify.py +0 -22
- package/skills/delivery/scripts/create_agents.py +0 -695
- package/skills/delivery/scripts/gen_delivery_report.py +0 -335
- package/skills/delivery/scripts/gen_excel.py +0 -234
- package/skills/delivery/scripts/gen_report.py +0 -208
- package/skills/delivery/scripts/plan.py +0 -163
- package/skills/delivery/scripts/render.py +0 -713
- package/skills/delivery/scripts/render_summary.py +0 -38
- package/skills/delivery/scripts/sample_history_cases.py +0 -109
- package/skills/kb-builder/SKILL.md +0 -80
- package/skills/kb-builder/interfaces/qa-upload.md +0 -55
- package/skills/kb-builder/interfaces/web-kb.md +0 -84
- package/skills/kb-builder/references/directory.md +0 -373
- package/skills/kb-builder/references/export.md +0 -282
- package/skills/kb-builder/references/isolation-keywords.md +0 -113
- package/skills/kb-builder/references/knowledge.md +0 -153
- package/skills/kb-builder/references/product.md +0 -52
- package/skills/kb-builder/references/qa-from-help-center.md +0 -58
- package/skills/kb-builder/references/qa-from-pdf.md +0 -94
- package/skills/kb-builder/references/qa-from-tickets.md +0 -168
- package/skills/kb-builder/references/qa-from-web.md +0 -98
- package/skills/kb-builder/references/qa-quality.md +0 -73
- package/skills/kb-builder/references/reply-template.md +0 -237
- package/skills/kb-builder/references/tag-isolation-migration.md +0 -61
- package/skills/kb-builder/references/tags.md +0 -45
- package/skills/kb-builder/references/upload.md +0 -130
- package/skills/kb-builder/scripts/batch_extract_ticket_qa.py +0 -333
- package/skills/kb-builder/scripts/build_directory_plan.py +0 -144
- package/skills/kb-builder/scripts/crawl_site.py +0 -433
- package/skills/kb-builder/scripts/create_dirs.py +0 -146
- package/skills/kb-builder/scripts/export_knowledge.py +0 -454
- package/skills/kb-builder/scripts/extract_ticket_qa.py +0 -441
- package/skills/kb-builder/scripts/extract_web_qa.py +0 -118
- package/skills/kb-builder/scripts/import_qa.py +0 -219
- package/skills/kb-builder/scripts/import_source_documents.py +0 -143
- package/skills/kb-builder/scripts/import_templates.py +0 -409
- package/skills/poc/SKILL.md +0 -125
- package/skills/poc/assets/default_manual.css +0 -279
- package/skills/poc/assets/notice_escalate.png +0 -0
- package/skills/poc/assets/notice_escalate2.png +0 -0
- package/skills/poc/assets/notice_new_chat.png +0 -0
- package/skills/poc/assets/poc_test_template.html +0 -645
- package/skills/poc/assets/poc_test_template.md +0 -104
- package/skills/poc/assets/step3_preview.png +0 -0
- package/skills/poc/assets/step4_order_note.png +0 -0
- package/skills/poc/interfaces/classify.md +0 -38
- package/skills/poc/interfaces/create-agents.md +0 -108
- package/skills/poc/interfaces/poc-test.md +0 -94
- package/skills/poc/references/flow.md +0 -47
- package/skills/poc/references/kb-directory.md +0 -22
- package/skills/poc/references/validation.md +0 -17
- package/skills/poc/scripts/classify.py +0 -22
- package/skills/poc/scripts/create_agents.py +0 -818
- package/skills/poc/scripts/gen_excel.py +0 -234
- package/skills/poc/scripts/gen_poc_manual.py +0 -249
- package/skills/poc/scripts/gen_report.py +0 -208
- package/skills/poc/scripts/inspect_chatflow.py +0 -209
- package/skills/poc/scripts/plan.py +0 -178
- package/skills/poc/scripts/poc_test.py +0 -495
- package/skills/poc/scripts/render.py +0 -713
- package/skills/poc/scripts/render_summary.py +0 -41
- package/skills/runtime-inspector/SKILL.md +0 -51
- package/skills/runtime-inspector/references/frontend-rendering.md +0 -126
- package/skills/runtime-inspector/references/model.md +0 -59
- package/skills/runtime-inspector/references/sandbox.md +0 -131
- package/skills/runtime-inspector/scripts/model_inspect.py +0 -68
- package/skills/runtime-inspector/scripts/prepare.py +0 -98
- package/skills/runtime-inspector/scripts/process.py +0 -84
- package/skills/runtime-inspector/scripts/read_state.py +0 -32
- package/skills/runtime-inspector/scripts/sandbox_inspect.py +0 -463
- package/skills/runtime-inspector/scripts/test_claude_proxy.py +0 -49
- package/skills/runtime-inspector/scripts/test_openai_proxy.py +0 -41
- package/skills/runtime-inspector/scripts/verify_persistence.py +0 -101
- package/skills/runtime-inspector/scripts/write_test.py +0 -41
- package/skills/setup/SKILL.md +0 -17
- package/skills/shulex-support/SKILL.md +0 -39
- package/skills/shulex-support/references/badcase-analysis/overview.md +0 -34
- package/skills/shulex-support/references/badcase-analysis/text/conversation-record.md +0 -105
- package/skills/shulex-support/references/badcase-analysis/text/core-flow.md +0 -89
- package/skills/shulex-support/references/badcase-analysis/text/log-query-rules.md +0 -36
- package/skills/shulex-support/references/badcase-analysis/text/m1-entry.md +0 -53
- package/skills/shulex-support/references/badcase-analysis/text/m10-chatflow-service.md +0 -259
- package/skills/shulex-support/references/badcase-analysis/text/m11-algorithm-service.md +0 -148
- package/skills/shulex-support/references/badcase-analysis/text/m12-quality-inspection.md +0 -57
- package/skills/shulex-support/references/badcase-analysis/text/m2-intent.md +0 -120
- package/skills/shulex-support/references/badcase-analysis/text/m3-strategy.md +0 -126
- package/skills/shulex-support/references/badcase-analysis/text/m4-aifield.md +0 -121
- package/skills/shulex-support/references/badcase-analysis/text/m5-agent.md +0 -208
- package/skills/shulex-support/references/badcase-analysis/text/m6-tool.md +0 -115
- package/skills/shulex-support/references/badcase-analysis/text/m7-reply.md +0 -72
- package/skills/shulex-support/references/badcase-analysis/text/m8-error.md +0 -92
- package/skills/shulex-support/references/badcase-analysis/text/m9-knowledge-search.md +0 -147
- package/skills/shulex-support/references/badcase-analysis/text/sls-query.md +0 -283
- package/skills/shulex-support/references/badcase-analysis/voice/core-flow.md +0 -77
- package/skills/shulex-support/references/badcase-analysis/voice/dependencies.md +0 -19
- package/skills/shulex-support/references/badcase-analysis/voice/platform-api.md +0 -23
- package/skills/shulex-support/references/badcase-analysis/voice/sls-playbook.md +0 -31
- package/skills/shulex-support/references/product-docs.md +0 -70
- package/skills/shulex-support/references/tickets.md +0 -184
- package/skills/shulex-support/scripts/support.py +0 -427
- package/skills/solvea-desk/SKILL.md +0 -39
- package/skills/solvea-desk/references/report/fields.md +0 -82
- package/skills/solvea-desk/references/report/report-design.md +0 -200
- package/skills/solvea-desk/references/report/report-template.html +0 -44
- package/skills/solvea-desk/references/report/report.css +0 -517
- package/skills/solvea-desk/references/report/workflow.md +0 -464
- package/skills/solvea-desk/references/tickets/query.md +0 -103
- package/skills/solvea-desk/references/tickets/tags.md +0 -83
- package/skills/solvea-desk/scripts/report/fetch_sources.py +0 -580
- package/skills/solvea-desk/scripts/report/render_report.py +0 -763
- package/skills/solvea-desk/scripts/tickets/desk_api.py +0 -73
- package/skills/solvea-desk/scripts/tickets/fetch_tickets.py +0 -403
- package/skills/solvea-desk/scripts/tickets/ticket_tags.py +0 -305
- package/skills/solvea-kit/SKILL.md +0 -84
- package/skills/solvea-kit/references/agent.md +0 -145
- package/skills/solvea-kit/references/chat.md +0 -244
- package/skills/solvea-kit/references/intent.md +0 -69
- package/skills/solvea-kit/references/plugin.md +0 -53
- package/skills/solvea-kit/references/quality-inspection.md +0 -75
- package/skills/solvea-kit/references/strategy.md +0 -62
- package/skills/solvea-kit/references/tagging.md +0 -231
- package/skills/solvea-kit/references/variables.md +0 -53
- package/skills/solvea-kit/scripts/generate_label_import_file.py +0 -151
- package/skills/solvea-kit/scripts/intent_classify.py +0 -843
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# {{brand_name}} POC 测试手册
|
|
2
|
-
|
|
3
|
-
> 生成时间:{{generated_at}} · Powered by Shulex
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 测试账号
|
|
8
|
-
|
|
9
|
-
| 项目 | 内容 |
|
|
10
|
-
|---|---|
|
|
11
|
-
| 控制台地址 | <{{console_url}}> |
|
|
12
|
-
| 测试账号 | `{{account_email}}` |
|
|
13
|
-
| 登录密码 | `{{account_password}}` |
|
|
14
|
-
|
|
15
|
-
> 请妥善保管账号信息,仅限本次测试用途。
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 已提供资料
|
|
20
|
-
|
|
21
|
-
- 客户官网:<{{brand_website}}>
|
|
22
|
-
|
|
23
|
-
测试场景覆盖:
|
|
24
|
-
|
|
25
|
-
- **包裹与物流问题**:涵盖包裹漏发、错发、破损,以及物流查询和物流异常处理(Package issues + Logistics Issues 共用同一 Agent)
|
|
26
|
-
- **售前咨询**:涵盖产品推荐、折扣与价格咨询、库存确认、支付问题等购买前常见疑问
|
|
27
|
-
- **产品问题**:涵盖产品使用指导、物理损坏(破损/故障)及非物理功能问题(功能异常、系统设置等)
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## 测试摘要
|
|
32
|
-
|
|
33
|
-
| 指标 | 数值 |
|
|
34
|
-
|---|---|
|
|
35
|
-
| 总用例数 | **{{total_cases}}** |
|
|
36
|
-
| 涵盖场景数 | {{scene_count}} |
|
|
37
|
-
|
|
38
|
-
涉及场景:{{scene_tags_html}}
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## 操作步骤
|
|
43
|
-
|
|
44
|
-
1. 使用上方测试账号登录 Shulex 控制台
|
|
45
|
-
2. 进入 **Agents** 模块,选择想测试的场景,点击对应 Agent 进入画布
|
|
46
|
-
3. 点击 **Preview** 打开测试窗口
|
|
47
|
-
|
|
48
|
-

|
|
49
|
-
|
|
50
|
-
4. 模拟测试时,需要订单号的环节,可以使用节点备注里的不同类型订单号
|
|
51
|
-
|
|
52
|
-

|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 测试结果回放
|
|
57
|
-
|
|
58
|
-
下面按 Agent 分组展示本次测试覆盖的所有用例及对话回放:
|
|
59
|
-
|
|
60
|
-
{{agent_sections_html}}
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## 测试注意事项
|
|
65
|
-
|
|
66
|
-
### 关于新对话
|
|
67
|
-
|
|
68
|
-
每次开始新对话前,请点击 **NewChat** 按钮,否则 AI 会参考上文聊天记录回答,影响准确性。
|
|
69
|
-
|
|
70
|
-

|
|
71
|
-
|
|
72
|
-
### 关于知识范围
|
|
73
|
-
|
|
74
|
-
提问时请注意查看机器人是否学习了对应知识。未学习的知识会按转人工流程处理。
|
|
75
|
-
|
|
76
|
-
### 关于转人工
|
|
77
|
-
|
|
78
|
-
默认转人工话术:
|
|
79
|
-
|
|
80
|
-
> Please wait for our team and we'll get back to you as soon as possible.
|
|
81
|
-
|
|
82
|
-
出现该话术时,说明 AI 由于以下原因转入人工:
|
|
83
|
-
|
|
84
|
-
- 缺乏对应知识
|
|
85
|
-
- 识别到转人工意图
|
|
86
|
-
- 命中红线问题
|
|
87
|
-
|
|
88
|
-
具体原因可查看对话下方的小字或点击 **生成过程** 查看。
|
|
89
|
-
|
|
90
|
-

|
|
91
|
-
|
|
92
|
-
转人工后 AI 不再回复,避免与人工客服抢答。如需继续向 AI 提问,请开启新对话。
|
|
93
|
-
|
|
94
|
-

|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## 关于本次测试
|
|
99
|
-
|
|
100
|
-
当前账号为专为 **{{brand_name}}** 搭建。如无必要,请不要改动账号设置或增减知识。如需扩展体验,可联系 Shulex 协助处理。
|
|
101
|
-
|
|
102
|
-
本次测试的功能仅供演示和体验。正式环境下我们可根据具体业务需求部署多功能的 AI Agent。
|
|
103
|
-
|
|
104
|
-
感谢您参与本次测试。如有问题,欢迎随时联系我们的技术支持团队。
|
|
Binary file
|
|
Binary file
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# POC Intent Classification
|
|
2
|
-
|
|
3
|
-
POC 专属分类入口。入口和状态归属 POC skill;通用意图分类实现调用 `solvea-kit/scripts/intent_classify.py`,状态写入 `/workspace/state/poc/progress.json`。
|
|
4
|
-
|
|
5
|
-
## Commands
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/classify.py --xlsx <xlsx> --messages-col <col> [--title-col <col>]
|
|
9
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/classify.py --no-excel
|
|
10
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/gen_report.py --brand <brand>
|
|
11
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/gen_excel.py --brand <brand>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Inputs
|
|
15
|
-
|
|
16
|
-
- `xlsx`:用户上传的客诉表,可选。
|
|
17
|
-
- `--messages-col`:xlsx 模式必填,由 POC 先读样例推断。
|
|
18
|
-
- `--title-col`:可选。
|
|
19
|
-
- `--no-excel`:使用固定 taxonomy。
|
|
20
|
-
|
|
21
|
-
## Guarantees
|
|
22
|
-
|
|
23
|
-
- xlsx 模式不会自动降级到 `--no-excel`。
|
|
24
|
-
- 模型选择由 Solvea Kit 的 service-managed LLM 通道决定,POC 不维护具体模型名。
|
|
25
|
-
- 分类结果通过 `results_path` 落盘。
|
|
26
|
-
- 报告和 Excel 路径通过 POC state 暴露。
|
|
27
|
-
|
|
28
|
-
## State Fields
|
|
29
|
-
|
|
30
|
-
- `status`
|
|
31
|
-
- `tenant`
|
|
32
|
-
- `run_id`
|
|
33
|
-
- `results_path`
|
|
34
|
-
- `items_path`
|
|
35
|
-
- `report_path`
|
|
36
|
-
- `excel_path`
|
|
37
|
-
- `mode`
|
|
38
|
-
- `updated_at`
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# POC Intent Onboarding
|
|
2
|
-
|
|
3
|
-
POC 专属能力:创建全部意图,优先克隆 3 个预置业务 agent,绑定 3 条业务策略;兜底 chatflow agent 由 POC 编排调用 `agent-builder` 创建后,再回填第 4 条兜底策略。
|
|
4
|
-
|
|
5
|
-
这份 SOP 属于 `poc` skill。POC 的意图创建、业务 agent 创建、兜底策略回填都从本 skill 的脚本入口执行。
|
|
6
|
-
|
|
7
|
-
## Commands
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# POC 业务阶段:建全部意图 + 优先克隆 3 个业务 agent + 3 条业务策略
|
|
11
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/create_agents.py --mode poc
|
|
12
|
-
|
|
13
|
-
# POC 兜底阶段:fallback chatflow agent 创建完成后,绑定所有 pending intents
|
|
14
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/create_agents.py --mode poc --poc-fallback-agent-id <agent_id>
|
|
15
|
-
|
|
16
|
-
# POC 恢复阶段:预置 agent 不可用,用户确认从零新建或使用替代 agent 后,绑定业务策略
|
|
17
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/create_agents.py --mode poc \
|
|
18
|
-
--custom-agent-map /workspace/state/poc/custom_agent_map.json
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
`custom_agent_map.json` 使用 POC binding 名作为 key:
|
|
22
|
-
|
|
23
|
-
```json
|
|
24
|
-
{
|
|
25
|
-
"Package_Logistics": 2641,
|
|
26
|
-
"PreSales": 2642,
|
|
27
|
-
"Product": 2643
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## SOP
|
|
32
|
-
|
|
33
|
-
1. 通过 `/skills/poc/interfaces/classify.md` 完成分类。
|
|
34
|
-
2. 展示分类结果,等用户确认。
|
|
35
|
-
3. 执行 `/skills/poc/scripts/create_agents.py --mode poc`。
|
|
36
|
-
4. 读取 `/workspace/state/poc/progress.json` 的 `created_log_path`。
|
|
37
|
-
5. 读取 created log,展示意图、agent、strategy 和 `fallback_pending`。
|
|
38
|
-
6. 如果 created log 或 state 出现 `preset_agent_errors` / `status=preset_agent_missing`,不要说“只能等开发修复”,也不要直接崩溃;应向用户说明缺失的预置 agent,并请用户选择:
|
|
39
|
-
- 从零新建对应 CHAT_FLOW 业务 agent;
|
|
40
|
-
- 或指定现有 agent 作为替代。
|
|
41
|
-
用户确认后再调用 `agent-builder` 创建新 agent,或按用户给定替代 agent 继续绑定策略。
|
|
42
|
-
7. 如果用户选择从零新建或使用替代 agent,把已确认的 agent id 写入 `custom_agent_map.json`,执行 `--custom-agent-map` 绑定业务策略。
|
|
43
|
-
8. 调用 `/skills/agent-builder/interfaces/fallback-chatflow.md` 创建兜底 CHAT_FLOW agent。
|
|
44
|
-
9. 拿到 `agent_id` 后执行 `/skills/poc/scripts/create_agents.py --mode poc --poc-fallback-agent-id <agent_id>`。
|
|
45
|
-
10. 展示 fallback strategy 结果,等用户确认是否进入 KB 或测试阶段。
|
|
46
|
-
|
|
47
|
-
## POC Guarantees
|
|
48
|
-
|
|
49
|
-
- 创建全部标准意图和分类中新发现的 L1。
|
|
50
|
-
- 当前租户已有同名意图时复用现有意图 id,继续克隆 agent 和创建策略;不要因为 create intent 返回同名冲突而中断。
|
|
51
|
-
- 优先克隆 3 个固定业务 agent;如果预置 agent 不存在或复制失败,必须把它作为可恢复分支处理,询问用户从零新建还是使用替代 agent。
|
|
52
|
-
- 创建 3 条业务策略,其中 Package issues 与 Logistics Issues 共用一条策略。
|
|
53
|
-
- 兜底策略 priority=999,业务策略默认 priority=0。
|
|
54
|
-
- 不更新 X-Token。
|
|
55
|
-
- 不在 intent 脚本内创建兜底 chatflow agent。
|
|
56
|
-
- 新发现 L1 或不在 3 个业务 binding 内的意图自动进入 fallback pending。
|
|
57
|
-
|
|
58
|
-
## POC Fixed Bindings
|
|
59
|
-
|
|
60
|
-
| Binding | 意图 | 默认 squareAgent_id |
|
|
61
|
-
|---|---|---|
|
|
62
|
-
| `Package_Logistics` | Package issues, Logistics Issues | 38433 |
|
|
63
|
-
| `PreSales` | Pre-Sales Inquiry | 38429 |
|
|
64
|
-
| `Product` | Product issues | 38428 |
|
|
65
|
-
| `Fallback` | 不在上述 3 个 binding 里的所有意图 | 由 agent-builder 创建后传入 |
|
|
66
|
-
|
|
67
|
-
默认 `squareAgent_id` 只是首选来源,不是硬阻塞依赖。找不到时按上面的可恢复分支处理。
|
|
68
|
-
|
|
69
|
-
## Outputs
|
|
70
|
-
|
|
71
|
-
状态文件:`/workspace/state/poc/progress.json`。
|
|
72
|
-
|
|
73
|
-
POC 顶层只读取以下字段:
|
|
74
|
-
|
|
75
|
-
- `status`
|
|
76
|
-
- `mode`
|
|
77
|
-
- `created_log_path`
|
|
78
|
-
- `updated_at`
|
|
79
|
-
|
|
80
|
-
`created_log_path` 指向 JSON,POC 可读取:
|
|
81
|
-
|
|
82
|
-
- `intents[]`
|
|
83
|
-
- `intents[].intent_name`
|
|
84
|
-
- `intents[].intent_id`
|
|
85
|
-
- `intents[].agent_id`
|
|
86
|
-
- `intents[].strategy_id`
|
|
87
|
-
- `intents[].binding`
|
|
88
|
-
- `intents[].fallback_pending`
|
|
89
|
-
- `fallback_pending_intent_ids`
|
|
90
|
-
- `fallback_strategy`
|
|
91
|
-
- `custom_agent_strategies[]`
|
|
92
|
-
- `preset_agent_errors[]`
|
|
93
|
-
- `next_action`
|
|
94
|
-
|
|
95
|
-
## Fallback Chatflow Requirements
|
|
96
|
-
|
|
97
|
-
POC 只声明兜底 agent 的业务目的:
|
|
98
|
-
|
|
99
|
-
- 回复“当前问题不在本次 POC 测试范围内”或等价业务话术。
|
|
100
|
-
- 需要保持 CHAT_FLOW agent 类型。
|
|
101
|
-
- 需要输出可回填的 `agent_id`。
|
|
102
|
-
|
|
103
|
-
具体节点选择、graph 结构、变量、回复节点和结束节点由 agent-builder 在读取自身能力说明后创建。POC 不维护 chatflow graph 字段,也不复制 agent-builder 的构图规则。
|
|
104
|
-
|
|
105
|
-
## Non-Guarantees
|
|
106
|
-
|
|
107
|
-
- POC 不依赖策略 API payload、copyAgent payload 或 chatflow graph 内部结构。
|
|
108
|
-
- POC 不读取其他 skill 的完整业务流程,只调用公开 interface。
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# POC Test
|
|
2
|
-
|
|
3
|
-
POC 专属测试能力:为 POC 业务 agent 设计并执行测试,生成 POC 测试手册。
|
|
4
|
-
|
|
5
|
-
这份 interface 属于 `poc` skill。POC 测试 runner 和手册资产都在本 skill 内。
|
|
6
|
-
|
|
7
|
-
## Commands
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/inspect_chatflow.py --agent-id <id> [--agent-id <id>] --pretty
|
|
11
|
-
|
|
12
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/poc_test.py \
|
|
13
|
-
--test-file /workspace/outputs/poc/poc_test_cases_<ts>.json \
|
|
14
|
-
--max-turns 3 \
|
|
15
|
-
--output /workspace/outputs/poc/results_<ts>.json \
|
|
16
|
-
--report
|
|
17
|
-
|
|
18
|
-
npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/gen_poc_manual.py \
|
|
19
|
-
--results /workspace/outputs/poc/results_<ts>.json \
|
|
20
|
-
--output /workspace/outputs/poc/poc_test_manual_<ts>.html \
|
|
21
|
-
--title "Shulex POC 测试手册 - <brand>" \
|
|
22
|
-
--brand-name "<brand>" \
|
|
23
|
-
--brand-website "<url>" \
|
|
24
|
-
--account-email "<email>"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Agent Scope
|
|
28
|
-
|
|
29
|
-
- 只测试 3 个业务 agent。
|
|
30
|
-
- 跳过 Fallback agent。
|
|
31
|
-
- 如果刚跑完 POC 意图创建,从 `/workspace/state/poc/progress.json` 或 `intent.created_log_path` 展开业务 agent。
|
|
32
|
-
- 如果用户显式给了 agent ID,以用户输入为准。
|
|
33
|
-
|
|
34
|
-
## Case Design
|
|
35
|
-
|
|
36
|
-
- 每个业务 agent 默认 5 个 case。
|
|
37
|
-
- 单 case 1 到 3 轮,`--max-turns 3` 是 POC 硬上限。
|
|
38
|
-
- 覆盖不同分支,优先覆盖步骤多、链路长的路径。
|
|
39
|
-
- KB 节点要设计能触发 KB 检索的问题。
|
|
40
|
-
- 订单号必须向用户索取真实订单号集,不要编造。
|
|
41
|
-
- 至少保留 1 个故意触发转人工的 case。
|
|
42
|
-
- 展示结构化 case 清单,用户确认后再执行。
|
|
43
|
-
|
|
44
|
-
## cases.json
|
|
45
|
-
|
|
46
|
-
主字段是 `case_name`,不是 `name`。
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
[
|
|
50
|
-
{
|
|
51
|
-
"case_name": "P1_Shipping_Inquiry",
|
|
52
|
-
"agent_name": "Pre-Sales Inquiry",
|
|
53
|
-
"agent_id": 38059,
|
|
54
|
-
"scenario": "Customer asks about shipping to Canada",
|
|
55
|
-
"messages": ["Do you ship to Canada?"],
|
|
56
|
-
"expected": {
|
|
57
|
-
"intent": "Pre-Sales Inquiry",
|
|
58
|
-
"content_contains": ["Canada"]
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
]
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Behavior Guarantees
|
|
65
|
-
|
|
66
|
-
- 触发 `handoff=True` 或 `TRANSFER_TO_HUMANS` 成功节点时停止当前 case。
|
|
67
|
-
- 结果 JSON 包含 `stopped_reason`。
|
|
68
|
-
- 结果 JSON 包含 chatflow 执行链路摘要。
|
|
69
|
-
- 手册生成前必须确认 `brand_name`、`brand_website`、`account_email`。
|
|
70
|
-
- 用户只要求重新出报告时,复用已有 `results_path`,不要重跑测试。
|
|
71
|
-
|
|
72
|
-
## State
|
|
73
|
-
|
|
74
|
-
POC 顶层状态写 `/workspace/state/poc/progress.json`:
|
|
75
|
-
|
|
76
|
-
- `test.agents`
|
|
77
|
-
- `test.cases_json_path`
|
|
78
|
-
- `test.results_path`
|
|
79
|
-
- `test.manual_path`
|
|
80
|
-
|
|
81
|
-
不读取其他测试 skill 的状态作为 POC 顶层状态源。
|
|
82
|
-
|
|
83
|
-
## User-Facing Message
|
|
84
|
-
|
|
85
|
-
面向业务人员,只突出手册:
|
|
86
|
-
|
|
87
|
-
```text
|
|
88
|
-
## 交付物
|
|
89
|
-
|
|
90
|
-
- POC 测试手册:`poc_test_manual_<ts>.html`
|
|
91
|
-
- 测试结果原始数据:`results_<ts>.json`
|
|
92
|
-
|
|
93
|
-
共 N 个测试案例,覆盖 M 个场景。
|
|
94
|
-
```
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# POC 流程
|
|
2
|
-
|
|
3
|
-
## 阶段一:意图分类与 POC agent 创建
|
|
4
|
-
|
|
5
|
-
1. 通过 `poc/interfaces/classify.md` 完成分类:
|
|
6
|
-
- 有 xlsx:分类用户数据。
|
|
7
|
-
- 无 xlsx:使用固定 7 个标准意图。
|
|
8
|
-
2. 展示分类结果,等用户确认。
|
|
9
|
-
3. 通过 `poc/interfaces/create-agents.md` 执行 POC 业务阶段:
|
|
10
|
-
- 创建全部意图。
|
|
11
|
-
- 优先克隆 3 个固定业务 agent。
|
|
12
|
-
- 如果预置 agent 找不到,询问用户从零新建还是使用其他现有 agent 替代,不要直接中断等待研发修复。
|
|
13
|
-
- 预置可用时自动创建 3 条业务策略。
|
|
14
|
-
- 用户确认替代方案后,通过 `--custom-agent-map` 将自定义/替代 agent 按业务 binding 写入策略。
|
|
15
|
-
- 获取 `fallback_pending_intent_ids`。
|
|
16
|
-
4. 展示 intent / agent / strategy 表,等用户确认。
|
|
17
|
-
|
|
18
|
-
## 阶段一补充:兜底 chatflow agent
|
|
19
|
-
|
|
20
|
-
1. 通过 `agent-builder/interfaces/fallback-chatflow.md` 创建兜底 CHAT_FLOW agent。
|
|
21
|
-
2. 首版允许由 agent-builder reference 创建;POC 不维护 graph 细节。
|
|
22
|
-
3. 拿到 `agent_id` 后,通过 `poc/interfaces/create-agents.md` 执行 fallback-link。
|
|
23
|
-
4. 展示 fallback strategy 结果,等用户确认。
|
|
24
|
-
|
|
25
|
-
## 阶段二:知识库,可选
|
|
26
|
-
|
|
27
|
-
用户希望体验产品/政策问答时才进入。
|
|
28
|
-
|
|
29
|
-
1. 先读 `poc/references/kb-directory.md`,确定本次 POC 是否使用标准目录模板,还是用户显式目录 schema。
|
|
30
|
-
2. 通过 `kb-builder/interfaces/web-kb.md` 处理网页、帮助中心或文档站。
|
|
31
|
-
3. 通过 `kb-builder/interfaces/qa-upload.md` 处理现成 `qa_plan.json` 或 QA parts。
|
|
32
|
-
4. POC 只维护业务目录规范选择;crawl provider、QA 提取和上传实现仍归 `kb-builder`。
|
|
33
|
-
|
|
34
|
-
## 阶段三:批量测试 + POC 手册
|
|
35
|
-
|
|
36
|
-
1. 通过 `poc/interfaces/poc-test.md` 获取业务 agent 列表。
|
|
37
|
-
2. 跳过 Fallback agent。
|
|
38
|
-
3. 每个业务 agent 设计测试 case,展示给用户确认。
|
|
39
|
-
4. 执行 POC 测试。
|
|
40
|
-
5. 生成 POC 测试手册。
|
|
41
|
-
|
|
42
|
-
## 交付物
|
|
43
|
-
|
|
44
|
-
- 意图分类报告(HTML / Excel)。
|
|
45
|
-
- 已创建的 POC 意图、3 个业务 agent、1 个兜底 chatflow agent、4 条策略。
|
|
46
|
-
- 可选知识库目录与 QA。
|
|
47
|
-
- POC 测试手册 HTML。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# POC KB 目录规范
|
|
2
|
-
|
|
3
|
-
POC 阶段负责决定知识库目录 schema,kb-builder 只按 schema 执行目录创建、QA 归类和上传。
|
|
4
|
-
|
|
5
|
-
## 优先级
|
|
6
|
-
|
|
7
|
-
1. 用户当前消息明确指定的目录层级。
|
|
8
|
-
2. 客户已有知识库目录或上传文件中的目录字段。
|
|
9
|
-
3. POC 标准目录模板。
|
|
10
|
-
|
|
11
|
-
用户或上游已经提供目录 schema 时,必须把该 schema 传给 kb-builder,并要求 kb-builder 严格按输入结构执行。schema 定义了根节点和层级时,不得在其外额外增加 POC 标准目录,也不得擅自重排层级。
|
|
12
|
-
|
|
13
|
-
## POC 标准目录模板
|
|
14
|
-
|
|
15
|
-
仅当用户没有指定目录 schema、也没有已有目录可复用时,才使用:
|
|
16
|
-
|
|
17
|
-
- Product Introduction
|
|
18
|
-
- Brand Policy
|
|
19
|
-
- Help Center(仅发现帮助中心/FAQ/文档站时创建)
|
|
20
|
-
- Pending Assignment
|
|
21
|
-
|
|
22
|
-
使用标准模板时,这 4 个一级目录是稳定路径标识,保持英文;其下业务目录使用目标业务语言,品牌名、型号和其他专有名词保留原文。
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# POC 验证清单
|
|
2
|
-
|
|
3
|
-
## 基础验证
|
|
4
|
-
|
|
5
|
-
- `/poc` 空参数会询问起点。
|
|
6
|
-
- “接着上次”会优先读取 `/workspace/state/poc/progress.json`。
|
|
7
|
-
- 顶层 state 只保存路径引用,不复制底层完整 state。
|
|
8
|
-
|
|
9
|
-
## 阶段验证
|
|
10
|
-
|
|
11
|
-
- xlsx 分类路径可生成报告。
|
|
12
|
-
- no-excel 路径可展示固定 7 意图。
|
|
13
|
-
- POC 业务阶段不更新 X-Token。
|
|
14
|
-
- Fallback agent 创建后可回填 `--poc-fallback-agent-id`。
|
|
15
|
-
- 知识库阶段可跳过。
|
|
16
|
-
- POC 批测跳过 Fallback,只测业务 agent。
|
|
17
|
-
- 手册生成前已确认品牌、官网、账号邮箱。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""POC wrapper for the shared Solvea Kit intent classifier."""
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import os
|
|
6
|
-
import subprocess
|
|
7
|
-
import sys
|
|
8
|
-
from pathlib import Path
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def main() -> int:
|
|
12
|
-
script = Path(__file__).resolve().parents[2] / "solvea-kit" / "scripts" / "intent_classify.py"
|
|
13
|
-
env = os.environ.copy()
|
|
14
|
-
env.setdefault(
|
|
15
|
-
"SOLVEA_LIB_DIR",
|
|
16
|
-
str(Path(__file__).resolve().parents[2] / "__lib__"),
|
|
17
|
-
)
|
|
18
|
-
return subprocess.call([sys.executable, str(script), "--owner", "poc", *sys.argv[1:]], env=env)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if __name__ == "__main__":
|
|
22
|
-
raise SystemExit(main())
|