ae-engage
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseae-engage
ae-engage
AE CLI () is the command-line tool for the ThinkingEngine data analysis platform, used by AI Agents and human users.
ae-cliAE CLI()是ThinkingEngine数据分析平台的命令行工具,供AI Agents和人类用户使用。
ae-cliGlobal AE CLI Rules
全局AE CLI规则
AE CLI () is the command-line tool for the AE / TE / ThinkingEngine analysis platform. For AE analysis-side requests, prefer and this skill's reference docs over model memory.
ae-cliae-cliGlobal parameters:
| Parameter | Description |
|---|---|
| Output format. Default is JSON. |
| jq filter expression for JSON output. |
| Override the active AE host. Available on every command and may be placed after the subcommand, e.g. |
Output and errors:
- Successful commands return machine-readable JSON by default. Envelope may include optional .
_notice.host_compat - Failed commands return and exit non-zero.
{ "ok": false, "error": { "type": "...", "message": "...", "hint": "..." } } - CRITICAL — Host compat (do this first): After each run, check stderr and
ae-cli. If either is present, open the user reply with a short ⚠️ version warning and quote the_notice.host_compat/npm i -g(or update-cluster) lines verbatim, then present the business result. Soft tip;npx skills addcan still carry the notice.ok: true
Safety constraints:
- Read commands can execute directly after required IDs and references are verified.
- Write commands require explicit user intent. Ordinary commands execute without CLI confirmation; only
writecommands use the confirmation gate.high-risk-write - Never invent command names, flags, JSON payloads, , resource IDs, field names, event names, property names, metric definitions, or date formats. Read the matching command reference and discover real project metadata first.
project_id - NEVER fabricate or guess resource names (reports, dashboards, events, properties, metrics, clusters, tags, alerts). Always use list commands to discover real resources first. If a resource is not found after fuzzy search and full list fallback, explicitly tell the user "resource not found" and stop - do not proceed with fabricated names.
AE CLI()是AE / TE / ThinkingEngine分析平台的命令行工具。对于AE分析侧的请求,优先使用和本技能的参考文档,而非模型记忆。
ae-cliae-cli全局参数:
| 参数 | 描述 |
|---|---|
| 输出格式,默认值为JSON。 |
| 用于JSON输出的jq过滤表达式。 |
| 覆盖当前激活的AE主机地址。可用于所有命令,且可放在子命令之后,例如 |
输出与错误处理:
- 成功执行的命令默认返回机器可读的JSON格式,返回结果中可能包含可选的字段。
_notice.host_compat - 执行失败的命令返回 并返回非零退出码。
{ "ok": false, "error": { "type": "...", "message": "...", "hint": "..." } } - 关键注意事项 — 主机兼容性(优先处理):每次执行后,检查标准错误输出和
ae-cli字段。如果其中任一存在,在用户回复开头添加简短的⚠️版本警告,并逐字引用_notice.host_compat/npm i -g(或update-cluster)命令,之后再展示业务结果。即使npx skills add也可能携带该通知,需软提示用户。ok: true
安全约束:
- 读取类命令在验证所需ID和引用信息无误后可直接执行。
- 写入类命令需要明确的用户意图。普通命令无需CLI确认即可执行;仅
write命令需要确认环节。high-risk-write - 禁止自行编造命令名称、标志、JSON负载、、资源ID、字段名、事件名、属性名、指标定义或日期格式。需先查阅匹配的命令参考文档并获取真实的项目元数据。
project_id - 绝对禁止编造或猜测资源名称(报表、仪表盘、事件、属性、指标、集群、标签、告警)。必须先使用列表命令发现真实资源。如果模糊搜索和全量列表查询后仍未找到资源,需明确告知用户“资源未找到”并停止操作,不得使用编造的名称继续执行。
Overview
概述
The package provides Hermes Engage capabilities across config items, flows, channel settings, task data, and query lifecycle. Use capability-gateway commands through ; low-frequency reports use the L3 references below.
ae-engageae-cli engage-flow|engage-task|engage-setting|engage-scene|engage-query <resource> <action>Typical use cases include:
- Querying and managing channels, config channels, approvers, and whitelists
- Querying project channel touch-limit or fatigue-control rules
- Querying task lists, task details, experiment reports, and metric reports
- Querying config items and strategies, copying templates, and managing strategy status
- Querying flow lists, node schemas, and flow reports, and saving or managing flows
ae-engageae-cli engage-flow|engage-task|engage-setting|engage-scene|engage-query <resource> <action>典型使用场景包括:
- 查询和管理渠道、配置渠道、审批人以及白名单
- 查询项目渠道触达限制或疲劳控制规则
- 查询任务列表、任务详情、实验报告以及指标报告
- 查询配置项和策略、复制模板以及管理策略状态
- 查询流程列表、节点 schema 以及流程报表,保存或管理流程
Keyword Routing
关键词路由
When the user mentions a product term below (including common Chinese UI labels), open the listed reference(s) first — do not guess commands or IDs.
| Keyword | Product meaning | CLI domain | Primary reference | Related references |
|---|---|---|---|---|
| Config center | Engage scene management / config center overview | | | |
| Scene config | Same as config center; params, groups, metrics, channels, strategies, and templates under a config item | | | Same as above; params/groups/metrics: |
| Config item | A single config item in the config center | | | |
| Push channel | Project-level message push channels (Webhook, FCM, APNS, etc.) | | | |
| Config channel | Config-center Webhook/client config channels (not the same as push channels) | | | |
| Operation strategy | Ops/delivery strategies under a config item | | | Custom audience: |
| Operation task | Hermes push/engagement tasks (list, save, lifecycle, reports) | | | |
| Operation activity | Campaign activity management and delivery trends by activity, topic, or standalone task | | | |
| Template | Strategy templates under a config item | | | |
Easy to confuse:
- Push channel → (Hermes push channel settings)
ae-cli engage-setting channel … - Config channel → (config-center channels; see
ae-cli engage-scene config-channel …)channel-mgmt.md - Flow / Task canvas nodes use from push channels; config items bind
channelIdfrom config channelschannel_id
当用户提及以下产品术语(包括常见中文UI标签)时,优先打开对应的参考文档,不得猜测命令或ID。
| 关键词 | 产品含义 | CLI 域 | 主参考文档 | 相关参考文档 |
|---|---|---|---|---|
| 配置中心 | Engage场景管理 / 配置中心概览 | | | |
| 场景配置 | 与配置中心含义相同;包含某一配置项下的参数、分组、指标、渠道、策略和模板 | | | 同上;参数/分组/指标参考: |
| 配置项 | 配置中心中的单个配置项 | | | |
| 推送渠道 | 项目级消息推送渠道(Webhook、FCM、APNS等) | | | |
| 配置渠道 | 配置中心的Webhook/client配置渠道(与推送渠道不同) | | | |
| 运营策略 | 配置项下的运营/投放策略 | | | 自定义受众: |
| 运营任务 | Hermes推送/触达任务(列表、保存、生命周期、报表) | | | |
| 运营活动 | 营销活动管理,以及按活动、主题或独立任务统计的投放趋势 | | | |
| 模板 | 配置项下的策略模板 | | | |
易混淆点:
- 推送渠道 → (Hermes推送渠道设置)
ae-cli engage-setting channel … - 配置渠道 → (配置中心渠道;参考
ae-cli engage-scene config-channel …)channel-mgmt.md - 流程/任务画布节点使用推送渠道的;配置项绑定配置渠道的
channelIdchannel_id
Parameter Conventions
参数约定
- Use regular flags for simple parameters, for example ,
--project-id, and--task-id--flow-uuid - Use JSON flags for array parameters, for example
--strategy-uuid-list '["id1","id2"]' - Use named JSON flags for object parameters, for example and
--req '{...}'--flow-list '[...]' - Optional global parameters work the same way as in other domains, for example ,
--host, and--mcp-url--dry-run
Naming boundary:
- CLI flags use kebab-case; outer Capability input and all Capability response keys use snake_case.
- Nested business DTOs passed through or
--reqkeep their documented native camelCase fields. Do not mechanically convert those nested DTO keys to snake_case.--payload - Semantic audience, event, trigger, completion, and metric definitions are closed contracts. The CLI rejects malformed or unknown semantic fields locally; applies the same precise Hermes capability schema without writing.
--validate - Successful migrated commands return their business payload under ; read the matching reference's Response shape before selecting fields.
data
- 简单参数使用常规标志,例如,
--project-id,--task-id--flow-uuid - 数组参数使用JSON标志,例如
--strategy-uuid-list '["id1","id2"]' - 对象参数使用命名JSON标志,例如和
--req '{...}'--flow-list '[...]' - 可选全局参数的使用方式与其他域一致,例如,
--host,--mcp-url--dry-run
命名边界:
- CLI标志使用短横线分隔式(kebab-case);外部能力输入和所有能力响应键使用下划线分隔式(snake_case)。
- 通过或
--req传递的嵌套业务DTO保留其文档中定义的原生驼峰式(camelCase)字段,不得机械地将这些嵌套DTO的键转换为snake_case。--payload - 语义化受众、事件、触发、完成和指标定义是封闭契约。CLI会在本地拒绝格式错误或未知的语义字段;会应用相同的精确Hermes能力schema,且不会执行写入操作。
--validate - 成功迁移的命令会在字段下返回业务负载;在选择字段前需查阅匹配参考文档的响应结构。
data
JSON Parameter Format
JSON参数格式
Common JSON flag examples:
bash
--provider-list '["webhook","fcm"]'
--strategy-uuid-list '["strategy_a","strategy_b"]'
--flow-id-list '["flow_1","flow_2"]'
--req '{"pageNum":1,"pageSize":20}'常见JSON标志示例:
bash
--provider-list '["webhook","fcm"]'
--strategy-uuid-list '["strategy_a","strategy_b"]'
--flow-id-list '["flow_1","flow_2"]'
--req '{"pageNum":1,"pageSize":20}'Common Scenarios
常见场景
1. setting
1. setting(设置)
bash
undefinedbash
undefinedQuery the channel list
查询渠道列表
ae-cli engage-setting channel list --project-id 1
ae-cli engage-setting channel list --project-id 1
Filter by provider
按渠道提供商过滤
ae-cli engage-setting channel list --project-id 1 --provider-list '["webhook","fcm"]'
ae-cli engage-setting channel list --project-id 1 --provider-list '["webhook","fcm"]'
Query config channels (config center channel management — use engage-scene, not legacy +config_channel_*)
查询配置渠道(配置中心渠道管理 — 使用engage-scene,而非旧版+config_channel_*命令)
ae-cli engage-scene config-channel list --project-id 1 --channel-type 0
ae-cli engage-scene config-channel list --project-id 1 --channel-type 0
Query project channel touch-limit rules
查询项目渠道触达限制规则
ae-cli engage-setting channel-touch-limits list --project-id <project_id>
ae-cli engage-setting channel-touch-limits list --project-id <project_id>
Update a channel's config / reach-funnel settings
更新渠道配置 / 触达漏斗设置
ae-cli engage-setting channel update-config --project-id <project_id> --channel-id <channel_id> --enable-touch-event 1
ae-cli engage-setting channel update-config --project-id <project_id> --channel-id <channel_id> --enable-touch-event 1
Send a test message to a channel
向渠道发送测试消息
ae-cli engage-setting channel test-send --project-id <project_id> --channel-id <channel_id> --push-id <send_id> --content-list '[{"key":"title","value":"hello"}]'
ae-cli engage-setting channel test-send --project-id <project_id> --channel-id <channel_id> --push-id <send_id> --content-list '[{"key":"title","value":"hello"}]'
Batch update / toggle / save channel touch-limit (fatigue-control) rules
批量更新 / 切换 / 保存渠道触达限制(疲劳控制)规则
ae-cli engage-setting channel-touch-limits batch-update --project-id <project_id> --items '[{"rule_id":"r1","enable":true,"rule_def":"[]"}]'
ae-cli engage-setting channel-touch-limits toggle --project-id <project_id> --rule-id <rule_id> --enable false
ae-cli engage-setting channel-touch-limits save --project-id <project_id> --channel-biz-type <biz_type> --rule-def '[]' --enable true
ae-cli engage-setting channel-touch-limits batch-update --project-id <project_id> --items '[{"rule_id":"r1","enable":true,"rule_def":"[]"}]'
ae-cli engage-setting channel-touch-limits toggle --project-id <project_id> --rule-id <rule_id> --enable false
ae-cli engage-setting channel-touch-limits save --project-id <project_id> --channel-biz-type <biz_type> --rule-def '[]' --enable true
Remove an approver from a project
移除项目中的审批人
ae-cli engage-setting approval-approver delete --project-id <project_id> --approver <open_id> --yes
ae-cli engage-setting approval-approver delete --project-id <project_id> --approver <open_id> --yes
Whitelist add / update / delete / verify
白名单添加 / 更新 / 删除 / 验证
ae-cli engage-setting whitelist add --project-id <project_id> --prop-code <prop_code> --column-name <column_name> --column-type string --whitelist-list '[{"entity_id":"u1","source_value":"v1"}]'
ae-cli engage-setting whitelist update --project-id <project_id> --whitelist-id <id> --note-name <name>
ae-cli engage-setting whitelist delete --project-id <project_id> --whitelist-ids '["wl-1"]' --yes
ae-cli engage-setting whitelist verify --project-id <project_id> --prop-code <prop_code> --column-type string --whitelist-prop-list '["v1"]'
ae-cli engage-setting whitelist add --project-id <project_id> --prop-code <prop_code> --column-name <column_name> --column-type string --whitelist-list '[{"entity_id":"u1","source_value":"v1"}]'
ae-cli engage-setting whitelist update --project-id <project_id> --whitelist-id <id> --note-name <name>
ae-cli engage-setting whitelist delete --project-id <project_id> --whitelist-ids '["wl-1"]' --yes
ae-cli engage-setting whitelist verify --project-id <project_id> --prop-code <prop_code> --column-type string --whitelist-prop-list '["v1"]'
Push-language (localization) get / set
推送语言(本地化)查询 / 设置
ae-cli engage-setting push-language get --project-id <project_id>
ae-cli engage-setting push-language set --project-id <project_id> --push-language-column <prop_code>
ae-cli engage-setting push-language get --project-id <project_id>
ae-cli engage-setting push-language set --project-id <project_id> --push-language-column <prop_code>
Client param update / delete / list
客户端参数更新 / 删除 / 列表
ae-cli engage-setting client-param create --project-id <project_id> --column-name level --column-type varchar --column-desc Level
ae-cli engage-setting client-param update --project-id <project_id> --column-name level --column-desc Level
ae-cli engage-setting client-param delete --project-id <project_id> --column-name level --yes
ae-cli engage-setting client-param list --project-id <project_id>
ae-cli engage-setting client-param create --project-id <project_id> --column-name level --column-type varchar --column-desc Level
ae-cli engage-setting client-param update --project-id <project_id> --column-name level --column-desc Level
ae-cli engage-setting client-param delete --project-id <project_id> --column-name level --yes
ae-cli engage-setting client-param list --project-id <project_id>
Config table upload / save / list / query-data / update-data / delete
配置表上传 / 保存 / 列表 / 查询数据 / 更新数据 / 删除
ae-cli engage-setting config-table upload --project-id <project_id> --request-id <rid> --file-name data.csv --file-content "$(base64 -i data.csv)"
ae-cli engage-setting config-table save --project-id <project_id> --request-id <rid> --info-name <table_name>
ae-cli engage-setting config-table list --project-id <project_id>
ae-cli engage-setting config-table query-data --project-id <project_id> --info-id <info_id>
ae-cli engage-setting config-table update-data --project-id <project_id> --request-id <rid> --info-name <table_name> --info-id <info_id>
ae-cli engage-setting config-table delete --project-id <project_id> --info-id <info_id> --yes
ae-cli engage-setting config-table upload --project-id <project_id> --request-id <rid> --file-name data.csv --file-content "$(base64 -i data.csv)"
ae-cli engage-setting config-table save --project-id <project_id> --request-id <rid> --info-name <table_name>
ae-cli engage-setting config-table list --project-id <project_id>
ae-cli engage-setting config-table query-data --project-id <project_id> --info-id <info_id>
ae-cli engage-setting config-table update-data --project-id <project_id> --request-id <rid> --info-name <table_name> --info-id <info_id>
ae-cli engage-setting config-table delete --project-id <project_id> --info-id <info_id> --yes
Preset event list / update
预设事件列表 / 更新
ae-cli engage-setting preset-event list --project-id <project_id>
ae-cli engage-setting preset-event update --project-id <project_id> --add-event-definition '<semantic_event_json>'
ae-cli engage-setting preset-event list --project-id <project_id>
ae-cli engage-setting preset-event update --project-id <project_id> --add-event-definition '<semantic_event_json>'
Common metric list / get / create / update / delete
通用指标列表 / 查询 / 创建 / 更新 / 删除
ae-cli engage-setting common-metric list --project-id <project_id>
ae-cli engage-setting common-metric get --project-id <project_id> --metric-name <name>
ae-cli engage-setting common-metric create --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
ae-cli engage-setting common-metric update --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
ae-cli engage-setting common-metric delete --project-id <project_id> --metric-name <name> --yes
undefinedae-cli engage-setting common-metric list --project-id <project_id>
ae-cli engage-setting common-metric get --project-id <project_id> --metric-name <name>
ae-cli engage-setting common-metric create --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
ae-cli engage-setting common-metric update --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
ae-cli engage-setting common-metric delete --project-id <project_id> --metric-name <name> --yes
undefined2. task
2. task(任务)
bash
undefinedbash
undefinedQuery the task list
查询任务列表
ae-cli engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
ae-cli engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
Build a save_task guide before composing the final req
在编写最终请求前,先生成save_task指南
ae-cli engage-task task build-save-guide --project-id 1 --req '{"context":{"triggerType":2,"channelId":"channel_123"}}'
ae-cli engage-task task build-save-guide --project-id 1 --req '{"context":{"triggerType":2,"channelId":"channel_123"}}'
Save a task draft (create when req.taskId is omitted)
保存任务草稿(省略req.taskId时创建新任务)
ae-cli engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo Task"},"channelConfig":{"channelType":1,"channelId":"channel_123","groupContentList":[{"contentList":[{"pushLanguageCode":"default","content":"[]"}]}]},"targetConfig":{"targetClusterType":3},"triggerConfig":{"triggerType":2},"controlConfig":{"completionIndicatorDef":{"completionIndicators":[]}}}'
ae-cli engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo Task"},"channelConfig":{"channelType":1,"channelId":"channel_123","groupContentList":[{"contentList":[{"pushLanguageCode":"default","content":"[]"}]}]},"targetConfig":{"targetClusterType":3},"triggerConfig":{"triggerType":2},"controlConfig":{"completionIndicatorDef":{"completionIndicators":[]}}}'
Query task details
查询任务详情
ae-cli engage-task task get --project-id 1 --task-id task_123
ae-cli engage-task task get --project-id 1 --task-id task_123
Submit a saved draft task for approval
提交已保存的草稿任务进行审批
ae-cli engage-task task submit-approval --project-id 1 --task-id task_123
ae-cli engage-task task submit-approval --project-id 1 --task-id task_123
Query task reports through the Hermes inline task-data capabilities
通过Hermes内嵌任务数据能力查询任务报表
ae-cli engage-task effect query --project-id 1 --task-id task_123 --start-time 2026-04-01 --end-time 2026-04-07 --metric-id-list '["metric_1"]'
ae-cli engage-task data-detail query --project-id 1 --task-id task_123 --detail-type time --start-time 2026-04-01 --end-time 2026-04-07
ae-cli engage-task indicator-user sql --project-id 1 --task-id task_123 --indicator main --start-time 2026-04-01 --end-time 2026-04-07
ae-cli engage-task indicator-user run --project-id 1 --task-id task_123 --indicator secondary --secondary-index 1 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100
ae-cli engage-task indicator-user export --project-id 1 --task-id task_123 --indicator metric --metric-id metric_1 --source metric --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv
For L3 task reports, read `references/task-data-overview.md`, `references/task-data-detail.md`,
`references/task-metric-detail.md`, or `references/task-experiment-report.md` before invocation.
Before using `engage-task indicator-user`, read `references/task-indicator-user.md`; its grouping,
indicator, summary/detail, metric, experiment, and timezone flags have conditional compatibility rules.ae-cli engage-task effect query --project-id 1 --task-id task_123 --start-time 2026-04-01 --end-time 2026-04-07 --metric-id-list '["metric_1"]'
ae-cli engage-task data-detail query --project-id 1 --task-id task_123 --detail-type time --start-time 2026-04-01 --end-time 2026-04-07
ae-cli engage-task indicator-user sql --project-id 1 --task-id task_123 --indicator main --start-time 2026-04-01 --end-time 2026-04-07
ae-cli engage-task indicator-user run --project-id 1 --task-id task_123 --indicator secondary --secondary-index 1 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100
ae-cli engage-task indicator-user export --project-id 1 --task-id task_123 --indicator metric --metric-id metric_1 --source metric --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv
对于L3任务报表,在调用前需阅读`references/task-data-overview.md`, `references/task-data-detail.md`,
`references/task-metric-detail.md`或`references/task-experiment-report.md`。使用`engage-task indicator-user`前,需阅读`references/task-indicator-user.md`;其分组、指标、汇总/详情、度量、实验和时区标志有条件兼容性规则。3. config
3. config(配置)
bash
undefinedbash
undefinedQuery the config item list
查询配置项列表
ae-cli engage-scene config-item list --project-id 1
ae-cli engage-scene config-item list --project-id 1
Query the strategy list
查询策略列表
ae-cli engage-scene strategy list --project-id 1 --config-id cfg_123
For L3 config reports, read `references/config-item-trigger-report.md`,
`references/config-item-analysis-report.md`, or `references/config-item-strategy-comparison.md` before invocation.ae-cli engage-scene strategy list --project-id 1 --config-id cfg_123
对于L3配置报表,在调用前需阅读`references/config-item-trigger-report.md`,
`references/config-item-analysis-report.md`或`references/config-item-strategy-comparison.md`。4. flow
4. flow(流程)
bash
undefinedbash
undefinedQuery the flow list
查询流程列表
ae-cli engage-flow flow list --project-id 1
ae-cli engage-flow flow list --project-id 1
Query flow details
查询流程详情
ae-cli engage-flow flow get --project-id 1 --flow-uuid flow_uuid_123
ae-cli engage-flow flow get --project-id 1 --flow-uuid flow_uuid_123
Query flow operation records and application logs
查询流程操作记录和应用日志
ae-cli engage-flow operation-log query --project-id 1 --flow-id flow_id_123
ae-cli engage-flow operation-log query --project-id 1 --flow-id flow_id_123
Query flow versions and task push records
查询流程版本和任务推送记录
ae-cli engage-flow version list --project-id 1 --flow-id flow_id_123
ae-cli engage-flow flow update-remark --project-id 1 --flow-uuid flow_uuid_123 --flow-version-desc "Second version"
ae-cli engage-task operation-log query --project-id 1 --task-id task_id_123
ae-cli engage-task push-record query --project-id 1 --task-id task_id_123 --page-num 1 --page-size 20
ae-cli engage-task user-detail export --project-id 1 --task-id task_id_123 --task-instance-id instance_123 --user-status fail --artifact-format csv
ae-cli engage-task segment-list query --project-id 1 --task-id task_id_123
ae-cli engage-task group list --project-id 1
ae-cli engage-task metric list --project-id 1 --task-id task_id_123
ae-cli engage-task channel-ref stats --project-id 1 --channel-id channel_123
ae-cli engage-task task delete --project-id 1 --task-id task_id_123 --yes
ae-cli engage-task task submit-approval --project-id 1 --task-id task_id_123
ae-cli engage-flow version list --project-id 1 --flow-id flow_id_123
ae-cli engage-flow flow update-remark --project-id 1 --flow-uuid flow_uuid_123 --flow-version-desc "Second version"
ae-cli engage-task operation-log query --project-id 1 --task-id task_id_123
ae-cli engage-task push-record query --project-id 1 --task-id task_id_123 --page-num 1 --page-size 20
ae-cli engage-task user-detail export --project-id 1 --task-id task_id_123 --task-instance-id instance_123 --user-status fail --artifact-format csv
ae-cli engage-task segment-list query --project-id 1 --task-id task_id_123
ae-cli engage-task group list --project-id 1
ae-cli engage-task metric list --project-id 1 --task-id task_id_123
ae-cli engage-task channel-ref stats --project-id 1 --channel-id channel_123
ae-cli engage-task task delete --project-id 1 --task-id task_id_123 --yes
ae-cli engage-task task submit-approval --project-id 1 --task-id task_id_123
Query the node schema
查询节点schema
ae-cli engage-flow node-config schema --project-id 1 --node-type message_push
ae-cli engage-flow metric update --project-id 1 --flow-id flow_id_123 --metric-map '<metric_map_json>'
ae-cli engage-flow node-config schema --project-id 1 --node-type message_push
ae-cli engage-flow metric update --project-id 1 --flow-id flow_id_123 --metric-map '<metric_map_json>'
Query or export newly exposed flow report surfaces
查询或导出新增的流程报表内容
ae-cli engage-flow report metric-detail run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow report metric-detail export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow metric-user run --project-id 1 --flow-id flow_id_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow metric-user export --project-id 1 --flow-id flow_id_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow node-user run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow node-user export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow node-metric-user run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name metric_setting_id_123 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow node-metric-user export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name metric_setting_id_123 --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
User-detail `run` commands are for bounded inline rows and accept `--request-id`, `--limit`, and `--timeout-seconds`; metric-detail `run` returns the report object. Export commands accept `--request-id`, `--artifact-format csv|jsonl` (default `jsonl`), and `--timeout-seconds`, then return `run_id` and `artifact_id`; poll with `ae-cli engage-query run inspect --run-id RUN_ID`, then download with `ae-cli engage-query artifact download --run-id RUN_ID --artifact-id ARTIFACT_ID --output ./artifact.jsonl.gz`. Cancel running async work with `ae-cli engage-query query cancel --run-id RUN_ID`.
For flow report/user-detail commands, read the matching reference before composing non-trivial input:
- Flow canvas custom metric configuration: `references/flow-metric-update.md`
- Metric-detail report object or flattened report export: `references/flow-metric-detail-report.md`
- Users behind a process-level metric segment: `references/flow-metric-user.md`
- Users behind a node-level data segment: `references/flow-node-user.md`
- Users behind a node-level metric segment: `references/flow-node-metric-user.md`ae-cli engage-flow report metric-detail run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow report metric-detail export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow metric-user run --project-id 1 --flow-id flow_id_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow metric-user export --project-id 1 --flow-id flow_id_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow node-user run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow node-user export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow node-metric-user run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name metric_setting_id_123 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow node-metric-user export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name metric_setting_id_123 --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
用户详情`run`命令用于获取有限的内嵌行数据,支持`--request-id`, `--limit`, `--timeout-seconds`参数;metric-detail `run`返回报表对象。导出命令支持`--request-id`, `--artifact-format csv|jsonl`(默认`jsonl`)和`--timeout-seconds`参数,返回`run_id`和`artifact_id`;通过`ae-cli engage-query run inspect --run-id RUN_ID`轮询状态,再使用`ae-cli engage-query artifact download --run-id RUN_ID --artifact-id ARTIFACT_ID --output ./artifact.jsonl.gz`下载结果。使用`ae-cli engage-query query cancel --run-id RUN_ID`取消正在运行的异步任务。
对于流程报表/用户详情命令,在编写非简单输入前需查阅匹配的参考文档:
- 流程画布自定义指标配置:`references/flow-metric-update.md`
- Metric-detail报表对象或扁平化报表导出:`references/flow-metric-detail-report.md`
- 流程级指标分段对应的用户:`references/flow-metric-user.md`
- 节点级数据分段对应的用户:`references/flow-node-user.md`
- 节点级指标分段对应的用户:`references/flow-node-metric-user.md`5. scene (scene management / config center)
5. scene(场景管理 / 配置中心)
New capability-gateway command group covers the config center: config items, params, groups, preset/related metrics, config channels, strategies, and templates. Complex DTOs are passed with (native camelCase JSON).
engage-scene--payloadbash
undefined新的能力网关命令组覆盖配置中心的所有功能:配置项、参数、分组、预设/关联指标、配置渠道、策略和模板。复杂DTO通过(原生camelCase JSON)传递。
engage-scene--payloadbash
undefinedConfig item list / get / create / update / delete
配置项列表 / 查询 / 创建 / 更新 / 删除
ae-cli engage-scene config-item list --project-id <project_id>
ae-cli engage-scene config-item get --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-item create --project-id <project_id> --config-id <config_id> --config-name <name> --business-type params
ae-cli engage-scene config-item update --project-id <project_id> --config-id <config_id> --config-name <name>
ae-cli engage-scene config-item delete --project-id <project_id> --config-id <config_id> --open-id <open_id> --yes
ae-cli engage-scene config-item list --project-id <project_id>
ae-cli engage-scene config-item get --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-item create --project-id <project_id> --config-id <config_id> --config-name <name> --business-type params
ae-cli engage-scene config-item update --project-id <project_id> --config-id <config_id> --config-name <name>
ae-cli engage-scene config-item delete --project-id <project_id> --config-id <config_id> --open-id <open_id> --yes
Config param list / batch-add / update / batch-delete
配置参数列表 / 批量添加 / 更新 / 批量删除
ae-cli engage-scene config-param list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-param batch-add --project-id <project_id> --config-id <config_id> --params '[{"param_name":"a","param_type":"string"}]'
ae-cli engage-scene config-param update --project-id <project_id> --config-id <config_id> --param-id <param_id> --param-name a
ae-cli engage-scene config-param batch-delete --project-id <project_id> --param-ids '[1,2]' --yes
ae-cli engage-scene config-param list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-param batch-add --project-id <project_id> --config-id <config_id> --params '[{"param_name":"a","param_type":"string"}]'
ae-cli engage-scene config-param update --project-id <project_id> --config-id <config_id> --param-id <param_id> --param-name a
ae-cli engage-scene config-param batch-delete --project-id <project_id> --param-ids '[1,2]' --yes
Config group list / batch-add / update / batch-delete
配置分组列表 / 批量添加 / 更新 / 批量删除
ae-cli engage-scene config-group list --project-id <project_id>
ae-cli engage-scene config-group batch-add --project-id <project_id> --group-names '["g1"]'
ae-cli engage-scene config-group update --project-id <project_id> --group-id <group_id> --group-name g2
ae-cli engage-scene config-group batch-delete --project-id <project_id> --group-ids '[1,2]' --yes
ae-cli engage-scene config-group list --project-id <project_id>
ae-cli engage-scene config-group batch-add --project-id <project_id> --group-names '["g1"]'
ae-cli engage-scene config-group update --project-id <project_id> --group-id <group_id> --group-name g2
ae-cli engage-scene config-group batch-delete --project-id <project_id> --group-ids '[1,2]' --yes
Preset metric get / set
预设指标查询 / 设置
ae-cli engage-scene preset-metric get --project-id <project_id> --config-id <config_id>
ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> --impression-event-definition '<semantic_event_json>'
ae-cli engage-scene preset-metric get --project-id <project_id> --config-id <config_id>
ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> --impression-event-definition '<semantic_event_json>'
Config metric list / get / batch-add / update-rule / batch-delete
配置指标列表 / 查询 / 批量添加 / 更新规则 / 批量删除
ae-cli engage-scene config-metric list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-metric get --project-id <project_id> --metric-id <metric_id>
ae-cli engage-scene config-metric batch-add --project-id <project_id> --config-id <config_id> --ta-metric-ids '[1,2]'
ae-cli engage-scene config-metric update-rule --project-id <project_id> --metric-id <metric_id> --event-list '[{"event_name":"e1","filter":"true"}]'
ae-cli engage-scene config-metric batch-delete --project-id <project_id> --config-id <config_id> --metric-ids '[1,2]' --yes
ae-cli engage-scene config-metric list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-metric get --project-id <project_id> --metric-id <metric_id>
ae-cli engage-scene config-metric batch-add --project-id <project_id> --config-id <config_id> --ta-metric-ids '[1,2]'
ae-cli engage-scene config-metric update-rule --project-id <project_id> --metric-id <metric_id> --event-list '[{"event_name":"e1","filter":"true"}]'
ae-cli engage-scene config-metric batch-delete --project-id <project_id> --config-id <config_id> --metric-ids '[1,2]' --yes
Config channel list / get / create / update / update-status / delete / query-log
配置渠道列表 / 查询 / 创建 / 更新 / 更新状态 / 删除 / 查询日志
User params: verify each customsParamList columnName via ae-analysis property list/get first; then use user:<prop_name>
用户参数:需先通过ae-analysis property list/get验证每个customsParamList的columnName;然后使用user:<prop_name>格式
Strategy custom audience: scene-strategy-audience.md — semantic definitionRequest; strategy predict for 预估人数
策略自定义受众:参考scene-strategy-audience.md — 语义化definitionRequest;strategy predict用于预估人数
Workflows: references/channel-mgmt.md · schema: references/scene-config-channel.md
工作流:参考references/channel-mgmt.md · schema:参考references/scene-config-channel.md
ae-cli engage-scene config-channel list --project-id <project_id> [--channel-type 0|1]
ae-cli engage-scene config-channel get --project-id <project_id> --channel-id <channel_id>
ae-cli engage-scene config-channel create --project-id <project_id> --channel-name <name> --channel-type 0 --config '<json>'
ae-cli engage-scene config-channel update --project-id <project_id> --channel-id <channel_id> --channel-name <name> [--config '<json>']
ae-cli engage-scene config-channel update-status --project-id <project_id> --channel-id <channel_id> --channel-status 1|2
ae-cli engage-scene config-channel delete --project-id <project_id> --channel-id <channel_id> --yes
ae-cli engage-scene config-channel query-log --project-id <project_id> --channel-id <channel_id>
ae-cli engage-scene config-channel list --project-id <project_id> [--channel-type 0|1]
ae-cli engage-scene config-channel get --project-id <project_id> --channel-id <channel_id>
ae-cli engage-scene config-channel create --project-id <project_id> --channel-name <name> --channel-type 0 --config '<json>'
ae-cli engage-scene config-channel update --project-id <project_id> --channel-id <channel_id> --channel-name <name> [--config '<json>']
ae-cli engage-scene config-channel update-status --project-id <project_id> --channel-id <channel_id> --channel-status 1|2
ae-cli engage-scene config-channel delete --project-id <project_id> --channel-id <channel_id> --yes
ae-cli engage-scene config-channel query-log --project-id <project_id> --channel-id <channel_id>
Strategy create / update / log / batch-copy
策略创建 / 更新 / 日志 / 批量复制
ae-cli engage-scene strategy create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","strategyName":"s1"}'
ae-cli engage-scene strategy update --project-id <project_id> --payload '{"strategyUuid":"uuid-1"}'
ae-cli engage-scene strategy log --project-id <project_id> --strategy-uuid <uuid>
ae-cli engage-scene strategy predict --project-id <project_id> --definition-request '{"type":"condition","conditions":{...}}' --zone-offset 8 [--strategy-uuid <uuid>]
ae-cli engage-scene strategy batch-copy --project-id <project_id> --config-id <config_id> --strategy-ids '["s1"]'
ae-cli engage-scene strategy create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","strategyName":"s1"}'
ae-cli engage-scene strategy update --project-id <project_id> --payload '{"strategyUuid":"uuid-1"}'
ae-cli engage-scene strategy log --project-id <project_id> --strategy-uuid <uuid>
ae-cli engage-scene strategy predict --project-id <project_id> --definition-request '{"type":"condition","conditions":{...}}' --zone-offset 8 [--strategy-uuid <uuid>]
ae-cli engage-scene strategy batch-copy --project-id <project_id> --config-id <config_id> --strategy-ids '["s1"]'
Template list / get / create / update / update-status / delete
模板列表 / 查询 / 创建 / 更新 / 更新状态 / 删除
ae-cli engage-scene template list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene template get --project-id <project_id> --config-id <config_id> --template-id <template_id>
ae-cli engage-scene template create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","templateName":"t1"}'
ae-cli engage-scene template update --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","config":[]}'
ae-cli engage-scene template update-status --project-id <project_id> --config-id <config_id> --template-id <template_id> --status 1
ae-cli engage-scene template delete --project-id <project_id> --config-id <config_id> --template-id <template_id> --yes
undefinedae-cli engage-scene template list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene template get --project-id <project_id> --config-id <config_id> --template-id <template_id>
ae-cli engage-scene template create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","templateName":"t1"}'
ae-cli engage-scene template update --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","config":[]}'
ae-cli engage-scene template update-status --project-id <project_id> --config-id <config_id> --template-id <template_id> --status 1
ae-cli engage-scene template delete --project-id <project_id> --config-id <config_id> --template-id <template_id> --yes
undefined6. activity (campaign activities)
6. activity(营销活动)
New capability-gateway command group covers campaign activities: activities, approval workflow, topics, activity types, and standalone tasks. Complex DTOs are passed with (native camelCase JSON).
engage-activity--payload新的能力网关命令组覆盖营销活动的所有功能:活动、审批工作流、主题、活动类型和独立任务。复杂DTO通过(原生camelCase JSON)传递。
engage-activity--payloadActivity payload guardrails
活动负载约束
Before generating any activity topic or standalone-task payload, enforce the same subset exposed by the Hermes activity UI:
- must be
triggerType(schedule single) or0(schedule repeat). Activity tasks do not support manual (1) or triggered (2-3) task types.6 - Do not configure A/B or horse-race experiments. Omit or use only
expConfig, and provide exactly one non-experiment{"enableExp":false}group.groupContentList - Standalone activity tasks must use and the parent activity
triggerTimeStrategy: "fixed_time_zone". Schedule times must remain inside the activity period.tzOffset - A topic root supports audience types (custom) and
1(existing cluster), not2(all users). A standalone activity task may use3,1, or2.3 - Topic tasks inherit schedule, timezone, channel, frequency limits, channel touch limits, whitelist, and experiment settings from the topic. They may only add an inclusion-only custom ; never generate task-level
definitionRequest, trigger rules, or shared-setting overrides.clusterKeymay return the canonical task markertopic get; preserve it for update if present, but never use another task-level value.targetClusterType=1 - Resolve the parent activity first and confirm it is editable (
mappingStatus,0, or2). Limits for topics, tasks, and languages are project configuration values; do not hardcode defaults.5 - and
approval submitvalidate every persisted activity task. Approval does not normalize unsupported task data. Onapproval approve, cancel/withdraw approval as needed, correct or recreate each reported task, and submit again.ACTIVITY_TASK_COMPATIBILITY_VIOLATION
bash
undefined在生成任何活动主题或独立任务负载前,需严格遵循Hermes活动UI暴露的子集规则:
- 必须为
triggerType(单次定时)或0(重复定时)。活动任务不支持手动(1)或触发式(2-3)任务类型。6 - 不得配置A/B或赛马实验。需省略或仅使用
expConfig,且需提供恰好一个非实验的{"enableExp":false}分组。groupContentList - 独立活动任务必须使用和父活动的
triggerTimeStrategy: "fixed_time_zone"。定时时间必须处于活动周期内。tzOffset - 主题根节点支持受众类型(自定义)和
1(现有集群),不支持2(所有用户)。独立活动任务可使用3、1或2。3 - 主题任务继承主题的定时、时区、渠道、频率限制、渠道触达限制、白名单和实验设置。仅可添加包含型自定义;不得生成任务级
definitionRequest、触发规则或共享设置覆盖项。clusterKey可能返回标准任务标记topic get;如果存在需保留用于更新,但不得使用其他任务级值。targetClusterType=1 - 需先解析父活动并确认其可编辑(为
mappingStatus、0或2)。主题、任务和语言的限制是项目配置值,不得硬编码默认值。5 - 和
approval submit会验证所有持久化的活动任务。审批不会规范化不支持的任务数据。如果出现approval approve,需根据需要取消/撤回审批,修正或重新创建每个报错的任务,然后重新提交。ACTIVITY_TASK_COMPATIBILITY_VIOLATION
bash
undefinedActivity create / update / delete / list / get / pause / end / stats / info-list
活动创建 / 更新 / 删除 / 列表 / 查询 / 暂停 / 结束 / 统计 / 信息列表
ae-cli engage-activity activity create --project-id <project_id> --payload '{"activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
ae-cli engage-activity activity update --project-id <project_id> --payload '{"activityId":"act-1","activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
ae-cli engage-activity activity delete --project-id <project_id> --activity-id <activity_id> --yes
ae-cli engage-activity activity list --project-id <project_id> --page 1 --page-size 20
ae-cli engage-activity activity get --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity pause --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity end --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity stats --project-id <project_id>
ae-cli engage-activity activity info-list --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity create --project-id <project_id> --payload '{"activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
ae-cli engage-activity activity update --project-id <project_id> --payload '{"activityId":"act-1","activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
ae-cli engage-activity activity delete --project-id <project_id> --activity-id <activity_id> --yes
ae-cli engage-activity activity list --project-id <project_id> --page 1 --page-size 20
ae-cli engage-activity activity get --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity pause --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity end --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity stats --project-id <project_id>
ae-cli engage-activity activity info-list --project-id <project_id> --activity-id <activity_id>
Approval submit / approve / reject / cancel
审批提交 / 通过 / 拒绝 / 取消
ae-cli engage-activity approval submit --project-id <project_id> --activity-id <activity_id> [--reason <reason>]
ae-cli engage-activity approval approve --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity approval reject --project-id <project_id> --activity-id <activity_id> --reason <reason>
ae-cli engage-activity approval cancel --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity approval submit --project-id <project_id> --activity-id <activity_id> [--reason <reason>]
ae-cli engage-activity approval approve --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity approval reject --project-id <project_id> --activity-id <activity_id> --reason <reason>
ae-cli engage-activity approval cancel --project-id <project_id> --activity-id <activity_id>
Topic create / update / remove-task / delete / get / copy
主题创建 / 更新 / 移除任务 / 删除 / 查询 / 复制
See references/activity-topic.md for topicClusterKey vs task clusterKey and triggerType notes.
关于topicClusterKey与task clusterKey以及triggerType的说明,请参考references/activity-topic.md。
ae-cli engage-activity topic create --project-id <project_id> --payload '{"activityId":"act-1","topicName":"t1","targetClusterType":2,"topicClusterKey":"<cluster>","channelType":1,"channelId":"c1","triggerType":0,"triggerTime":"2026-12-31 12:00","enableChannelTouchLimits":false,"frequencyLimits":"{}","tasks":[...]}'
ae-cli engage-activity topic update --project-id <project_id> --payload '{"topicId":"topic-1", ...}'
ae-cli engage-activity topic remove-task --project-id <project_id> --task-id <task_id> --yes
ae-cli engage-activity topic delete --project-id <project_id> --topic-id <topic_id> --yes
ae-cli engage-activity topic get --project-id <project_id> --topic-id <topic_id>
ae-cli engage-activity topic copy --project-id <project_id> --topic-id <topic_id> [--new-name <name>]
ae-cli engage-activity topic create --project-id <project_id> --payload '{"activityId":"act-1","topicName":"t1","targetClusterType":2,"topicClusterKey":"<cluster>","channelType":1,"channelId":"c1","triggerType":0,"triggerTime":"2026-12-31 12:00","enableChannelTouchLimits":false,"frequencyLimits":"{}","tasks":[...]}'
ae-cli engage-activity topic update --project-id <project_id> --payload '{"topicId":"topic-1", ...}'
ae-cli engage-activity topic remove-task --project-id <project_id> --task-id <task_id> --yes
ae-cli engage-activity topic delete --project-id <project_id> --topic-id <topic_id> --yes
ae-cli engage-activity topic get --project-id <project_id> --topic-id <topic_id>
ae-cli engage-activity topic copy --project-id <project_id> --topic-id <topic_id> [--new-name <name>]
Activity type list / batch-add / update / batch-delete
活动类型列表 / 批量添加 / 更新 / 批量删除
ae-cli engage-activity activity-type list --project-id <project_id>
ae-cli engage-activity activity-type batch-add --project-id <project_id> --type-names '["t1","t2"]'
ae-cli engage-activity activity-type update --project-id <project_id> --id <type_id> --type-name t3
ae-cli engage-activity activity-type batch-delete --project-id <project_id> --ids '["id1","id2"]' --yes
ae-cli engage-activity activity-type list --project-id <project_id>
ae-cli engage-activity activity-type batch-add --project-id <project_id> --type-names '["t1","t2"]'
ae-cli engage-activity activity-type update --project-id <project_id> --id <type_id> --type-name t3
ae-cli engage-activity activity-type batch-delete --project-id <project_id> --ids '["id1","id2"]' --yes
Standalone task get / create / update / copy
独立任务查询 / 创建 / 更新 / 复制
ae-cli engage-activity task get --project-id <project_id> --task-id <task_id>
ae-cli engage-activity task create --project-id <project_id> --payload '{"taskName":"t1","activityId":"act-1", ...}'
ae-cli engage-activity task update --project-id <project_id> --payload '{"taskId":"task-1", ...}'
ae-cli engage-activity task copy --project-id <project_id> --task-id <task_id> [--new-name <name>]
undefinedae-cli engage-activity task get --project-id <project_id> --task-id <task_id>
ae-cli engage-activity task create --project-id <project_id> --payload '{"taskName":"t1","activityId":"act-1", ...}'
ae-cli engage-activity task update --project-id <project_id> --payload '{"taskId":"task-1", ...}'
ae-cli engage-activity task copy --project-id <project_id> --task-id <task_id> [--new-name <name>]
undefined7. workbench
7. workbench(工作台)
New capability-gateway command group covers workbench metric slots: each user configures up to 4 metric cards per project. Slots are per-user; / only affect the caller's own slots. The first auto-initialises 4 default slots.
engage-workbenchupdatedeletelistbash
undefined新的能力网关命令组覆盖工作台指标插槽:每个用户每个项目最多可配置4个指标卡片。插槽为用户专属;/仅影响调用者自身的插槽。首次执行命令会自动初始化4个默认插槽。
engage-workbenchupdatedeletelistbash
undefinedWorkbench slot list / add / update / delete
工作台插槽列表 / 添加 / 更新 / 删除
ae-cli engage-workbench workbench list --project-id <project_id>
ae-cli engage-workbench workbench add --project-id <project_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
ae-cli engage-workbench workbench update --project-id <project_id> --slot-id <slot_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
ae-cli engage-workbench workbench delete --project-id <project_id> --slot-id <slot_id> --yes
undefinedae-cli engage-workbench workbench list --project-id <project_id>
ae-cli engage-workbench workbench add --project-id <project_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
ae-cli engage-workbench workbench update --project-id <project_id> --slot-id <slot_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
ae-cli engage-workbench workbench delete --project-id <project_id> --slot-id <slot_id> --yes
undefinedengage-flow flow save
Critical Constraints
engage-flow flow saveengage-flow flow save
关键约束
engage-flow flow saveWhen the user wants to "create a flow / generate a flow canvas / save a flow", do not treat as a normal single command. You must follow the workflow below.
engage-flow flow save当用户需求为“创建流程 / 生成流程画布 / 保存流程”时,不得将视为普通单命令执行,必须遵循以下工作流。
engage-flow flow saveRequired Workflow
必选工作流
-
First confirm that the user intent is specific enough. At minimum you need:
- The business scenario
- The target users
- The touchpoint or delivery method
- Whether branching is needed, and the branching conditions
-
Do not jump directly from natural language to. You must first organize a stable intermediate intent structure, then map it to the final
--req.req -
Build condition-related nodes with semanticand
targetDefinitionRequestobjects. Resolve real event and property names through Analysis metadata; do not create an intermediate cluster merely to obtain persisted QP.triggerDefinition -
Before building touchpoint nodes such as,
message_push, orwechat_push, you must call:webhook_push
bash
ae-cli engage-setting channel list --project-id <projectId>- is operation-based (protocol v2). The
engage-flow flow saveobject must carry an--reqofoperation,build, orpreview. Do not use the oldcommit/nodeListfield names — useedgeList/nodeswithedges. A legacyoperation=build/nodeListpayload (or a missingedgeList) is rejected withoperation.Unsupported save_flow operation: null - Run the lifecycle: (returns
buildordata.result.status = ready_to_preview) → resolve anyneed_input→data.result.next_slot(re-issues response fieldspreview+data.result.draft_version) →data.result.confirm_token(maps those values to request fieldscommit+draftVersion) → reads the final ID fromconfirmToken.data.result.result.flow_uuid - /
nodes[].configmay be a JSON object or a JSON string. Custom audience nodes and branches use semanticedges[].config; Hermes compiles it to the node's stored execution format. Never sendtargetDefinitionRequest. Each audiencetargetClusterQpandeventmust include its ownbehavior_sequence; Flow entry dates do not replace that range. Use only properties that resolve through the Flow editor's current project, timezone, and user-entity metadata scope.time_range - You must self-check before previewing/committing:
- There is exactly one entry node
- There is at least one
exit_flow - and
edge.sourceboth reference valid nodesedge.target - Any branch node has already been declared in the upstream node
sourceBranchIdconfig - The whole graph is a DAG and contains no cycles
-
首先确认用户意图足够明确,至少需要:
- 业务场景
- 目标用户
- 触达点或投放方式
- 是否需要分支,以及分支条件
-
不得直接从自然语言跳转至参数。必须先整理出稳定的中间意图结构,再映射为最终的
--req。req -
使用语义化和
targetDefinitionRequest对象构建条件相关节点。需通过分析元数据解析真实的事件和属性名称; 不得仅为获取持久化QP而创建中间集群。triggerDefinition -
在构建、
message_push或wechat_push等触达节点前,必须调用:webhook_push
bash
ae-cli engage-setting channel list --project-id <projectId>- 是基于操作的(协议v2)。
engage-flow flow save对象必须携带--req字段,值为operation、build或preview。禁止使用旧的commit/nodeList字段名 — 需使用edgeList/nodes并设置edges。如果使用旧版operation=build/nodeList负载(或缺失edgeList),会被拒绝并返回operation。Unsupported save_flow operation: null - 执行生命周期:(返回
build或data.result.status = ready_to_preview)→ 解决任何need_input问题 →data.result.next_slot(重新返回preview+data.result.draft_version字段)→data.result.confirm_token(将这些值映射至请求字段commit+draftVersion)→ 从confirmToken读取最终ID。data.result.result.flow_uuid - /
nodes[].config可以是JSON对象或JSON字符串。自定义受众节点和分支使用语义化edges[].config;Hermes会将其编译为节点存储的执行格式。 禁止发送targetDefinitionRequest。每个受众的targetClusterQp和event必须包含 自身的behavior_sequence;流程入口日期不能替代该范围。仅可使用当前项目、时区和用户实体元数据范围内可解析的属性。time_range - 在预览/提交前必须自行检查:
- 恰好存在一个入口节点
- 至少存在一个节点
exit_flow - 和
edge.source均引用有效的节点edge.target - 任何分支节点的已在上游节点的
sourceBranchId中声明config - 整个图为有向无环图(DAG)且无循环
Explicitly Forbidden
明确禁止操作
- Do not invent a
channelId - Do not fill in branching logic when the user has not provided enough information
- Do not submit business-semantic nodes directly as final
nodes - Do not use the legacy /
nodeList, and do not omitedgeListoperation
- 不得编造
channelId - 用户未提供足够信息时,不得填充分支逻辑
- 不得直接将业务语义节点作为最终提交
nodes - 不得使用旧版/
nodeList,且不得省略edgeListoperation
Recommended Order
推荐执行顺序
text
User request
-> Organize intent
-> analysis user-cluster create/get
-> engage-setting channel list --project-id <projectId>
-> Build nodes / edges
-> Self-check
-> engage-flow flow save operation=build -> (need_input?) -> preview -> commit
-> engage-flow flow get (verify)For more detailed generation rules, consult these references first:
references/save-flow.mdreferences/flow-node-config-schema.mdreferences/validate-flow-node-config.md
text
用户请求
-> 整理意图
-> analysis user-cluster create/get
-> engage-setting channel list --project-id <projectId>
-> 构建nodes / edges
-> 自行检查
-> engage-flow flow save operation=build -> (是否need_input?) -> preview -> commit
-> engage-flow flow get(验证结果)如需更详细的生成规则,请先查阅以下参考文档:
references/save-flow.mdreferences/flow-node-config-schema.mdreferences/validate-flow-node-config.md
Dry-Run Debugging
空运行调试
bash
ae-cli --dry-run engage-setting channel list --project-id 1
ae-cli --dry-run engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
ae-cli --dry-run engage-task task build-save-guide --project-id 1 --req '{}'
ae-cli --dry-run engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo Task"},"channelConfig":{"channelType":1,"channelId":"channel_123","groupContentList":[{"contentList":[{"pushLanguageCode":"default","content":"[]"}]}]},"targetConfig":{"targetClusterType":3},"triggerConfig":{"triggerType":2},"controlConfig":{"completionIndicatorDef":{"completionIndicators":[]}}}'
ae-cli --dry-run engage-flow flow list --project-id 1bash
ae-cli --dry-run engage-setting channel list --project-id 1
ae-cli --dry-run engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
ae-cli --dry-run engage-task task build-save-guide --project-id 1 --req '{}'
ae-cli --dry-run engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo Task"},"channelConfig":{"channelType":1,"channelId":"channel_123","groupContentList":[{"contentList":[{"pushLanguageCode":"default","content":"[]"}]}]},"targetConfig":{"targetClusterType":3},"triggerConfig":{"triggerType":2},"controlConfig":{"completionIndicatorDef":{"completionIndicators":[]}}}'
ae-cli --dry-run engage-flow flow list --project-id 1References
参考文档
More detailed single-command guidance is available in the business-oriented directory:
references/- (
references/channel-list.md)engage-setting.channel.list - (
references/channel-detail.md)engage-setting.channel.get - (
references/add-channel.md)engage-setting.channel.create - (
references/update-channel-status.md)engage-setting.channel.update-status - (
references/delete-channel.md)engage-setting.channel.delete - (
references/channel_touch_limits_list.md)engage-setting.channel-touch-limits.list - (
references/channel-touch-limits-batch-update.md)engage-setting.channel-touch-limits.batch-update - (
references/channel-touch-limits-toggle.md)engage-setting.channel-touch-limits.toggle - (
references/channel-touch-limits-save.md)engage-setting.channel-touch-limits.save - (
references/channel-update-config.md)engage-setting.channel.update-config - (
references/channel-test-send.md)engage-setting.channel.test-send - (
references/approval-approver-delete.md)engage-setting.approval-approver.delete - /
references/add-approver.md(references/approver-list.md)engage-setting.approval-approver.{add,list} - /
references/whitelist-list.md(references/whitelist.md)engage-setting.whitelist.{list,add,update,delete,verify} - (
references/cancel-query-by-request-id.md, L3)engage-setting.query.cancel - (
references/cancel-query-run.md)engage-query.query.cancel - (
references/push-language.md)engage-setting.push-language.{get,set} - (
references/client-param.md)engage-setting.client-param.{create,update,delete,list} - (
references/config-table.md)engage-setting.config-table.{upload,save,list,query-data,update-data,delete} - (
references/preset-event.md)engage-setting.preset-event.{list,update} - (
references/common-metric.md)engage-setting.common-metric.{list,get,create,update,delete} - (
references/scene-config-item.md)engage-scene.config-item.{list,get,create,update,delete} - (
references/scene-config-param.md)engage-scene.config-param.{list,batch-add,update,batch-delete} - (
references/scene-config-group.md)engage-scene.config-group.{list,batch-add,update,batch-delete} - (
references/scene-preset-metric.md)engage-scene.preset-metric.{get,set} - (
references/scene-config-metric.md)engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete} - (
references/scene-config-channel.md)engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log} - (config channel management workflows)
references/channel-mgmt.md - (
references/scene-strategy.md)engage-scene.strategy.{list,get,create,update,log,predict,batch-copy,manage} - (custom audience semantic
references/scene-strategy-audience.md, preflight, predict)definitionRequest - (
references/scene-template.md)engage-scene.template.{list,get,copy,create,update,update-status,delete} - (
references/config-item-trigger-report.md, L3)engage-scene.report.config-item-trigger - (
references/config-item-analysis-report.md, L3)engage-scene.report.config-item-analysis - (
references/config-item-strategy-comparison.md, L3)engage-scene.report.strategy-comparison - (
references/activity-activity.md)engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list} - (
references/activity-data-detail.md, L3)engage-activity.activity-data.detail - (
references/activity-approval.md)engage-activity.approval.{submit,approve,reject,cancel} - (
references/activity-topic.md)engage-activity.topic.{create,update,remove-task,delete,get,copy} - (
references/activity-activity-type.md)engage-activity.activity-type.{list,batch-add,update,batch-delete} - (
references/activity-task.md)engage-activity.task.{get,create,update,copy} - (
references/workbench-workbench.md)engage-workbench.workbench.{list,add,update,delete} references/build-task-save-guide.mdreferences/save-task.mdreferences/task-list.mdreferences/flow-list.md- (
references/operation-log-query.md)engage-flow.operation-log.query - (
references/task-operation-log-query.md)engage-task.operation-log.query - (
references/version-list.md)engage-flow.version.list - (
references/flow-update-remark.md; capabilityae-cli engage-flow flow update-remark)engage-flow.version.update-remark - (
references/push-record-query.md)engage-task.push-record.query - (
references/task-user-detail-export.md; capabilityengage-task user-detail export)engage-task.user-detail.export - (
references/task-indicator-user.md; capabilitiesengage-task indicator-user {sql,run,export})engage-task.indicator-user.{sql,run,export} - (
references/segment-list-query.md)engage-task.segment-list.query - (
references/group-list.md)engage-task.group.list - (
references/task-delete.md)engage-task.task.delete - (
references/task-submit-approval.md)engage-task.task.submit-approval - (
references/task-data-detail.md; capabilityengage-task data-detail query)engage-task.task-data.detail - (
references/task-metric-detail.md; capabilityengage-task effect query)engage-task.task-data.metric-detail - (
references/flow-metric-update.md; capabilityengage-flow metric update)engage-flow.metric.update
This split documentation structure is easier to extend later, because commands with more complex object inputs can stay centralized in the root directory.
references/更详细的单命令指导可在面向业务的目录中获取:
references/- (
references/channel-list.md)engage-setting.channel.list - (
references/channel-detail.md)engage-setting.channel.get - (
references/add-channel.md)engage-setting.channel.create - (
references/update-channel-status.md)engage-setting.channel.update-status - (
references/delete-channel.md)engage-setting.channel.delete - (
references/channel_touch_limits_list.md)engage-setting.channel-touch-limits.list - (
references/channel-touch-limits-batch-update.md)engage-setting.channel-touch-limits.batch-update - (
references/channel-touch-limits-toggle.md)engage-setting.channel-touch-limits.toggle - (
references/channel-touch-limits-save.md)engage-setting.channel-touch-limits.save - (
references/channel-update-config.md)engage-setting.channel.update-config - (
references/channel-test-send.md)engage-setting.channel.test-send - (
references/approval-approver-delete.md)engage-setting.approval-approver.delete - /
references/add-approver.md(references/approver-list.md)engage-setting.approval-approver.{add,list} - /
references/whitelist-list.md(references/whitelist.md)engage-setting.whitelist.{list,add,update,delete,verify} - (
references/cancel-query-by-request-id.md,L3)engage-setting.query.cancel - (
references/cancel-query-run.md)engage-query.query.cancel - (
references/push-language.md)engage-setting.push-language.{get,set} - (
references/client-param.md)engage-setting.client-param.{create,update,delete,list} - (
references/config-table.md)engage-setting.config-table.{upload,save,list,query-data,update-data,delete} - (
references/preset-event.md)engage-setting.preset-event.{list,update} - (
references/common-metric.md)engage-setting.common-metric.{list,get,create,update,delete} - (
references/scene-config-item.md)engage-scene.config-item.{list,get,create,update,delete} - (
references/scene-config-param.md)engage-scene.config-param.{list,batch-add,update,batch-delete} - (
references/scene-config-group.md)engage-scene.config-group.{list,batch-add,update,batch-delete} - (
references/scene-preset-metric.md)engage-scene.preset-metric.{get,set} - (
references/scene-config-metric.md)engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete} - (
references/scene-config-channel.md)engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log} - (配置渠道管理工作流)
references/channel-mgmt.md - (
references/scene-strategy.md)engage-scene.strategy.{list,get,create,update,log,predict,batch-copy,manage} - (自定义受众语义化
references/scene-strategy-audience.md、预检查、预估)definitionRequest - (
references/scene-template.md)engage-scene.template.{list,get,copy,create,update,update-status,delete} - (
references/config-item-trigger-report.md,L3)engage-scene.report.config-item-trigger - (
references/config-item-analysis-report.md,L3)engage-scene.report.config-item-analysis - (
references/config-item-strategy-comparison.md,L3)engage-scene.report.strategy-comparison - (
references/activity-activity.md)engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list} - (
references/activity-data-detail.md,L3)engage-activity.activity-data.detail - (
references/activity-approval.md)engage-activity.approval.{submit,approve,reject,cancel} - (
references/activity-topic.md)engage-activity.topic.{create,update,remove-task,delete,get,copy} - (
references/activity-activity-type.md)engage-activity.activity-type.{list,batch-add,update,batch-delete} - (
references/activity-task.md)engage-activity.task.{get,create,update,copy} - (
references/workbench-workbench.md)engage-workbench.workbench.{list,add,update,delete} references/build-task-save-guide.mdreferences/save-task.mdreferences/task-list.mdreferences/flow-list.md- (
references/operation-log-query.md)engage-flow.operation-log.query - (
references/task-operation-log-query.md)engage-task.operation-log.query - (
references/version-list.md)engage-flow.version.list - (
references/flow-update-remark.md;能力ae-cli engage-flow flow update-remark)engage-flow.version.update-remark - (
references/push-record-query.md)engage-task.push-record.query - (
references/task-user-detail-export.md;能力engage-task user-detail export)engage-task.user-detail.export - (
references/task-indicator-user.md;能力engage-task indicator-user {sql,run,export})engage-task.indicator-user.{sql,run,export} - (
references/segment-list-query.md)engage-task.segment-list.query - (
references/group-list.md)engage-task.group.list - (
references/task-delete.md)engage-task.task.delete - (
references/task-submit-approval.md)engage-task.task.submit-approval - (
references/task-data-detail.md;能力engage-task data-detail query)engage-task.task-data.detail - (
references/task-metric-detail.md;能力engage-task effect query)engage-task.task-data.metric-detail - (
references/flow-metric-update.md;能力engage-flow metric update)engage-flow.metric.update
这种拆分的文档结构更易于后续扩展,因为具有复杂对象输入的命令可以集中在根目录中。
references/Command Groups
命令组
setting
setting(设置)
channel-touch-limits listchannel-touch-limits batch-updatechannel-touch-limits togglechannel-touch-limits savechannel update-configchannel test-sendchannel listchannel getchannel createchannel update-statuschannel deleteapproval-approver addapproval-approver listapproval-approver deletewhitelist listwhitelist addwhitelist updatewhitelist deletewhitelist verifypush-language getpush-language setclient-param createclient-param updateclient-param deleteclient-param listconfig-table uploadconfig-table saveconfig-table listconfig-table query-dataconfig-table update-dataconfig-table deletepreset-event listpreset-event updatecommon-metric listcommon-metric getcommon-metric createcommon-metric updatecommon-metric deleteengage-settingengage-setting.query.cancelchannel-touch-limits listchannel-touch-limits batch-updatechannel-touch-limits togglechannel-touch-limits savechannel update-configchannel test-sendchannel listchannel getchannel createchannel update-statuschannel deleteapproval-approver addapproval-approver listapproval-approver deletewhitelist listwhitelist addwhitelist updatewhitelist deletewhitelist verifypush-language getpush-language setclient-param createclient-param updateclient-param deleteclient-param listconfig-table uploadconfig-table saveconfig-table listconfig-table query-dataconfig-table update-dataconfig-table deletepreset-event listpreset-event updatecommon-metric listcommon-metric getcommon-metric createcommon-metric updatecommon-metric deleteengage-settingengage-setting.query.canceltask
task(任务)
operation-log querypush-record queryuser-detail exportindicator-user sqlindicator-user runindicator-user exportsegment-list *ops *metric *race releasechannel-ref statsgroup *task deletetask modify-grouptask submit-approvaltask gettask listtask statstask build-save-guidetask savetask manageeffect querydata-detail queryengage-taskengage-task.task-data.{overview,detail,metric-detail,experiment-report}operation-log querypush-record queryuser-detail exportindicator-user sqlindicator-user runindicator-user exportsegment-list *ops *metric *race releasechannel-ref statsgroup *task deletetask modify-grouptask submit-approvaltask gettask listtask statstask build-save-guidetask savetask manageeffect querydata-detail queryengage-taskengage-task.task-data.{overview,detail,metric-detail,experiment-report}query
query(查询)
run inspectartifact downloadquery cancelengage-queryengage-query.query.cancelrun inspectartifact downloadquery cancelengage-queryengage-query.query.cancelconfig
config(配置)
Legacy config MCP commands are migrated into the L2 group and the three L3 report capabilities below.
scene旧版配置MCP命令已迁移至 L2组和以下三个L3报表能力中。
scenescene
scene(场景)
config-item listconfig-item getconfig-item createconfig-item updateconfig-item deleteconfig-param listconfig-param batch-addconfig-param updateconfig-param batch-deleteconfig-group listconfig-group batch-addconfig-group updateconfig-group batch-deletepreset-metric getpreset-metric setconfig-metric listconfig-metric getconfig-metric batch-addconfig-metric update-ruleconfig-metric batch-deleteconfig-channel listconfig-channel getconfig-channel createconfig-channel updateconfig-channel update-statusconfig-channel deleteconfig-channel query-logstrategy liststrategy getstrategy createstrategy updatestrategy logstrategy batch-copystrategy managetemplate listtemplate gettemplate copytemplate createtemplate updatetemplate update-statustemplate deleteengage-sceneengage-scene.config-item.{list,get,create,update,delete}engage-scene.config-param.{list,batch-add,update,batch-delete}engage-scene.config-group.{list,batch-add,update,batch-delete}engage-scene.preset-metric.{get,set}engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete}engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log}engage-scene.strategy.{list,get,create,update,log,batch-copy,manage}engage-scene.template.{list,get,copy,create,update,update-status,delete}engage-scene.report.{config-item-trigger,config-item-analysis,strategy-comparison}config-item listconfig-item getconfig-item createconfig-item updateconfig-item deleteconfig-param listconfig-param batch-addconfig-param updateconfig-param batch-deleteconfig-group listconfig-group batch-addconfig-group updateconfig-group batch-deletepreset-metric getpreset-metric setconfig-metric listconfig-metric getconfig-metric batch-addconfig-metric update-ruleconfig-metric batch-deleteconfig-channel listconfig-channel getconfig-channel createconfig-channel updateconfig-channel update-statusconfig-channel deleteconfig-channel query-logstrategy liststrategy getstrategy createstrategy updatestrategy logstrategy batch-copystrategy managetemplate listtemplate gettemplate copytemplate createtemplate updatetemplate update-statustemplate deleteengage-sceneengage-scene.config-item.{list,get,create,update,delete}engage-scene.config-param.{list,batch-add,update,batch-delete}engage-scene.config-group.{list,batch-add,update,batch-delete}engage-scene.preset-metric.{get,set}engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete}engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log}engage-scene.strategy.{list,get,create,update,log,batch-copy,manage}engage-scene.template.{list,get,copy,create,update,update-status,delete}engage-scene.report.{config-item-trigger,config-item-analysis,strategy-comparison}activity
activity(活动)
activity createactivity updateactivity deleteactivity listactivity getactivity pauseactivity endactivity statsactivity info-listapproval submitapproval approveapproval rejectapproval canceltopic createtopic updatetopic remove-tasktopic deletetopic gettopic copyactivity-type listactivity-type batch-addactivity-type updateactivity-type batch-deletetask gettask createtask updatetask copyengage-activityengage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}engage-activity.approval.{submit,approve,reject,cancel}engage-activity.topic.{create,update,remove-task,delete,get,copy}engage-activity.activity-type.{list,batch-add,update,batch-delete}engage-activity.task.{get,create,update,copy}activity createactivity updateactivity deleteactivity listactivity getactivity pauseactivity endactivity statsactivity info-listapproval submitapproval approveapproval rejectapproval canceltopic createtopic updatetopic remove-tasktopic deletetopic gettopic copyactivity-type listactivity-type batch-addactivity-type updateactivity-type batch-deletetask gettask createtask updatetask copyengage-activityengage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}engage-activity.approval.{submit,approve,reject,cancel}engage-activity.topic.{create,update,remove-task,delete,get,copy}engage-activity.activity-type.{list,batch-add,update,batch-delete}engage-activity.task.{get,create,update,copy}workbench
workbench(工作台)
workbench listworkbench addworkbench updateworkbench deleteengage-workbenchengage-workbench.workbench.{list,add,update,delete}workbench listworkbench addworkbench updateworkbench deleteengage-workbenchengage-workbench.workbench.{list,add,update,delete}flow
flow(流程)
operation-log queryversion listflow update-remarkflow savenode-config schemaflow getflow listflow managenode-config validateflow deleteflow modify-base-infometric updatereport metric-detail runreport metric-detail exportmetric-user runmetric-user exportnode-user runnode-user exportnode-metric-user runnode-metric-user exportengage-flowengage-flow.report.{node-overview,process,node-detail,ab-split-node}operation-log queryversion listflow update-remarkflow savenode-config schemaflow getflow listflow managenode-config validateflow deleteflow modify-base-infometric updatereport metric-detail runreport metric-detail exportmetric-user runmetric-user exportnode-user runnode-user exportnode-metric-user runnode-metric-user exportengage-flowengage-flow.report.{node-overview,process,node-detail,ab-split-node}Date Format
日期格式
Commands that accept date parameters usually use , for example .
yyyy-MM-dd--start_time 2026-04-01接受日期参数的命令通常使用格式,例如。
yyyy-MM-dd--start_time 2026-04-01Write Operation Reminder
写入操作提醒
High-risk delete commands () require explicit user authorization before execution. Ordinary write commands () do not:
risk: high-risk-writerisk: write- Channels: (write),
engage-setting channel create(high-risk-write),engage-setting channel delete(write)engage-setting channel update-status - Config channels (config center channel management): (write),
engage-scene config-channel create|update|update-status(high-risk-write)engage-scene config-channel delete - Strategies and config items: (high-risk-write),
engage-scene config-item deleteandengage-scene template copy(write)engage-scene strategy manage - Flows: (write),
engage-flow flow update-remark(write),engage-flow flow save(write),engage-flow flow modify-base-info(write),engage-flow flow manage(high-risk-write)engage-flow flow delete - Tasks: (write),
engage-task task save(write),engage-task task submit-approval(write)engage-task task manage
For task draft creation or update, use this workflow:
ae-cli engage-setting channel list --project-id <projectId>ae-cli engage-task task build-save-guide --project-id <projectId> --req '{...}'- For a custom audience, pass the Analysis semantic contract as
. For an event-triggered task, use semantic
targetConfig.definitionRequestand always includetriggerConfig.triggerDefinition(periodTimeSymbol,TS01,TS02, orTS03) on its primary A rule. Use semanticTS04. Build shapes fromcompletionIndicatorDef.completionIndicators[].eventDefinitionuser-cluster / audience models. For existing-cluster audiences (ae-analysis), usetargetClusterType=2. For event-triggered tasks, passanalysis user-cluster get,channelType, andtriggerTypetoeventTriggerType, then use its type-specific semantic event shape. Accumulated events are aggregate conditions, continuous events use count/eq with a value of at least 2, ordered events use sequence-step envelopes, and every-completion events use count/eq/1. Completion target and experiment main-goal event filters must not use properties whose metadatabuild-save-guideisselect_type. Never construct persisted QP fields.datetime ae-cli engage-task task save --project-id <projectId> --req '{...}'ae-cli engage-task task submit-approval --project-id <projectId> --task-id <taskId>
engage-task task build-save-guidesave_taskenableExp=trueengage-task.task.build-save-guidegroupContentListexpGroupNameexpGroupTypepercentageInExperimentorderexpConfig.expGroupListcontentList[].contentengage-task.task.saveTASK_EXPERIMENT_GROUP_CONTENT_INVALIDengage-task task savereq.taskIdreq.taskIdinvalid_statusengage-task task submit-approval --task-idtask savetrigger_rule--request--task-id--requestAudience creation is not a fixed preflight step. For custom task audiences, use semantic
; returns the same contract as
. is server-authored and must be omitted from
Capability requests; partial updates preserve existing server state. Do not assemble raw QP
manually.
For a , omit second-step or set it to ; reserve
for step 3 or later when the window is measured from step 1.
targetConfig.definitionRequesttask getdefinition_requestclientConfig.clientQpbehavior_sequencerelative_to_firstfalsetrue高风险删除命令()需要明确的用户授权后方可执行。普通写入命令()无需授权:
risk: high-risk-writerisk: write- 渠道:(write),
engage-setting channel create(high-risk-write),engage-setting channel delete(write)engage-setting channel update-status - 配置渠道(配置中心渠道管理):(write),
engage-scene config-channel create|update|update-status(high-risk-write)engage-scene config-channel delete - 策略和配置项:(high-risk-write),
engage-scene config-item delete和engage-scene template copy(write)engage-scene strategy manage - 流程:(write),
engage-flow flow update-remark(write),engage-flow flow save(write),engage-flow flow modify-base-info(write),engage-flow flow manage(high-risk-write)engage-flow flow delete - 任务:(write),
engage-task task save(write),engage-task task submit-approval(write)engage-task task manage
对于任务草稿的创建或更新,使用以下工作流:
ae-cli engage-setting channel list --project-id <projectId>ae-cli engage-task task build-save-guide --project-id <projectId> --req '{...}'- 对于自定义受众,传递分析语义契约作为
。对于事件触发型任务,使用语义化
targetConfig.definitionRequest,并 始终在其主A规则中包含triggerConfig.triggerDefinition(periodTimeSymbol,TS01,TS02或TS03)。 使用语义化TS04。基于completionIndicatorDef.completionIndicators[].eventDefinition用户集群/受众模型构建结构。对于现有集群受众 (ae-analysis),使用targetClusterType=2。对于事件触发型任务,将analysis user-cluster get,channelType,triggerType传递给eventTriggerType,然后使用其返回的特定类型语义事件结构。累计事件为聚合条件,连续事件使用count/eq且值至少为2,有序事件使用sequence-step信封,完成事件使用count/eq/1。完成目标和实验主目标事件过滤器不得使用元数据build-save-guide为select_type的属性。不得构建持久化QP字段。datetime ae-cli engage-task task save --project-id <projectId> --req '{...}'ae-cli engage-task task submit-approval --project-id <projectId> --task-id <taskId>
engage-task task build-save-guidesave_taskenableExp=trueengage-task.task.build-save-guidegroupContentListexpGroupNameexpGroupTypepercentageInExperimentorderexpConfig.expGroupListcontentList[].contentengage-task.task.saveTASK_EXPERIMENT_GROUP_CONTENT_INVALIDengage-task task savereq.taskIdreq.taskIdinvalid_statusengage-task task submit-approval --task-idtask savetrigger_rule--request--task-id--request受众创建并非固定的预检查步骤。对于自定义任务受众,使用语义化
;返回的契约与
一致。由服务器生成,必须从能力请求中省略;部分更新会保留现有服务器状态。不得手动组装原始QP。
对于,省略第二步的或设置为;仅当窗口从第一步开始测量时,第三步及以后才设置为。
targetConfig.definitionRequesttask getdefinition_requestclientConfig.clientQpbehavior_sequencerelative_to_firstfalsetrue