Add XDFX skill data artifacts
This commit is contained in:
1 parent
4fce6f9104
commit
eb61b332a2
20 files changed
+18430
No files matched your search
@@ -0,0 +1,192 @@
|
||||
# xdfx 单技能全流程使用说明
|
||||
|
||||
## 适用场景
|
||||
|
||||
使用 `xdfx-single-agent-full-flow` 技能,让单智能体一次性完成 xdfx 深链接模式下的完整分析与入库流程:
|
||||
|
||||
1. 受众目标分析,选出最优 3 个受众并入库。
|
||||
2. 关键传播节点分析,跨受众去重后选出最优 3 个节点并入库。
|
||||
3. 受众脆弱点分析并入库。
|
||||
4. 关键传播节点脆弱点分析并入库。
|
||||
5. 受众策略分析并入库。
|
||||
6. 关键传播节点策略分析并入库。
|
||||
7. 同步前端步骤状态,保证原 `item-aiceh` 页面步骤条可继续识别。
|
||||
|
||||
## 技能位置
|
||||
|
||||
```text
|
||||
skills-data/xdfx-single-agent-full-flow/
|
||||
```
|
||||
|
||||
核心逻辑在:
|
||||
|
||||
```text
|
||||
skills-data/xdfx-single-agent-full-flow/scripts/xdfx_flow.py
|
||||
```
|
||||
|
||||
后续使用时不要让智能体照着说明手写接口调用,必须让它直接执行这个 Python 脚本。
|
||||
|
||||
## 输入文件
|
||||
|
||||
在技能目录下准备 `xdfx-input.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_base": "https://ch1.b.uat.4.cn",
|
||||
"taskId": "真实任务id",
|
||||
"actionId": "真实xdfx行动id",
|
||||
"mubiao": "完整行动目标,例如:传播某叙事,驱动某行为体产生某预期行为,实现某作战目的。",
|
||||
"direction": "U方向",
|
||||
"platform": "fb"
|
||||
}
|
||||
```
|
||||
|
||||
默认会自动处理登录态:当命令没有传 `Authorization`,或某个接口返回 401 时,脚本会用固定账号 `admin`、口令 `ch@user` 调用 `POST /api/v1/auth/login/username?password=ch%40user`,请求体为 `{"username":"admin"}`。拿到 `access_token` 后写入 `Authorization: Bearer ...` 并重试原接口一次。
|
||||
|
||||
默认关闭 HTTPS 证书校验,用于兼容 UAT/内网自签证书;如果部署环境证书链正常,可以追加 `--verify-ssl`。如果已经有可用 token,也可以继续追加 `--auth-token TOKEN` 或 `--header "Authorization: Bearer TOKEN"`,脚本会优先使用传入 token。
|
||||
|
||||
## 执行命令
|
||||
|
||||
进入技能目录后按步骤执行。这个版本仍然是 `xdfx-single-agent-full-flow` 一个技能负责完整流程,但不要默认使用一个 `--mode full` 长命令;为了保证用户能看到实时反馈,智能体要一条命令跑一步,每步结束后先反馈给用户,再继续下一步:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step1 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step2 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step4 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step5 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step6 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
`--mode full` 只作为无人值守或排障兜底,不作为默认执行方式;外层工具通常会等长命令结束后才返回输出,无法保证真实逐步反馈。逐步命令共享同一个 `xdfx-flow-state.json`,不会影响 id 传递、断点续跑和最终入库。
|
||||
|
||||
每完成一步都会输出一行:
|
||||
|
||||
```text
|
||||
STEP_FEEDBACK {...}
|
||||
```
|
||||
|
||||
调用技能的智能体必须在每个 step 命令结束后读取 `STEP_FEEDBACK`,给用户一次反馈,再执行下一条 step 命令。
|
||||
|
||||
每次执行具体操作或调用接口前,脚本会输出:
|
||||
|
||||
```text
|
||||
OP_FEEDBACK {...}
|
||||
```
|
||||
|
||||
调用技能的智能体必须把 `operation`、`method` 和 `url` 转述给用户,例如:
|
||||
|
||||
```text
|
||||
正在保存受众目标,调用 POST https://.../api/task/task-action-design。
|
||||
```
|
||||
|
||||
如果报错,脚本会立即输出:
|
||||
|
||||
```text
|
||||
ERROR_FEEDBACK {...}
|
||||
```
|
||||
|
||||
调用技能的智能体必须立刻告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果模型 JSON 经过自动提取和修复仍无法解析,脚本会输出:
|
||||
|
||||
```text
|
||||
JSON_PARSE_REVIEW {...}
|
||||
```
|
||||
|
||||
调用技能的智能体必须查看 `responseExcerpt`,判断是否能识别真正 JSON;无法确认时重跑当前步骤或重新调用对应模型接口。
|
||||
|
||||
只检查脚本与参数、不调用真实接口:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode full --input xdfx-input.json --dry-run
|
||||
```
|
||||
|
||||
如果只想入库数据,不更新前端步骤条:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step1 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md --no-step-status
|
||||
python scripts/xdfx_flow.py --mode step2 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md --no-step-status
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md --no-step-status
|
||||
python scripts/xdfx_flow.py --mode step4 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md --no-step-status
|
||||
python scripts/xdfx_flow.py --mode step5 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md --no-step-status
|
||||
python scripts/xdfx_flow.py --mode step6 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md --no-step-status
|
||||
```
|
||||
|
||||
## 入库内容
|
||||
|
||||
脚本会写入以下接口对应的数据:
|
||||
|
||||
- `task-action-design`
|
||||
- `task-action-design-account`
|
||||
- `task-action-pathway-account`
|
||||
- `task-action-design-pathway-relation/saveRelation`
|
||||
- `task-action-design-vulns`
|
||||
- `task-action-pathway-account-vulns`
|
||||
- `task-action-strategy`
|
||||
- `task-action-channel`
|
||||
- `base-narrate`
|
||||
- `task-action-message`
|
||||
- `task-action-design-strategy-relation`
|
||||
- `task/task-action/{actionId}` 的 `step` 字段
|
||||
|
||||
## 输出文件
|
||||
|
||||
执行后查看:
|
||||
|
||||
```text
|
||||
xdfx-flow-state.json
|
||||
xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
`xdfx-flow-state.json` 保存断点状态、接口返回 id、模型解析结果与错误明细。
|
||||
|
||||
`xdfx-flow-summary.md` 是给用户看的执行摘要。
|
||||
|
||||
## 每步反馈
|
||||
|
||||
脚本会输出三类反馈行:
|
||||
|
||||
- `OP_FEEDBACK`:当前正在做什么、调用哪个接口。
|
||||
- `ERROR_FEEDBACK`:当前错误的阶段、接口、状态码、请求摘要和响应摘要。
|
||||
- `JSON_PARSE_REVIEW`:模型返回内容无法稳定解析为 JSON,需要执行智能体复核是否重试。
|
||||
- `STEP_FEEDBACK`:当前步骤最终状态和累计入库数量。
|
||||
|
||||
`STEP_FEEDBACK` 中包含:
|
||||
|
||||
- `step`:步骤编号。
|
||||
- `label`:步骤名称。
|
||||
- `status`:`ok`、`partial` 或 `skipped`。
|
||||
- `counts`:当前累计入库数量。
|
||||
- `newErrors`:本步骤新增错误数。
|
||||
- `totalErrors`:累计错误数。
|
||||
|
||||
智能体反馈用户时建议使用这种格式:
|
||||
|
||||
```text
|
||||
Step1 受众目标分析完成:当前已入库受众 X 个,本步骤新增错误 Y 个。
|
||||
```
|
||||
|
||||
如果 `status=partial`,要补一句“该步骤部分完成”,并说明稍后最终汇总会列出错误明细。
|
||||
|
||||
如果 `status=skipped`,要说明跳过原因。
|
||||
|
||||
## 容错规则
|
||||
|
||||
- 单个受众、账号、传播节点、脆弱点或策略失败,不中断整个流程。
|
||||
- 保存接口必须返回 `id`,否则不会进入下游步骤。
|
||||
- 模型流式 `answer` 会自动拼接。
|
||||
- 流式模型接口第一次返回空响应、`y模型没有响应`、`模型没有响应` 或超时类字符串时,会自动再调用一次;仍失败才写入 `errors`。
|
||||
- 模型输出会自动去掉 `<think>`,从前后混杂文本、多个 JSON 代码块、无换行流式文本、连续 JSON 对象、非工整 JSON 中提取多个候选,并按当前步骤所需字段选择最像的 JSON。
|
||||
- 模型 JSON 会尝试修复中文引号、全角冒号/逗号、尾随逗号、未加引号的键、Python 风格 `True/False/None`。
|
||||
- 模型 JSON 解析失败会自动重试 1 次。
|
||||
- 每一步完成都会写入 state/summary 并输出 `STEP_FEEDBACK`。
|
||||
- 接口失败会写入 `errors`,包含阶段、URL、状态码、请求摘要、响应正文和异常类型。
|
||||
|
||||
## 回复用户规则
|
||||
|
||||
执行结束后,智能体必须读取 `xdfx-flow-summary.md` 和 `xdfx-flow-state.json.errors` 再回复用户。
|
||||
|
||||
如果 `errors` 为空,可以说明“全流程完成”。
|
||||
|
||||
如果 `errors` 非空,只能说明“部分完成”,并列出失败阶段、接口 URL、状态码和响应摘要。
|
||||
@@ -0,0 +1,111 @@
|
||||
---
|
||||
name: xdfx-single-agent-full-flow
|
||||
description: xdfx 深链接单智能体一键完成受众、关键传播节点、脆弱点与策略分析,并把结果写入行动设计相关接口。
|
||||
---
|
||||
|
||||
# xdfx 单智能体全流程分析入库 Skill
|
||||
|
||||
这个 Skill 必须优先运行内置 Python 执行器,不要让模型照着说明手写接口调用。长流程、接口字段、JSON 修复、重试、id 传递、部分失败继续、详细错误汇报都已经固化在:
|
||||
|
||||
```text
|
||||
scripts/xdfx_flow.py
|
||||
```
|
||||
|
||||
## 使用前准备
|
||||
|
||||
准备一个 JSON 输入文件,例如 `xdfx-input.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_base": "https://ch1.b.uat.4.cn",
|
||||
"taskId": "真实任务id",
|
||||
"actionId": "真实xdfx行动id",
|
||||
"mubiao": "传播...叙事,驱动...行为体产生...预期行为,实现...作战目的。",
|
||||
"direction": "U方向",
|
||||
"platform": "fb"
|
||||
}
|
||||
```
|
||||
|
||||
默认会在缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 调用:
|
||||
|
||||
```text
|
||||
POST /api/v1/auth/login/username?password=ch%40user
|
||||
body: {"username":"admin"}
|
||||
```
|
||||
|
||||
拿到 `access_token` 后会写入 `Authorization: Bearer ...` 并重试原接口一次。登录接口和 401 重试都会输出 `OP_FEEDBACK` / `ERROR_FEEDBACK`,但反馈中的 `password`、`token` 会脱敏。默认关闭 HTTPS 证书校验,适配 UAT/内网自签证书;如果环境证书链正常,可以追加 `--verify-ssl`。
|
||||
|
||||
如果已经有可用登录态,也可以在命令里追加 `--auth-token TOKEN` 或 `--header "Authorization: Bearer TOKEN"`;此时脚本优先使用传入的 token。
|
||||
|
||||
## 执行命令
|
||||
|
||||
从本 Skill 目录逐步执行。虽然这是“一个技能做完整流程”的版本,但为了给用户真实的逐步反馈,智能体必须按 step1-step6 分六个命令运行,每个命令结束后先把 `STEP_FEEDBACK` / 新增错误反馈给用户,再继续下一步:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step1 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step2 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step4 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step5 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step6 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
`--mode full` 仅作为无人值守或本地排障兜底,不作为默认执行方式;因为外层工具通常会等长命令结束才返回输出,无法保证用户看到实时反馈。逐步命令共享同一个 `xdfx-flow-state.json`,id 传递和断点续跑不受影响。
|
||||
|
||||
每一步完成后都会输出一行 `STEP_FEEDBACK {...}`。智能体必须在每个 step 命令结束后给用户一次简短反馈,说明该步骤状态、已入库数量和新增错误数,然后再执行下一步。
|
||||
|
||||
脚本每次调用接口前还会输出 `OP_FEEDBACK {...}`,包含当前操作、HTTP 方法和 URL。智能体必须用简短中文告诉用户“正在做什么、调用哪个接口”。
|
||||
|
||||
脚本出现错误时会立即输出 `ERROR_FEEDBACK {...}`,包含阶段、接口 URL、状态码、请求摘要、响应摘要和异常类型。智能体必须立刻告诉用户错误细节,不能等到最后才说。
|
||||
|
||||
如果模型返回内容经过多候选 JSON 提取和修复后仍无法解析,脚本会输出 `JSON_PARSE_REVIEW {...}`。智能体必须查看其中的 `responseExcerpt`,判断是否能识别出可用 JSON;无法确认时,重跑当前步骤或重新调用对应接口。
|
||||
|
||||
只做参数和脚本检查、不调用接口:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode full --input xdfx-input.json --dry-run
|
||||
```
|
||||
|
||||
## 脚本保证
|
||||
|
||||
- 受众只取最优 3 个继续。
|
||||
- 关键传播节点全局去重后只取最优 3 个继续。
|
||||
- 每个保存接口必须拿到返回 `id` 才进入下游。
|
||||
- 保存后会同步前端 `task/task-action.step` 步骤状态;如只想入库不更新步骤条,追加 `--no-step-status`。
|
||||
- 策略保存会同步写入 `task-action-channel`、`base-narrate`、`task-action-message`、`task-action-design-strategy-relation`,兼容策略表格/编排页面读取。
|
||||
- 模型流式 `{"answer":"..."}` 会自动拼接。
|
||||
- 流式模型接口第一次返回空响应、`y模型没有响应`、`模型没有响应` 或超时类字符串时,会自动再调用一次;仍失败才写入 `errors`。
|
||||
- 模型输出会自动去掉 `<think>`,从前后混杂文本、多个 JSON 代码块、无换行流式文本、连续 JSON 对象、非工整 JSON 中提取多个候选,并按当前步骤所需字段选择最像的 JSON。
|
||||
- 模型 JSON 会尝试修复中文引号、全角冒号/逗号、尾随逗号、未加引号的键、Python 风格 `True/False/None`。
|
||||
- 模型 JSON 解析失败会自动重试 1 次。
|
||||
- 单个受众、账号、节点或策略失败不会拖垮全流程。
|
||||
- 每完成一步都会输出 `STEP_FEEDBACK`,包含 `step`、`label`、`status`、累计入库计数和新增错误数。
|
||||
- 每次接口调用前都会输出 `OP_FEEDBACK`,说明当前操作和接口 URL。
|
||||
- 每个错误都会立即输出 `ERROR_FEEDBACK`,说明失败阶段、接口、状态码、请求摘要和响应摘要。
|
||||
- 所有接口错误都会写入 `xdfx-flow-state.json.errors`,包含阶段、URL、状态码、请求摘要、响应正文和异常类型。
|
||||
|
||||
## 回复用户
|
||||
|
||||
执行过程中,每出现一行 `STEP_FEEDBACK`,都要立刻向用户反馈一次:
|
||||
|
||||
- 当前完成的步骤名称。
|
||||
- 状态:`ok`、`partial` 或 `skipped`。
|
||||
- 当前累计入库数量。
|
||||
- 本步骤新增错误数。
|
||||
|
||||
每出现一行 `OP_FEEDBACK`,都要简短告诉用户当前正在执行的操作和接口,例如“正在保存受众目标,调用 POST /api/task/task-action-design”。
|
||||
|
||||
每出现一行 `ERROR_FEEDBACK`,都要立刻告诉用户失败阶段、接口 URL、状态码和响应摘要。
|
||||
|
||||
每出现一行 `JSON_PARSE_REVIEW`,都要查看 `responseExcerpt`。如果能明显识别出目标 JSON,说明需要人工复核;如果不能识别,重跑当前 step 或重新调用对应模型接口,并告诉用户“模型 JSON 不工整,正在复核并重试”。
|
||||
|
||||
全部执行结束后再读取 `xdfx-flow-summary.md` 和命令输出,向用户说明:
|
||||
|
||||
- 受众入库数量和 `designId`
|
||||
- 传播节点入库数量和 `pathwayAccountId`
|
||||
- 受众脆弱点数量
|
||||
- 传播节点脆弱点数量
|
||||
- 策略数量
|
||||
- 失败明细
|
||||
|
||||
只要 `errors` 不为空,就说“部分完成”,不要说“全部完成”。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,75 @@
|
||||
---
|
||||
name: xdfx-split-controller
|
||||
description: xdfx 深链接单智能体拆分版总控技能,按顺序调度 step1-step6 技能完成分析与入库。
|
||||
---
|
||||
|
||||
# xdfx 拆分版总控 Skill
|
||||
|
||||
总控也必须优先运行内置 Python 执行器,不要让模型手写接口流程。执行器位于:
|
||||
|
||||
```text
|
||||
scripts/xdfx_flow.py
|
||||
```
|
||||
|
||||
## 输入文件
|
||||
|
||||
准备 `xdfx-input.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_base": "https://ch1.b.uat.4.cn",
|
||||
"taskId": "真实任务id",
|
||||
"actionId": "真实xdfx行动id",
|
||||
"mubiao": "传播...叙事,驱动...行为体产生...预期行为,实现...作战目的。",
|
||||
"direction": "U方向",
|
||||
"platform": "fb"
|
||||
}
|
||||
```
|
||||
|
||||
## 推荐执行顺序
|
||||
|
||||
默认会自动处理登录态:当命令没有传 `Authorization`,或某个接口返回 401 时,脚本会用固定账号 `admin`、口令 `ch@user` 调用 `POST /api/v1/auth/login/username?password=ch%40user`,请求体为 `{"username":"admin"}`。拿到 `access_token` 后写入 `Authorization: Bearer ...` 并重试原接口一次。默认关闭 HTTPS 证书校验以兼容 UAT/内网自签证书;如果环境证书链正常,可以追加 `--verify-ssl`。如果已有可用 token,可追加 `--auth-token TOKEN` 或 `--header "Authorization: Bearer TOKEN"`。
|
||||
|
||||
总控按顺序执行下面 6 条命令,所有步骤共用同一个 `xdfx-flow-state.json`:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step1 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step2 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step4 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step5 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step6 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
每条命令结束都会输出一行 `STEP_FEEDBACK {...}`。总控必须在每个 step 命令结束后立即反馈用户,再继续下一步。
|
||||
|
||||
每次接口调用前会输出 `OP_FEEDBACK {...}`。总控必须告诉用户当前正在做什么、调用哪个接口。
|
||||
|
||||
如果接口或模型处理报错,会立即输出 `ERROR_FEEDBACK {...}`。总控必须立刻把失败阶段、URL、状态码、请求摘要和响应摘要告诉用户。
|
||||
|
||||
如果模型返回文本经过自动修复仍无法解析,会输出 `JSON_PARSE_REVIEW {...}`。总控必须查看响应片段,判断是否需要重跑当前 step 或重新调用对应接口。
|
||||
|
||||
如果只想一条命令跑完,也可以使用下面命令做无人值守兜底,但不建议作为默认方式,因为外层工具通常会等命令结束后才返回输出,无法保证用户看到实时反馈:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode full --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
## 断点续跑
|
||||
|
||||
- Step1 成功后会写入 `topAudiences`。
|
||||
- Step2 成功后会写入 `topPathways`。
|
||||
- Step3/Step4 会写入两类脆弱点。
|
||||
- Step5/Step6 会写入两类策略。
|
||||
- 各步骤会同步前端 `task/task-action.step`;需要禁用时每条命令追加 `--no-step-status`。
|
||||
- 策略步骤会同步写入 channel、narrate、message、策略与受众/传播节点关系表,保证原前端策略表格/编排页可继续读取。
|
||||
- 每个步骤完成都会输出 `STEP_FEEDBACK`,总控必须逐步转述给用户。
|
||||
- 每次操作和接口调用都会输出 `OP_FEEDBACK`,总控必须逐条转述当前操作。
|
||||
- 每次错误都会输出 `ERROR_FEEDBACK`,总控必须立即报告错误细节。
|
||||
- 每次 JSON 彻底解析失败都会输出 `JSON_PARSE_REVIEW`,总控必须复核响应片段并判断是否重试当前 step。
|
||||
- 每个步骤里的流式模型接口第一次空响应、返回 `y模型没有响应`/`模型没有响应` 或超时类字符串时,会自动再调用一次;仍失败才写入 `errors`。
|
||||
- 某一步失败后,修正问题再重跑同一个 `--mode stepN`。
|
||||
|
||||
## 汇报规则
|
||||
|
||||
执行过程中按 `OP_FEEDBACK` 告诉用户当前操作和接口;按 `ERROR_FEEDBACK` 立即报告错误;每个 step 结束后再根据 `STEP_FEEDBACK` 回复用户一次。全部步骤结束后,读取 `xdfx-flow-summary.md` 和 `xdfx-flow-state.json.errors` 再做最终汇总。只要存在错误,就明确说“部分完成”,并列出失败阶段、接口 URL、状态码和响应摘要。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,268 @@
|
||||
# xdfx 分步技能使用说明
|
||||
|
||||
## 适用场景
|
||||
|
||||
使用分步技能时,总控技能 `xdfx-split-controller` 负责告诉智能体按顺序调用 6 个步骤技能。适合弱模型、长流程不稳定、需要断点续跑或单独重跑某一步的场景。
|
||||
|
||||
## 技能目录
|
||||
|
||||
```text
|
||||
skills-data/xdfx-split-controller/
|
||||
skills-data/xdfx-step1-audience/
|
||||
skills-data/xdfx-step2-pathway/
|
||||
skills-data/xdfx-step3-audience-vulns/
|
||||
skills-data/xdfx-step4-pathway-vulns/
|
||||
skills-data/xdfx-step5-audience-strategy/
|
||||
skills-data/xdfx-step6-pathway-strategy/
|
||||
```
|
||||
|
||||
每个技能目录下都有同一份执行器:
|
||||
|
||||
```text
|
||||
scripts/xdfx_flow.py
|
||||
```
|
||||
|
||||
使用时不要让智能体手写接口调用,必须直接执行脚本。
|
||||
|
||||
## 输入文件
|
||||
|
||||
准备统一的 `xdfx-input.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_base": "https://ch1.b.uat.4.cn",
|
||||
"taskId": "真实任务id",
|
||||
"actionId": "真实xdfx行动id",
|
||||
"mubiao": "完整行动目标",
|
||||
"direction": "U方向",
|
||||
"platform": "fb"
|
||||
}
|
||||
```
|
||||
|
||||
所有步骤共用同一个状态文件:
|
||||
|
||||
```text
|
||||
xdfx-flow-state.json
|
||||
```
|
||||
|
||||
默认会自动处理登录态:缺少 `Authorization` 或接口返回 401 时,脚本会用固定账号 `admin`、口令 `ch@user` 调用 `POST /api/v1/auth/login/username?password=ch%40user`,请求体为 `{"username":"admin"}`,拿到 `access_token` 后写入 `Authorization: Bearer ...` 并重试原接口一次。默认关闭 HTTPS 证书校验,用于兼容 UAT/内网自签证书;需要严格校验证书时追加 `--verify-ssl`。已有 token 时可追加 `--auth-token TOKEN` 或 `--header "Authorization: Bearer TOKEN"`。
|
||||
|
||||
每一步命令结束都会输出一行:
|
||||
|
||||
```text
|
||||
STEP_FEEDBACK {...}
|
||||
```
|
||||
|
||||
总控智能体必须在每一步结束后立即把这行反馈转述给用户,再执行下一步。
|
||||
|
||||
每次执行具体操作或调用接口前,脚本会输出:
|
||||
|
||||
```text
|
||||
OP_FEEDBACK {...}
|
||||
```
|
||||
|
||||
总控智能体必须把 `operation`、`method` 和 `url` 转述给用户。
|
||||
|
||||
如果报错,脚本会立即输出:
|
||||
|
||||
```text
|
||||
ERROR_FEEDBACK {...}
|
||||
```
|
||||
|
||||
总控智能体必须立刻告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果模型 JSON 经过自动提取和修复仍无法解析,脚本会输出:
|
||||
|
||||
```text
|
||||
JSON_PARSE_REVIEW {...}
|
||||
```
|
||||
|
||||
总控智能体必须查看 `responseExcerpt`,判断是否能识别真正 JSON;无法确认时重跑当前 step 或重新调用对应模型接口。
|
||||
|
||||
每一步中的流式模型接口第一次返回空响应、`y模型没有响应`、`模型没有响应` 或超时类字符串时,脚本会自动再调用一次;如果第二次仍失败,才写入 `errors` 并在该步骤反馈里体现为 `partial`。
|
||||
|
||||
## 推荐执行顺序
|
||||
|
||||
总控技能按下面顺序执行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step1 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step2 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step4 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step5 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
python scripts/xdfx_flow.py --mode step6 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
如果某一步失败,修复接口、鉴权或输入后,只重跑对应 `stepN` 即可。
|
||||
|
||||
## 每步反馈格式
|
||||
|
||||
脚本会输出三类反馈行:
|
||||
|
||||
- `OP_FEEDBACK`:当前正在做什么、调用哪个接口。
|
||||
- `ERROR_FEEDBACK`:当前错误的阶段、接口、状态码、请求摘要和响应摘要。
|
||||
- `JSON_PARSE_REVIEW`:模型返回内容无法稳定解析为 JSON,需要执行智能体复核是否重试。
|
||||
- `STEP_FEEDBACK`:当前步骤最终状态和累计入库数量。
|
||||
|
||||
`STEP_FEEDBACK` 中包含:
|
||||
|
||||
- `step`:步骤编号。
|
||||
- `label`:步骤名称。
|
||||
- `status`:`ok`、`partial` 或 `skipped`。
|
||||
- `counts`:当前累计入库数量。
|
||||
- `newErrors`:本步骤新增错误数。
|
||||
- `totalErrors`:累计错误数。
|
||||
|
||||
总控反馈用户时建议使用这种格式:
|
||||
|
||||
```text
|
||||
Step2 关键传播节点分析完成:当前已入库传播节点 X 个,本步骤新增错误 Y 个。
|
||||
```
|
||||
|
||||
如果 `status=partial`,说明该步骤部分完成,并继续执行后续可执行步骤。
|
||||
|
||||
如果 `status=skipped`,说明跳过原因。
|
||||
|
||||
## 各步骤职责
|
||||
|
||||
### Step1:受众目标分析
|
||||
|
||||
技能:`xdfx-step1-audience`
|
||||
|
||||
动作:
|
||||
|
||||
- 调用受众分析模型。
|
||||
- 抽取结构化受众。
|
||||
- 选择最优 3 个受众。
|
||||
- 保存受众与受众账号。
|
||||
- 同步前端 `step-analysis-audience`、`step-analysis-keypoint` 状态。
|
||||
|
||||
输出写入:
|
||||
|
||||
```text
|
||||
topAudiences
|
||||
```
|
||||
|
||||
### Step2:关键传播节点分析
|
||||
|
||||
技能:`xdfx-step2-pathway`
|
||||
|
||||
动作:
|
||||
|
||||
- 基于 Step1 的受众逐个分析关键传播节点。
|
||||
- 跨受众去重。
|
||||
- 选择全局最优 3 个节点。
|
||||
- 保存传播节点。
|
||||
- 保存受众与传播节点关系。
|
||||
- 同步前端 `step-analysis-keypoint`、`step-analysis-weakpoint` 状态。
|
||||
|
||||
输出写入:
|
||||
|
||||
```text
|
||||
topPathways
|
||||
```
|
||||
|
||||
### Step3:受众脆弱点分析
|
||||
|
||||
技能:`xdfx-step3-audience-vulns`
|
||||
|
||||
动作:
|
||||
|
||||
- 基于 `topAudiences` 分析受众脆弱点。
|
||||
- 每个受众最多保存 3 个脆弱点。
|
||||
- 同步前端 `step-analysis-weakpoint` 状态。
|
||||
|
||||
输出写入:
|
||||
|
||||
```text
|
||||
audienceVulns
|
||||
```
|
||||
|
||||
### Step4:传播节点脆弱点分析
|
||||
|
||||
技能:`xdfx-step4-pathway-vulns`
|
||||
|
||||
动作:
|
||||
|
||||
- 基于 `topPathways` 分析传播节点脆弱点。
|
||||
- 每个节点最多保存 3 个脆弱点。
|
||||
- 同步前端 `step-analysis-weakpoint` 状态。
|
||||
|
||||
输出写入:
|
||||
|
||||
```text
|
||||
pathwayVulns
|
||||
```
|
||||
|
||||
### Step5:受众策略分析
|
||||
|
||||
技能:`xdfx-step5-audience-strategy`
|
||||
|
||||
动作:
|
||||
|
||||
- 基于 `topAudiences` 与 `audienceVulns` 生成策略。
|
||||
- 保存策略主表。
|
||||
- 同步写入策略 channel、narrate、message 和策略-受众关系。
|
||||
- 同步前端 `step-analysis-strategy`、`step-analysis-strategy-gantt` 状态。
|
||||
|
||||
输出写入:
|
||||
|
||||
```text
|
||||
audienceStrategies
|
||||
```
|
||||
|
||||
### Step6:传播节点策略分析
|
||||
|
||||
技能:`xdfx-step6-pathway-strategy`
|
||||
|
||||
动作:
|
||||
|
||||
- 基于 `topPathways` 与 `pathwayVulns` 生成策略。
|
||||
- 保存策略主表。
|
||||
- 同步写入策略 channel、narrate、message 和策略-传播节点关系。
|
||||
- 同步前端 `step-analysis-strategy`、`step-analysis-strategy-gantt` 状态。
|
||||
|
||||
输出写入:
|
||||
|
||||
```text
|
||||
pathwayStrategies
|
||||
```
|
||||
|
||||
## 断点续跑
|
||||
|
||||
每一步都会读写 `xdfx-flow-state.json`。
|
||||
|
||||
如果 Step3 失败,只需要重新执行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
如果想重新生成某一步,需要先清理 `xdfx-flow-state.json` 中对应字段,例如:
|
||||
|
||||
- 重新跑受众:清理 `topAudiences` 和后续所有字段。
|
||||
- 重新跑传播节点:清理 `topPathways`、`pathwayVulns`、`pathwayStrategies`。
|
||||
- 重新跑策略:清理 `audienceStrategies` 或 `pathwayStrategies`。
|
||||
|
||||
## 错误汇报
|
||||
|
||||
每一步执行结束后都要查看:
|
||||
|
||||
```text
|
||||
xdfx-flow-summary.md
|
||||
xdfx-flow-state.json
|
||||
```
|
||||
|
||||
优先依据本步骤的 `STEP_FEEDBACK` 给即时反馈;最终汇总时再读取完整 summary 和 errors。
|
||||
|
||||
如果 `errors` 非空,必须告诉用户:
|
||||
|
||||
- 失败阶段。
|
||||
- 接口 URL。
|
||||
- HTTP 状态码。
|
||||
- 请求摘要。
|
||||
- 响应正文摘要。
|
||||
- 哪些数据已成功入库,哪些数据未完成。
|
||||
|
||||
只要存在错误,就说“部分完成”,不要说“全部完成”。
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
name: xdfx-step1-audience
|
||||
description: xdfx 拆分流程 step1,分析受众目标,选择最优3个受众,并保存受众与受众账号。
|
||||
---
|
||||
|
||||
# Step1 受众分析与入库
|
||||
|
||||
不要手写接口调用,直接运行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step1 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
`xdfx-input.json` 必须包含:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_base": "https://ch1.b.uat.4.cn",
|
||||
"taskId": "真实任务id",
|
||||
"actionId": "真实xdfx行动id",
|
||||
"mubiao": "完整行动目标",
|
||||
"direction": "U方向",
|
||||
"platform": "fb"
|
||||
}
|
||||
```
|
||||
|
||||
鉴权和证书由脚本兜底处理:缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 登录获取 `access_token` 并重试原接口一次;HTTPS 默认不校验证书,需校验证书时追加 `--verify-ssl`。
|
||||
|
||||
本步骤由脚本完成:
|
||||
|
||||
- 调用受众分析模型接口。
|
||||
- 自动解析流式 answer 与候选账号。
|
||||
- 流式模型接口首次空响应、模型无响应或超时类返回会自动再调用一次。
|
||||
- 抽取结构化受众。
|
||||
- 选择最优 3 个受众。
|
||||
- 保存受众目标。
|
||||
- 保存受众目标账号。
|
||||
- 同步前端步骤状态 `step-analysis-audience` 与 `step-analysis-keypoint`。
|
||||
- 把 `designId`、账号、错误明细写入 `xdfx-flow-state.json`。
|
||||
|
||||
执行后检查 `xdfx-flow-summary.md`。如果 `errors` 非空,向用户报告失败接口、状态码、响应正文摘要。
|
||||
|
||||
## 步骤反馈
|
||||
|
||||
命令结束会输出 `STEP_FEEDBACK {...}`。必须先根据这行反馈告诉用户 Step1 的完成状态、当前受众入库数量和新增错误数,再决定是否继续下一步。
|
||||
|
||||
执行过程中会输出 `OP_FEEDBACK {...}`。每出现一次都要告诉用户当前操作和接口 URL。
|
||||
|
||||
如果出现 `ERROR_FEEDBACK {...}`,必须立即告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果出现 `JSON_PARSE_REVIEW {...}`,必须查看 `responseExcerpt`,判断是否能识别受众 JSON;无法确认时重跑 Step1。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: xdfx-step2-pathway
|
||||
description: xdfx 拆分流程 step2,基于受众分析关键传播节点,选择最优3个节点,保存节点并建立受众关系。
|
||||
---
|
||||
|
||||
# Step2 关键传播节点分析与入库
|
||||
|
||||
前置条件:`xdfx-flow-state.json` 中已有 Step1 写入的 `topAudiences[*].designId`。
|
||||
|
||||
不要手写接口调用,直接运行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step2 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
鉴权和证书由脚本兜底处理:缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 登录获取 `access_token` 并重试原接口一次;HTTPS 默认不校验证书,需校验证书时追加 `--verify-ssl`。
|
||||
|
||||
本步骤由脚本完成:
|
||||
|
||||
- 对已入库受众逐个分析关键传播节点。
|
||||
- 自动解析候选账号和传播节点 JSON。
|
||||
- 流式模型接口首次空响应、模型无响应或超时类返回会自动再调用一次。
|
||||
- 跨受众合并去重,选择全局最优 3 个传播节点。
|
||||
- 保存传播节点。
|
||||
- 保存传播节点与受众关系。
|
||||
- 同步前端步骤状态 `step-analysis-keypoint` 与 `step-analysis-weakpoint`。
|
||||
- 把 `pathwayAccountId`、关联 `designIds`、错误明细写入 state。
|
||||
|
||||
关系保存失败不阻断后续流程,但必须报告给用户。
|
||||
|
||||
## 步骤反馈
|
||||
|
||||
命令结束会输出 `STEP_FEEDBACK {...}`。必须先根据这行反馈告诉用户 Step2 的完成状态、当前传播节点入库数量和新增错误数,再决定是否继续下一步。
|
||||
|
||||
执行过程中会输出 `OP_FEEDBACK {...}`。每出现一次都要告诉用户当前操作和接口 URL。
|
||||
|
||||
如果出现 `ERROR_FEEDBACK {...}`,必须立即告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果出现 `JSON_PARSE_REVIEW {...}`,必须查看 `responseExcerpt`,判断是否能识别传播节点 JSON;无法确认时重跑 Step2。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,38 @@
|
||||
---
|
||||
name: xdfx-step3-audience-vulns
|
||||
description: xdfx 拆分流程 step3,为已入库受众抽取并保存最多3个脆弱点。
|
||||
---
|
||||
|
||||
# Step3 受众脆弱点抽取与入库
|
||||
|
||||
前置条件:`xdfx-flow-state.json` 中已有 Step1 写入的 `topAudiences[*].designId`。
|
||||
|
||||
不要手写接口调用,直接运行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step3 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
鉴权和证书由脚本兜底处理:缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 登录获取 `access_token` 并重试原接口一次;HTTPS 默认不校验证书,需校验证书时追加 `--verify-ssl`。
|
||||
|
||||
本步骤由脚本完成:
|
||||
|
||||
- 对每个已入库受众抽取最多 3 个脆弱点。
|
||||
- 流式模型接口首次空响应、模型无响应或超时类返回会自动再调用一次。
|
||||
- 自动修复和解析模型 JSON。
|
||||
- 调用受众脆弱点保存接口。
|
||||
- 只有保存成功并返回 `id` 的脆弱点才进入后续策略阶段。
|
||||
- 同步前端步骤状态 `step-analysis-weakpoint`。
|
||||
- 单个受众失败不影响其他受众。
|
||||
|
||||
完成后查看 `audienceVulns` 和 `errors`。
|
||||
|
||||
## 步骤反馈
|
||||
|
||||
命令结束会输出 `STEP_FEEDBACK {...}`。必须先根据这行反馈告诉用户 Step3 的完成状态、当前受众脆弱点数量和新增错误数,再决定是否继续下一步。
|
||||
|
||||
执行过程中会输出 `OP_FEEDBACK {...}`。每出现一次都要告诉用户当前操作和接口 URL。
|
||||
|
||||
如果出现 `ERROR_FEEDBACK {...}`,必须立即告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果出现 `JSON_PARSE_REVIEW {...}`,必须查看 `responseExcerpt`,判断是否能识别受众脆弱点 JSON;无法确认时重跑 Step3。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,38 @@
|
||||
---
|
||||
name: xdfx-step4-pathway-vulns
|
||||
description: xdfx 拆分流程 step4,为已入库关键传播节点抽取并保存最多3个脆弱点。
|
||||
---
|
||||
|
||||
# Step4 传播节点脆弱点抽取与入库
|
||||
|
||||
前置条件:`xdfx-flow-state.json` 中已有 Step2 写入的 `topPathways[*].pathwayAccountId`。
|
||||
|
||||
不要手写接口调用,直接运行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step4 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
鉴权和证书由脚本兜底处理:缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 登录获取 `access_token` 并重试原接口一次;HTTPS 默认不校验证书,需校验证书时追加 `--verify-ssl`。
|
||||
|
||||
本步骤由脚本完成:
|
||||
|
||||
- 对每个已入库关键传播节点抽取最多 3 个脆弱点。
|
||||
- 流式模型接口首次空响应、模型无响应或超时类返回会自动再调用一次。
|
||||
- 自动修复和解析模型 JSON。
|
||||
- 调用传播节点脆弱点保存接口。
|
||||
- 只有保存成功并返回 `id` 的脆弱点才进入后续策略阶段。
|
||||
- 同步前端步骤状态 `step-analysis-weakpoint`。
|
||||
- 单个节点失败不影响其他节点。
|
||||
|
||||
完成后查看 `pathwayVulns` 和 `errors`。
|
||||
|
||||
## 步骤反馈
|
||||
|
||||
命令结束会输出 `STEP_FEEDBACK {...}`。必须先根据这行反馈告诉用户 Step4 的完成状态、当前传播节点脆弱点数量和新增错误数,再决定是否继续下一步。
|
||||
|
||||
执行过程中会输出 `OP_FEEDBACK {...}`。每出现一次都要告诉用户当前操作和接口 URL。
|
||||
|
||||
如果出现 `ERROR_FEEDBACK {...}`,必须立即告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果出现 `JSON_PARSE_REVIEW {...}`,必须查看 `responseExcerpt`,判断是否能识别传播节点脆弱点 JSON;无法确认时重跑 Step4。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: xdfx-step5-audience-strategy
|
||||
description: xdfx 拆分流程 step5,基于受众目标与受众脆弱点生成策略并保存。
|
||||
---
|
||||
|
||||
# Step5 受众目标 + 脆弱点策略生成与入库
|
||||
|
||||
前置条件:`xdfx-flow-state.json` 中已有 Step3 写入的 `audienceVulns`。
|
||||
|
||||
不要手写接口调用,直接运行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step5 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
鉴权和证书由脚本兜底处理:缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 登录获取 `access_token` 并重试原接口一次;HTTPS 默认不校验证书,需校验证书时追加 `--verify-ssl`。
|
||||
|
||||
本步骤由脚本完成:
|
||||
|
||||
- 按受众读取已入库脆弱点。
|
||||
- 调用策略生成模型接口。
|
||||
- 流式模型接口首次空响应、模型无响应或超时类返回会自动再调用一次。
|
||||
- 自动解析 `发布人设N / 账号类型N / 信息标题N` 等字段。
|
||||
- 调用策略保存接口。
|
||||
- 同步写入 `task-action-channel`、`base-narrate`、`task-action-message`、`task-action-design-strategy-relation`。
|
||||
- 同步前端步骤状态 `step-analysis-strategy` 与 `step-analysis-strategy-gantt`。
|
||||
- 保存成功后写入 `audienceStrategies`。
|
||||
|
||||
如果某个受众没有可用脆弱点,脚本会跳过并在 `errors` 中记录。
|
||||
|
||||
## 步骤反馈
|
||||
|
||||
命令结束会输出 `STEP_FEEDBACK {...}`。必须先根据这行反馈告诉用户 Step5 的完成状态、当前受众策略数量和新增错误数,再决定是否继续下一步。
|
||||
|
||||
执行过程中会输出 `OP_FEEDBACK {...}`。每出现一次都要告诉用户当前操作和接口 URL。
|
||||
|
||||
如果出现 `ERROR_FEEDBACK {...}`,必须立即告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果出现 `JSON_PARSE_REVIEW {...}`,必须查看 `responseExcerpt`,判断是否能识别受众策略 JSON;无法确认时重跑 Step5。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: xdfx-step6-pathway-strategy
|
||||
description: xdfx 拆分流程 step6,基于关键传播节点与节点脆弱点生成策略并保存。
|
||||
---
|
||||
|
||||
# Step6 传播节点 + 脆弱点策略生成与入库
|
||||
|
||||
前置条件:`xdfx-flow-state.json` 中已有 Step4 写入的 `pathwayVulns`。
|
||||
|
||||
不要手写接口调用,直接运行:
|
||||
|
||||
```bash
|
||||
python scripts/xdfx_flow.py --mode step6 --input xdfx-input.json --state xdfx-flow-state.json --summary xdfx-flow-summary.md
|
||||
```
|
||||
|
||||
鉴权和证书由脚本兜底处理:缺少 `Authorization` 或接口返回 401 时,自动用 `admin / ch@user` 登录获取 `access_token` 并重试原接口一次;HTTPS 默认不校验证书,需校验证书时追加 `--verify-ssl`。
|
||||
|
||||
本步骤由脚本完成:
|
||||
|
||||
- 按关键传播节点读取已入库脆弱点。
|
||||
- 调用策略生成模型接口。
|
||||
- 流式模型接口首次空响应、模型无响应或超时类返回会自动再调用一次。
|
||||
- 自动解析 `发布人设N / 账号类型N / 信息标题N` 等字段。
|
||||
- 调用策略保存接口。
|
||||
- 同步写入 `task-action-channel`、`base-narrate`、`task-action-message`、`task-action-design-strategy-relation`。
|
||||
- 同步前端步骤状态 `step-analysis-strategy` 与 `step-analysis-strategy-gantt`。
|
||||
- 保存成功后写入 `pathwayStrategies`。
|
||||
|
||||
如果某个传播节点没有可用脆弱点,脚本会跳过并在 `errors` 中记录。
|
||||
|
||||
## 步骤反馈
|
||||
|
||||
命令结束会输出 `STEP_FEEDBACK {...}`。必须先根据这行反馈告诉用户 Step6 的完成状态、当前传播节点策略数量和新增错误数,再做最终汇总。
|
||||
|
||||
执行过程中会输出 `OP_FEEDBACK {...}`。每出现一次都要告诉用户当前操作和接口 URL。
|
||||
|
||||
如果出现 `ERROR_FEEDBACK {...}`,必须立即告诉用户失败阶段、接口 URL、状态码、请求摘要和响应摘要。
|
||||
|
||||
如果出现 `JSON_PARSE_REVIEW {...}`,必须查看 `responseExcerpt`,判断是否能识别传播节点策略 JSON;无法确认时重跑 Step6。
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"api_base": "https://ch1.b.uat.4.cn",
|
||||
"taskId": "1",
|
||||
"actionId": "2",
|
||||
"mubiao": "dry-run-test",
|
||||
"direction": "U方向",
|
||||
"platform": "fb",
|
||||
"audienceRawText": "{\"dryRun\": true}",
|
||||
"audienceCandidates": [],
|
||||
"topAudiences": [],
|
||||
"pathwayCandidates": [],
|
||||
"topPathways": [],
|
||||
"audienceVulns": {},
|
||||
"pathwayVulns": {},
|
||||
"audienceStrategies": [],
|
||||
"pathwayStrategies": [],
|
||||
"errors": [],
|
||||
"events": [
|
||||
{
|
||||
"time": "2026-06-29T02:02:38.532248+00:00",
|
||||
"stage": "runner",
|
||||
"message": "start mode=step1 dry_run=True",
|
||||
"data": null
|
||||
},
|
||||
{
|
||||
"time": "2026-06-29T02:02:38.532248+00:00",
|
||||
"stage": "runner/auto-login",
|
||||
"message": "dry-run 跳过自动登录",
|
||||
"data": {
|
||||
"username": "admin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-06-29T02:02:38.534241+00:00",
|
||||
"stage": "step1-audience/analyze/model-call-attempt-1",
|
||||
"message": "DRY RUN POST https://ch1.b.uat.4.cn/gpt/chat/chat_aiuser",
|
||||
"data": {
|
||||
"payload": {
|
||||
"usermessage": "你是中国对台湾方向的认知域专家,你要围绕驱动目标传播行动中的叙事主题,请详细分析你在各社交平台的受众目标群体,可以从账号画像和账号近期发文等方面考虑。可以从受众目标的兴趣爱好、关注议题、职业定位、政治立场等方面划分。",
|
||||
"otherinfo": {
|
||||
"方向": "U方向"
|
||||
},
|
||||
"history": [],
|
||||
"stream": true,
|
||||
"model_name": "OpenAI3",
|
||||
"temperature": 0.7,
|
||||
"max_tokens": 20000,
|
||||
"prompt_name": "任务背景和目的:dry-run-test"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-06-29T02:02:38.556183+00:00",
|
||||
"stage": "step1-audience/extract/model-json-attempt-1/model-call-attempt-1",
|
||||
"message": "DRY RUN POST https://ch1.b.uat.4.cn/gpt/chat/chat_qianqian_group_chat",
|
||||
"data": {
|
||||
"payload": {
|
||||
"mubiao": "dry-run-test",
|
||||
"user_message": "分析其中关键信息。请基于上一轮受众分析结果,抽取受众目标群体,字段必须是:群体1、用户编号列表1、理由1、群体2、用户编号列表2、理由2 ...,最多输出5个,只返回JSON。",
|
||||
"zhanghao": [],
|
||||
"history": [],
|
||||
"stream": true,
|
||||
"model_name": "OpenAI3",
|
||||
"temperature": 0.7,
|
||||
"max_tokens": 20000,
|
||||
"prompt_name": "dry-run-test"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-06-29T02:02:38.562167+00:00",
|
||||
"stage": "step1-audience",
|
||||
"message": "完成,保存受众 0 个",
|
||||
"data": null
|
||||
}
|
||||
],
|
||||
"startedAt": "2026-06-29T02:02:38.530739+00:00",
|
||||
"updatedAt": "2026-06-29T02:02:38.574135+00:00",
|
||||
"_statePath": "C:\\tmp\\xdfx-dry-state.json",
|
||||
"_summaryPath": "C:\\tmp\\xdfx-dry-summary.md",
|
||||
"_autoLogin": true,
|
||||
"_verifySsl": false,
|
||||
"audienceAccounts": []
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
# xdfx 分析入库执行摘要
|
||||
|
||||
- 更新时间:2026-06-29T02:02:38.574135+00:00
|
||||
- taskId:1
|
||||
- actionId:2
|
||||
- 受众入库:0
|
||||
- 传播节点入库:0
|
||||
- 受众脆弱点入库:0
|
||||
- 传播节点脆弱点入库:0
|
||||
- 受众策略入库:0
|
||||
- 传播节点策略入库:0
|
||||
- 错误数:0
|
||||
|
||||
## 受众
|
||||
|
||||
## 传播节点
|
||||
Reference in new issue
Block a user