@dazitech/cli 3.0.0
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/LICENSE +21 -0
- package/README.md +104 -0
- package/dist/bin/dazi-app.cjs +4 -0
- package/dist/bin/dazi-flow.cjs +4 -0
- package/dist/bin/dazi-onto.cjs +4 -0
- package/dist/bin/dazi.cjs +4 -0
- package/dist/bin/run-cli-bin.cjs +62 -0
- package/dist/clis/dazi-app.js +16697 -0
- package/dist/clis/dazi-flow.js +6093 -0
- package/dist/clis/dazi-onto.js +3948 -0
- package/dist/clis/dazi.js +5677 -0
- package/dist/docs/app/app-init.md +69 -0
- package/dist/docs/app/build-upload.md +77 -0
- package/dist/docs/app/release-guide.md +51 -0
- package/dist/docs/app//344/270/273/350/246/201/350/264/242/345/212/241/346/214/207/346/240/207/345/244/215/346/235/202/346/212/245/350/241/250/345/274/200/345/217/221/345/256/236/350/267/265.md +261 -0
- package/dist/docs/auth/auth-login.md +41 -0
- package/dist/docs/auth/token-management.md +42 -0
- package/dist/docs/data/cube-guide.md +23 -0
- package/dist/docs/data/data-spaces.md +30 -0
- package/dist/docs/data/table-preview.md +41 -0
- package/dist/docs/flow/flow-project-guide.md +505 -0
- package/dist/docs/flow/flows-guide.md +302 -0
- package/dist/docs/flow/node-code-guide.md +399 -0
- package/dist/docs/flow/plan-guide.md +59 -0
- package/dist/docs/flow/run-guide.md +98 -0
- package/dist/docs/flow/source-guide.md +44 -0
- package/dist/docs/flow/variables-guide.md +406 -0
- package/dist/docs/flow//346/265/201/347/250/213/345/274/200/345/217/221/346/234/200/344/275/263/345/256/236/350/267/265-VS-flow0/346/241/210/344/276/213.md +344 -0
- package/dist/docs/guides/cli-invocation.md +93 -0
- package/dist/docs/guides/cli-reference.md +98 -0
- package/dist/docs/guides/mcp-setup.md +89 -0
- package/dist/docs/guides/migrate-v2-v3.md +54 -0
- package/dist/docs/guides/quickstart.md +77 -0
- package/dist/docs/guides/troubleshooting.md +82 -0
- package/dist/docs/guides/workspace-v3.md +53 -0
- package/dist/docs/index.json +204 -0
- package/dist/docs/onto/action-guide.md +48 -0
- package/dist/docs/onto/dazi_script_sdk_reference.md +168 -0
- package/dist/docs/onto/dazi_script_seed_data_guide.md +155 -0
- package/dist/docs/onto/function-guide.md +68 -0
- package/dist/docs/onto/rule-guide.md +52 -0
- package/dist/docs/onto/space-management.md +46 -0
- package/dist/docs/onto//346/234/254/344/275/223/350/204/232/346/234/254/347/274/226/345/206/231/346/214/207/345/215/227.md +145 -0
- package/dist/docs/onto//346/234/254/344/275/223/350/247/204/345/210/222/346/214/207/345/215/227.md +131 -0
- package/dist/docs/onto//350/247/204/345/210/222/347/244/272/344/276/213_/345/210/251/346/266/246/345/210/206/346/236/220/346/234/254/344/275/223/346/226/271/346/241/210.md +541 -0
- package/dist/examples/index.json +36 -0
- package/dist/examples/onto/function/profit_fn_customer_segmentation.py +117 -0
- package/dist/examples/onto/function/profit_fn_mom_analysis.py +89 -0
- package/dist/examples/onto/function/profit_fn_top_products.py +89 -0
- package/dist/examples/onto/function/profit_fn_yoy_analysis.py +89 -0
- package/dist/examples/onto/setup/profit_ontology_init.py +388 -0
- package/dist/prompts/app/ui-design.md +48 -0
- package/dist/prompts/data/data-analysis.md +42 -0
- package/dist/prompts/data/sql-query.md +36 -0
- package/dist/prompts/flow/flow-design.md +77 -0
- package/dist/prompts/flow/plan-generate.md +61 -0
- package/dist/prompts/flow/run-debug.md +66 -0
- package/dist/prompts/flow/run-fix-loop.md +77 -0
- package/dist/prompts/general/ask-dazi.md +30 -0
- package/dist/prompts/general/code-review.md +31 -0
- package/dist/prompts/general/troubleshoot.md +41 -0
- package/dist/prompts/index.json +20 -0
- package/dist/prompts/onto/action-design.md +47 -0
- package/dist/prompts/onto/function-design.md +44 -0
- package/dist/prompts/onto/rule-seed.md +41 -0
- package/dist/prompts/onto/script-publish-run.md +146 -0
- package/package.json +27 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 提示词:搭子 App UI 设计
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `app/ui-design`
|
|
4
|
+
**场景**: 设计搭子 App 页面
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是一名搭子 App 前端工程师(Vue 3 + Element Plus + TypeScript)。请根据以下需求设计页面。
|
|
9
|
+
|
|
10
|
+
## 需求
|
|
11
|
+
|
|
12
|
+
{{ui_requirement}}
|
|
13
|
+
|
|
14
|
+
## 技术栈约定
|
|
15
|
+
|
|
16
|
+
- **框架**:Vue 3 + Composition API
|
|
17
|
+
- **UI 组件库**:Element Plus
|
|
18
|
+
- **状态管理**:Pinia(可选)
|
|
19
|
+
- **数据获取**:通过搭子 App SDK 访问本体数据
|
|
20
|
+
|
|
21
|
+
## 代码结构
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
src/
|
|
25
|
+
pages/ ← 页面组件
|
|
26
|
+
components/ ← 通用组件
|
|
27
|
+
composables/ ← 组合式函数
|
|
28
|
+
stores/ ← Pinia store
|
|
29
|
+
api/ ← 数据访问层
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 数据访问示例
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
// 访问本体函数
|
|
36
|
+
const result = await dazi.onto.runFunction('my_function', { key: 'value' })
|
|
37
|
+
|
|
38
|
+
// 访问数据表
|
|
39
|
+
const rows = await dazi.data.query('SELECT * FROM my_table LIMIT 10')
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 构建与上传
|
|
43
|
+
|
|
44
|
+
```powershell
|
|
45
|
+
# 在 dazi-work/项目/app_<名称>/ 应用项目根
|
|
46
|
+
pnpm run dazi-app -- build
|
|
47
|
+
pnpm run dazi-app -- upload --space <space-id>
|
|
48
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# 提示词:数据分析
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `data/data-analysis`
|
|
4
|
+
**场景**: 分析数据表内容
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
以下是数据表结构,请帮我分析数据并给出洞察。
|
|
9
|
+
|
|
10
|
+
## 数据表信息
|
|
11
|
+
|
|
12
|
+
**表名**: {{table_name}}
|
|
13
|
+
**数据空间**: {{space_name}}
|
|
14
|
+
|
|
15
|
+
### 字段结构
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
{{table_schema}}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 数据样本(前 10 行)
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
{{data_sample}}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 分析要求
|
|
28
|
+
|
|
29
|
+
{{analysis_requirement}}
|
|
30
|
+
|
|
31
|
+
## 参考命令
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 查看表结构
|
|
35
|
+
.\scripts\dazi.ps1 data table schema <table-id> --space <space-id>
|
|
36
|
+
|
|
37
|
+
# 采样数据(在 VS Code 侧栏点击表名)
|
|
38
|
+
.\scripts\dazi.ps1 data table sample <table-id> --space <space-id> --rows 20
|
|
39
|
+
|
|
40
|
+
# 使用 Flow 做批量分析
|
|
41
|
+
dazi-flow run start <analysis-flow-id>
|
|
42
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 提示词:SQL 查询生成
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `data/sql-query`
|
|
4
|
+
**场景**: 根据表结构生成 SQL 查询
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
请根据以下表结构生成 SQL 查询(ClickHouse 方言)。
|
|
9
|
+
|
|
10
|
+
## 表结构
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
{{table_structures}}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 查询需求
|
|
17
|
+
|
|
18
|
+
{{query_requirement}}
|
|
19
|
+
|
|
20
|
+
## ClickHouse 常用函数备忘
|
|
21
|
+
|
|
22
|
+
```sql
|
|
23
|
+
-- 时间函数
|
|
24
|
+
toDate(timestamp_col)
|
|
25
|
+
toStartOfMonth(date_col)
|
|
26
|
+
dateDiff('day', start_date, end_date)
|
|
27
|
+
|
|
28
|
+
-- 聚合函数
|
|
29
|
+
groupArray(col) -- 转数组
|
|
30
|
+
anyLast(col) -- 最后一个值
|
|
31
|
+
countIf(condition) -- 条件计数
|
|
32
|
+
sumIf(col, condition) -- 条件求和
|
|
33
|
+
|
|
34
|
+
-- 窗口函数
|
|
35
|
+
row_number() OVER (PARTITION BY col ORDER BY ts DESC)
|
|
36
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 提示词:Flow 设计(项目态)
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `flow/flow-design`
|
|
4
|
+
**场景**: 在 `dazi-work` 中设计/新增数据流程(优先流程项目模式)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是一名搭子平台数据工程师。请根据以下需求设计一个可落地的 Flow(数据流程),并给出可执行命令。
|
|
9
|
+
|
|
10
|
+
## 需求描述
|
|
11
|
+
|
|
12
|
+
{{flow_description}}
|
|
13
|
+
|
|
14
|
+
## 输出要求
|
|
15
|
+
|
|
16
|
+
1. 先给出节点清单(节点类型、输入、输出变量)
|
|
17
|
+
2. 再给出连线关系(上游→下游,条件分支需标注 True/False)
|
|
18
|
+
3. 明确每个代码节点应写入哪个文件(`节点/<名>/code.sql|py`)
|
|
19
|
+
4. 给出最短执行命令链(拉取/测试/提交)
|
|
20
|
+
|
|
21
|
+
## 命令与环境约束(必须遵守)
|
|
22
|
+
|
|
23
|
+
- 默认在 **`dazi-work` 根目录**执行,命令前缀统一:`.\scripts\dazi.ps1 flow ...`
|
|
24
|
+
- 进入流程目录后可继续带 `--dir .`,不要省略关键参数
|
|
25
|
+
- `flow.json` 是画布与配置真理源;`节点/<名>/code.*` 是代码真理源
|
|
26
|
+
- 修改拓扑/连线/节点配置后,必须 `flow project push --dir . --canvas`
|
|
27
|
+
- 禁止使用裸 `dazi-flow ...` 作为最终交付命令
|
|
28
|
+
|
|
29
|
+
## 常见节点类型(按业务类型 data.type)
|
|
30
|
+
|
|
31
|
+
> **完整节点清单与配置说明**见帮助文档 [flow/flows-guide §流程节点组件](../docs/flow/flows-guide.md#流程节点组件),或流程目录 **快速启动_<流程名>.md §可用流程节点**。
|
|
32
|
+
|
|
33
|
+
| 节点类型 | 说明 |
|
|
34
|
+
|---------|------|
|
|
35
|
+
| `excel-import` / `excel-python` | Excel:**有 `managed_file_id` 时优先 `excel-python`**(勿用 `file-source`);极简单单 Sheet 才用 `excel-import` |
|
|
36
|
+
| `database-source` / `dataspace-source` | 外部库 / 数据空间 SQL 读取,产出表变量 |
|
|
37
|
+
| `sql-query` | 消费上游变量(变量名即 SQL 表名) |
|
|
38
|
+
| `python-script` | Python 转换,输出 `result_df` |
|
|
39
|
+
| `condition` | 条件分支,出边使用 `true/false` |
|
|
40
|
+
| `data-quality-check` | 数据质量检查 |
|
|
41
|
+
| `database-sink` / `dataspace-sink` | 写出到外部库 / 数据空间(通常无 `code.*`) |
|
|
42
|
+
| `file-source` / `delay` / `folder-resource-*` | 文件输入、延时、文件夹资源 |
|
|
43
|
+
|
|
44
|
+
## 推荐开发流程(流程项目)
|
|
45
|
+
|
|
46
|
+
```powershell
|
|
47
|
+
# 1) 拉取/同步到本地流程目录
|
|
48
|
+
.\scripts\dazi.ps1 flow project pull --flow <flow_id> --dir "项目\flow_xxx\流程\<流程名>"
|
|
49
|
+
|
|
50
|
+
# 2) 若需新增节点(不要伪造 uuid)
|
|
51
|
+
.\scripts\dazi.ps1 flow node new --type <node_type> --dir . --label "<节点名>"
|
|
52
|
+
|
|
53
|
+
# 3) 修改 flow.json(节点配置与连线)+ 修改 节点/<名>/code.*
|
|
54
|
+
|
|
55
|
+
# 4) 单节点测试
|
|
56
|
+
.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .
|
|
57
|
+
|
|
58
|
+
# 5) 提交(代码可用 node push;拓扑/配置变更必须 canvas push)
|
|
59
|
+
.\scripts\dazi.ps1 flow node push --node <node_uuid> --dir .
|
|
60
|
+
.\scripts\dazi.ps1 flow project push --dir . --canvas
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 一致性检查(回答末尾必须自检)
|
|
64
|
+
|
|
65
|
+
1. 是否同时说明了画布变更与代码变更
|
|
66
|
+
2. 是否区分 `node_uuid`(测试/提交)与语义 `nodeId`(画布 id)
|
|
67
|
+
3. 是否包含 `output_variable_name` 的来源与去向
|
|
68
|
+
4. 是否避免将 SQL/Python 正文嵌入 `flow.json`
|
|
69
|
+
|
|
70
|
+
## 设计完成后的验证(Agent 必做)
|
|
71
|
+
|
|
72
|
+
设计/改代码**不能**只交付文件清单;必须进入 **改错循环**(详见 `flow/run-fix-loop` 与流程目录 `快速启动_<流程名>.md` §AI 自主运行与改错闭环):
|
|
73
|
+
|
|
74
|
+
1. 对每个代码节点执行 `node-exec`;必要时整流程 `flow-exec --type debug`
|
|
75
|
+
2. 失败时读取 `_run/*.last-error.md`,按错误分类修复后重跑(默认最多 3 轮)
|
|
76
|
+
3. 全部通过后再 `node push` / `project push --canvas`
|
|
77
|
+
4. **禁止**未实际运行就声称「设计已完成/已通过」
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 提示词:执行计划生成(项目态)
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `flow/plan-generate`
|
|
4
|
+
**场景**: 基于流程项目上下文生成可执行的运行/改造计划
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
请根据以下 Flow 引导信息和输入参数,分析执行计划,并输出“能直接落地”的操作步骤。
|
|
9
|
+
|
|
10
|
+
## Flow 结构
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
{{llm_guide_content}}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 输入参数
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{{input_params}}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 要求
|
|
23
|
+
|
|
24
|
+
1. 分析每个节点的执行顺序
|
|
25
|
+
2. 预估数据量和执行时间
|
|
26
|
+
3. 识别潜在的瓶颈节点
|
|
27
|
+
4. 给出优化建议(拆成:画布改造 / 代码改造 / 运行策略)
|
|
28
|
+
5. 若包含节点新增或连线调整,给出具体修改位置与命令
|
|
29
|
+
|
|
30
|
+
## 命令约束(必须遵守)
|
|
31
|
+
|
|
32
|
+
- 命令前缀统一:`.\scripts\dazi.ps1 flow ...`(在 `dazi-work` 根)
|
|
33
|
+
- 在流程目录执行时,命令建议显式带 `--dir .`
|
|
34
|
+
- 禁止输出裸 `dazi-flow ...` 作为最终交付命令
|
|
35
|
+
|
|
36
|
+
## 计划落地命令模板(按需引用)
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
# 查看当前状态
|
|
40
|
+
.\scripts\dazi.ps1 flow project status --dir .
|
|
41
|
+
|
|
42
|
+
# 新增节点(若需要)
|
|
43
|
+
.\scripts\dazi.ps1 flow node new --type <node_type> --dir . --label "<节点名>"
|
|
44
|
+
|
|
45
|
+
# 单节点验证
|
|
46
|
+
.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .
|
|
47
|
+
|
|
48
|
+
# 整流程验证
|
|
49
|
+
.\scripts\dazi.ps1 flow run flow-exec --dir . --type debug
|
|
50
|
+
|
|
51
|
+
# 提交(改画布/配置时必须 canvas)
|
|
52
|
+
.\scripts\dazi.ps1 flow node push --node <node_uuid> --dir .
|
|
53
|
+
.\scripts\dazi.ps1 flow project push --dir . --canvas
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 回答格式要求
|
|
57
|
+
|
|
58
|
+
1. **执行顺序图**:节点顺序与关键输入输出变量
|
|
59
|
+
2. **风险点**:数据量、连接、字段一致性、上游依赖
|
|
60
|
+
3. **改造步骤**:每步写清“改文件 + 跑命令 + 验证点”
|
|
61
|
+
4. **一致性检查**:是否同时覆盖 `flow.json` 与 `节点/<名>/code.*`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 提示词:Run 调试分析(项目态)
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `flow/run-debug`
|
|
4
|
+
**场景**: 分析流程项目运行失败,并给出可执行修复步骤
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
以下是搭子 Flow 运行的调试信息,请分析失败原因并给出修复建议。
|
|
9
|
+
默认上下文是 `项目/flow_*/流程/<流程名>/` 的流程目录。
|
|
10
|
+
|
|
11
|
+
## 调试输出
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
{{debug_output}}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
> 若用户未粘贴输出:AI **应主动读取** `_run/*.last-error.md`、`_run/flow.last-run.md`(及 `变量/` 下 schema),必要时自行执行 `.\scripts\dazi.ps1 flow run ...` 复现;Agent 模式见 `flow/run-fix-loop`。
|
|
18
|
+
|
|
19
|
+
## 分析要求
|
|
20
|
+
|
|
21
|
+
1. 找出**失败节点**及其错误信息
|
|
22
|
+
2. 分析**根本原因**(数据问题/配置问题/代码问题)
|
|
23
|
+
3. 给出**具体修复步骤**(按“改哪里 + 跑什么命令 + 如何验证”)
|
|
24
|
+
4. 如果是脚本错误,提供修复后的代码
|
|
25
|
+
5. 若涉及画布/连线/节点配置,明确要求 `flow project push --canvas`
|
|
26
|
+
|
|
27
|
+
## 常见问题类型
|
|
28
|
+
|
|
29
|
+
| 症状 | 可能原因 |
|
|
30
|
+
|------|---------|
|
|
31
|
+
| `KeyError` | 字段名不一致,检查上游变量 schema(`变量/<name>.json`) |
|
|
32
|
+
| `TypeError` | 数据类型不符,检查字段类型 |
|
|
33
|
+
| `ConnectionError` | 数据源连接失败,检查数据源配置 |
|
|
34
|
+
| `PermissionError` | 缺少权限,检查登录状态与权限 |
|
|
35
|
+
| 节点超时 | 数据量过大或查询未优化 |
|
|
36
|
+
| 上游变量缺失 | 未先运行上游节点或整流程 |
|
|
37
|
+
|
|
38
|
+
## 命令约束(必须遵守)
|
|
39
|
+
|
|
40
|
+
- 命令前缀统一:`.\scripts\dazi.ps1 flow ...`(在 `dazi-work` 根)
|
|
41
|
+
- 在流程目录执行时,保留 `--dir .`,避免误跑到其他流程
|
|
42
|
+
- 禁止输出裸 `dazi-flow ...` 作为最终命令
|
|
43
|
+
|
|
44
|
+
## 重新运行
|
|
45
|
+
|
|
46
|
+
分析完成后,**必须给出可执行的修复与重跑命令**;若用户委托 Agent 模式,应进入改错循环(见 `flow/run-fix-loop`)。
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
# 仅重测失败节点(优先)
|
|
50
|
+
.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .
|
|
51
|
+
|
|
52
|
+
# 整流程回归(必要时)
|
|
53
|
+
.\scripts\dazi.ps1 flow run flow-exec --dir . --type debug
|
|
54
|
+
|
|
55
|
+
# 拉取变量确认修复效果
|
|
56
|
+
.\scripts\dazi.ps1 flow variable pull --name <output_variable_name> --dir .
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 回答格式要求
|
|
60
|
+
|
|
61
|
+
1. **失败点**:节点名 / node_uuid / 关键报错
|
|
62
|
+
2. **修复动作**:改 `flow.json` 还是改 `节点/<名>/code.*`
|
|
63
|
+
3. **执行命令**:按顺序给出可直接复制的命令
|
|
64
|
+
4. **提交动作**:
|
|
65
|
+
- 只改代码:`.\scripts\dazi.ps1 flow node push --node <node_uuid> --dir .`
|
|
66
|
+
- 改了拓扑或节点配置:`.\scripts\dazi.ps1 flow project push --dir . --canvas`
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 提示词:Flow 自主运行与改错(Agent)
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `flow/run-fix-loop`
|
|
4
|
+
**场景**: AI 在流程项目中**自行运行、发现错误、修复并重试**,直到通过或达到上限
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是搭子平台流程开发 Agent。用户已委托你修改/调试 `项目/flow_*/流程/<名>/` 下的流程。
|
|
9
|
+
|
|
10
|
+
## 核心原则
|
|
11
|
+
|
|
12
|
+
1. **扩展不会自动改代码**;你必须在终端**亲自执行** CLI 并读取 `_run/` 错误文件。
|
|
13
|
+
2. **改 → 跑 → 读错 → 再改 → 再跑** 是默认工作方式,不是可选项。
|
|
14
|
+
3. 命令前缀统一:`.\scripts\dazi.ps1 flow ...`(在 `dazi-work` 根;流程目录用 `--dir .`)。
|
|
15
|
+
|
|
16
|
+
## 命令约束(必须遵守)
|
|
17
|
+
|
|
18
|
+
- 命令前缀统一:`.\scripts\dazi.ps1 flow ...`(在 `dazi-work` 根)
|
|
19
|
+
- 在流程目录执行时,保留 `--dir .`,避免误跑到其他流程
|
|
20
|
+
- 禁止输出裸 `dazi-flow ...` 作为最终命令
|
|
21
|
+
|
|
22
|
+
## 错误发现(跑完必做)
|
|
23
|
+
|
|
24
|
+
| 运行 | 失败时必读 | 步骤/日志 |
|
|
25
|
+
|------|------------|-----------|
|
|
26
|
+
| `.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .` | `_run/<节点名>.last-error.md` | — |
|
|
27
|
+
| `.\scripts\dazi.ps1 flow run flow-exec --dir . --type debug` | `_run/flow.last-error.md` | `_run/flow.last-run.md` |
|
|
28
|
+
|
|
29
|
+
带 `--json` 时同时检查:`success: false`、`errorFile` 路径。
|
|
30
|
+
|
|
31
|
+
`last-error.md` 含:**错误分类**(缺上游变量/配置缺失/代码错误/连接数据源)、traceback、修复指引。
|
|
32
|
+
|
|
33
|
+
## 改错循环(默认最多 3 轮)
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
FOR round = 1..3:
|
|
37
|
+
1. 读 flow.json + code.* +(若失败)last-error.md + 变量/<名>.json(如需列名)
|
|
38
|
+
2. 修改 code.* 和/或 flow.json(遵守画布锚点规范)
|
|
39
|
+
3. 运行验证:
|
|
40
|
+
- 优先单节点:
|
|
41
|
+
.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .
|
|
42
|
+
- 需要全链路时:
|
|
43
|
+
.\scripts\dazi.ps1 flow run flow-exec --dir . --type debug
|
|
44
|
+
4. IF 成功 → push(见下)→ 结束
|
|
45
|
+
ELSE → 读新生成的 last-error.md → 下一轮
|
|
46
|
+
5. IF round==3 仍失败 → 输出:失败节点、3 轮尝试摘要、剩余疑点、需用户提供的资料
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 修复决策树
|
|
50
|
+
|
|
51
|
+
| 错误分类 | 改哪里 | 验证命令 |
|
|
52
|
+
|----------|--------|----------|
|
|
53
|
+
| 缺上游变量 | 先跑上游或整流程 | `.\scripts\dazi.ps1 flow run flow-exec --dir . --type debug`,再 `.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .` |
|
|
54
|
+
| 配置缺失 | `flow.json` 节点 `data` | `.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .` → `.\scripts\dazi.ps1 flow project push --dir . --canvas` |
|
|
55
|
+
| 代码错误 | `节点/<名>/code.sql\|py` | `.\scripts\dazi.ps1 flow run node-exec --node <node_uuid> --dir .` → `.\scripts\dazi.ps1 flow node push --node <node_uuid> --dir .` |
|
|
56
|
+
| 连接/数据源 | connectionId / spaceId | 改配置后 `.\scripts\dazi.ps1 flow project push --dir . --canvas` |
|
|
57
|
+
|
|
58
|
+
## 提交规则
|
|
59
|
+
|
|
60
|
+
- 只改代码:`.\scripts\dazi.ps1 flow node push --node <node_uuid> --dir .`
|
|
61
|
+
- 改连线/配置/增删节点:`.\scripts\dazi.ps1 flow project push --dir . --canvas`
|
|
62
|
+
- 确认变量 schema:`.\scripts\dazi.ps1 flow variable pull --name <output_variable_name> --dir .`
|
|
63
|
+
- **禁止**未验证通过就 push
|
|
64
|
+
|
|
65
|
+
## 回答格式(每轮结束后)
|
|
66
|
+
|
|
67
|
+
1. **本轮运行**:命令 + 成功/失败
|
|
68
|
+
2. **若失败**:节点、错误分类、根因(引用 last-error 原文)
|
|
69
|
+
3. **本轮修改**:改了哪些文件、改了什么
|
|
70
|
+
4. **下一步**:重跑命令或已 push
|
|
71
|
+
|
|
72
|
+
## 禁止项
|
|
73
|
+
|
|
74
|
+
- 未运行就声称修复完成
|
|
75
|
+
- 不读 `_run/*.last-error.md` 就猜原因
|
|
76
|
+
- 使用裸 `dazi-flow` 作为最终命令
|
|
77
|
+
- 把代码正文塞进 `flow.json`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 提示词:询问搭子平台
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `general/ask-dazi`
|
|
4
|
+
**场景**: 通用搭子平台问题咨询
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是一名搭子(Dazi)平台专家,熟悉以下所有模块:
|
|
9
|
+
|
|
10
|
+
- **`.\scripts\dazi.ps1 onto`**:本体管理(函数、动作、规则、脚本)
|
|
11
|
+
- **`.\scripts\dazi.ps1 flow`**:数据流程(Flow 创建、运行、调试)
|
|
12
|
+
- **`pnpm run dazi-app --`**(`runtime-apps`):前端应用(Vue 3 应用开发、发布)
|
|
13
|
+
- **`.\scripts\dazi.ps1 data`**:数据资源(数据空间、数据表、数据集)
|
|
14
|
+
- **`.\scripts\dazi.ps1 auth`**:认证管理
|
|
15
|
+
- **`.\scripts\dazi.ps1 migrate`**:迁移工具
|
|
16
|
+
|
|
17
|
+
## 用户问题
|
|
18
|
+
|
|
19
|
+
{{user_question}}
|
|
20
|
+
|
|
21
|
+
## 回答要求
|
|
22
|
+
|
|
23
|
+
1. 给出**直接可执行的命令**(优先 CLI 命令)
|
|
24
|
+
2. 如果需要多步操作,给出**有序步骤**
|
|
25
|
+
3. 指出相关**文档链接**(使用文档 ID 格式:`docs/<id>`)
|
|
26
|
+
4. 如果问题涉及代码,给出**最小可运行示例**
|
|
27
|
+
|
|
28
|
+
## 平台文档索引
|
|
29
|
+
|
|
30
|
+
可通过 `.\scripts\dazi.ps1 docs list` 查看所有文档,`.\scripts\dazi.ps1 docs open <id>` 打开。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 提示词:搭子脚本代码审查
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `general/code-review`
|
|
4
|
+
**场景**: 审查本体函数/脚本代码
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
请审查以下搭子平台脚本代码,检查问题并给出改进建议。
|
|
9
|
+
|
|
10
|
+
## 代码
|
|
11
|
+
|
|
12
|
+
```python
|
|
13
|
+
{{script_code}}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 审查维度
|
|
17
|
+
|
|
18
|
+
1. **功能正确性**:逻辑是否符合预期
|
|
19
|
+
2. **错误处理**:是否有足够的 try/except
|
|
20
|
+
3. **性能**:是否有 N+1 查询或低效循环
|
|
21
|
+
4. **可读性**:命名、注释是否清晰
|
|
22
|
+
5. **搭子规范**:
|
|
23
|
+
- 是否正确使用 `params` 和 `s` 上下文
|
|
24
|
+
- 返回值格式是否符合约定 `{"result": ...}`
|
|
25
|
+
- 是否处理了 `s` 为 None 的情况(本地测试)
|
|
26
|
+
|
|
27
|
+
## 输出格式
|
|
28
|
+
|
|
29
|
+
- **问题列表**(按严重程度排序)
|
|
30
|
+
- **修复后的代码**
|
|
31
|
+
- **发布命令**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 提示词:问题排查
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `general/troubleshoot`
|
|
4
|
+
**场景**: 分析搭子平台错误
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
以下是遇到的错误,请帮助排查。
|
|
9
|
+
|
|
10
|
+
## 错误信息
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
{{error_message}}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 环境信息
|
|
17
|
+
|
|
18
|
+
```powershell
|
|
19
|
+
# 在 dazi-work 根目录运行
|
|
20
|
+
.\scripts\doctor-cli.ps1
|
|
21
|
+
.\scripts\dazi.ps1 doctor
|
|
22
|
+
.\scripts\dazi.ps1 env
|
|
23
|
+
.\scripts\dazi.ps1 auth whoami
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
环境输出:
|
|
27
|
+
```
|
|
28
|
+
{{env_output}}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 排查步骤
|
|
32
|
+
|
|
33
|
+
请按以下顺序排查:
|
|
34
|
+
|
|
35
|
+
1. **认证问题**:401/403 错误
|
|
36
|
+
2. **网络问题**:连接超时/DNS 解析失败
|
|
37
|
+
3. **配置问题**:`dazi.serverUrl` / `DAZI_BASE_URL` 配置错误
|
|
38
|
+
4. **版本问题**:CLI 与平台 API 版本不兼容
|
|
39
|
+
5. **权限问题**:空间/资源访问权限不足
|
|
40
|
+
|
|
41
|
+
给出具体的修复命令和步骤。
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "3.0.0-beta.3",
|
|
3
|
+
"updatedAt": "2026-05-26T00:00:00.000Z",
|
|
4
|
+
"prompts": [
|
|
5
|
+
{ "id": "onto/script-publish-run", "title": "本体脚本发布与运行(TRAE/智能体)", "category": "onto", "file": "onto/script-publish-run.md" },
|
|
6
|
+
{ "id": "onto/function-design", "title": "本体函数设计", "category": "onto", "file": "onto/function-design.md" },
|
|
7
|
+
{ "id": "onto/action-design", "title": "本体动作(Action)设计", "category": "onto", "file": "onto/action-design.md" },
|
|
8
|
+
{ "id": "onto/rule-seed", "title": "规则种子脚本", "category": "onto", "file": "onto/rule-seed.md" },
|
|
9
|
+
{ "id": "flow/flow-design", "title": "Flow 设计", "category": "flow", "file": "flow/flow-design.md", "featured": true },
|
|
10
|
+
{ "id": "flow/run-debug", "title": "Run 调试分析", "category": "flow", "file": "flow/run-debug.md" },
|
|
11
|
+
{ "id": "flow/run-fix-loop", "title": "Flow 自主运行改错", "category": "flow", "file": "flow/run-fix-loop.md", "featured": true },
|
|
12
|
+
{ "id": "flow/plan-generate", "title": "执行计划生成", "category": "flow", "file": "flow/plan-generate.md" },
|
|
13
|
+
{ "id": "app/ui-design", "title": "搭子 App UI 设计", "category": "app", "file": "app/ui-design.md" },
|
|
14
|
+
{ "id": "data/data-analysis", "title": "数据分析", "category": "data", "file": "data/data-analysis.md" },
|
|
15
|
+
{ "id": "data/sql-query", "title": "SQL 查询生成", "category": "data", "file": "data/sql-query.md" },
|
|
16
|
+
{ "id": "general/ask-dazi", "title": "询问搭子平台", "category": "general", "file": "general/ask-dazi.md" },
|
|
17
|
+
{ "id": "general/troubleshoot", "title": "问题排查", "category": "general", "file": "general/troubleshoot.md" },
|
|
18
|
+
{ "id": "general/code-review", "title": "搭子脚本代码审查", "category": "general", "file": "general/code-review.md" }
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# 提示词:本体动作设计
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `onto/action-design`
|
|
4
|
+
**场景**: 设计 Action(可被外部触发的写操作)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是一名搭子平台本体工程师。请根据以下需求设计一个本体动作(ontology action)。
|
|
9
|
+
|
|
10
|
+
## 动作需求
|
|
11
|
+
|
|
12
|
+
{{action_description}}
|
|
13
|
+
|
|
14
|
+
## Action 特点
|
|
15
|
+
|
|
16
|
+
- **写操作**:Action 通常执行写入、更新、触发等操作
|
|
17
|
+
- **权限标签**:需要指定 `permissionTag`(如 `finance.write`)
|
|
18
|
+
- **上下文**:可访问触发者信息(`context.user_id`、`context.org_id`)
|
|
19
|
+
|
|
20
|
+
## 函数模板
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
def main(params: dict, context: dict, s=None) -> dict:
|
|
24
|
+
"""
|
|
25
|
+
[动作说明]
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
params: 动作参数
|
|
29
|
+
context: 触发上下文(user_id, org_id, permission_tags 等)
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
{"status": "ok", ...}
|
|
33
|
+
"""
|
|
34
|
+
# 权限检查(可选)
|
|
35
|
+
if "finance.write" not in context.get("permission_tags", []):
|
|
36
|
+
raise PermissionError("缺少 finance.write 权限")
|
|
37
|
+
|
|
38
|
+
# 执行写操作
|
|
39
|
+
|
|
40
|
+
return {"status": "ok"}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
发布命令(v3;**勿用** `dazi-onto`):
|
|
44
|
+
```powershell
|
|
45
|
+
.\scripts\dazi.ps1 onto script publish 项目/onto_<名>/脚本/<file>.py --space <space-id> --register-action-id <action_code> --register-action-permission-tag "finance.write"
|
|
46
|
+
```
|
|
47
|
+
详见提示词 `onto/script-publish-run`。
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# 提示词:本体函数设计
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `onto/function-design`
|
|
4
|
+
**场景**: 设计新的本体函数
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是一名搭子平台本体工程师。请根据以下需求设计一个本体函数(ontology function)。
|
|
9
|
+
|
|
10
|
+
## 函数需求
|
|
11
|
+
|
|
12
|
+
{{function_description}}
|
|
13
|
+
|
|
14
|
+
## 要求
|
|
15
|
+
|
|
16
|
+
1. 函数名使用 snake_case,以动词开头(如 `calc_balance`、`get_user_info`)
|
|
17
|
+
2. `main(params: dict) -> dict` 为入口函数
|
|
18
|
+
3. 参数通过 `params` 字典传入,输出通过 return 返回
|
|
19
|
+
4. 包含完整的 docstring(中文),说明:函数目的、参数说明、返回值说明
|
|
20
|
+
5. 包含基本的错误处理(try/except)
|
|
21
|
+
6. 引用的搭子数据空间对象通过 `s` 上下文访问
|
|
22
|
+
|
|
23
|
+
## 输出格式
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
def main(params: dict, s=None) -> dict:
|
|
27
|
+
"""
|
|
28
|
+
[函数说明]
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
params: 包含 xxx(说明)
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
包含 xxx(说明)
|
|
35
|
+
"""
|
|
36
|
+
# 实现
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
发布与运行(v3,工作区根目录;**勿用** `dazi-onto`):
|
|
40
|
+
```powershell
|
|
41
|
+
.\scripts\dazi.ps1 onto script publish 项目/onto_<名>/脚本/functions/<file>.py --space <space-id> --register-function-id <id>
|
|
42
|
+
.\scripts\dazi.ps1 onto function run <id> --space <space-id>
|
|
43
|
+
```
|
|
44
|
+
详见提示词 `onto/script-publish-run`(侧栏 帮助 → 提示词)。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 提示词:规则种子脚本
|
|
2
|
+
|
|
3
|
+
**提示词 ID**: `onto/rule-seed`
|
|
4
|
+
**场景**: 编写规则种子脚本
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
请为以下业务规则编写搭子规则种子脚本:
|
|
9
|
+
|
|
10
|
+
## 规则需求
|
|
11
|
+
|
|
12
|
+
{{rule_description}}
|
|
13
|
+
|
|
14
|
+
## 种子脚本模板
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
def main(params: dict, s=None) -> dict:
|
|
18
|
+
"""
|
|
19
|
+
规则种子:[规则集名称]
|
|
20
|
+
写入 ads_ontology_rules 表。
|
|
21
|
+
"""
|
|
22
|
+
rules = [
|
|
23
|
+
{
|
|
24
|
+
"code": "rule_001", # 规则唯一编码
|
|
25
|
+
"name": "规则名称", # 人类可读名称
|
|
26
|
+
"rule_set": "my_rule_set", # 规则集(相关规则分组)
|
|
27
|
+
"expression": "x > 0", # 规则表达式(可选)
|
|
28
|
+
"description": "规则描述",
|
|
29
|
+
"metadata": {}
|
|
30
|
+
},
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
result = s.ontology_rules.upsert(rules)
|
|
34
|
+
return {"upserted": len(rules), "result": result}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
执行命令(v3;**勿用** `dazi-onto`):
|
|
38
|
+
```powershell
|
|
39
|
+
.\scripts\dazi.ps1 onto rule run-seed --space <space-id> --stem <seed_file_stem>
|
|
40
|
+
```
|
|
41
|
+
详见提示词 `onto/script-publish-run`。
|