Files
deerflow-code/offline-backend-20260512/backend/skill-packages/add-audience/docs/调用与安装说明.md
T
董宏凯 5c75e1af16 feat(deep-research): 强化任务链路可靠性并接入 agentfx 报告助手种子
功能说明:\n- 重构 Deep Research 调度与执行链,补齐 dispatcher、executor、live hub 与依赖注入入口,提升任务下发、执行、回调的稳定性\n- 增强运行时持久化与恢复能力,接入业务映射、任务来源与任务事件日志模型,覆盖持久化与执行可靠性关键路径测试\n- 新增 agentfx 报告助手 seed 与任务报告导入脚本配置,支持离线环境快速初始化与任务流模板回填\n- 完善 deep-research 与 thread_runs 路由参数编排,兼容不同业务映射与运行入口的前后端联动\n- 补充前端 agentfx deep-link 解析,保证 deep-research 场景下的登录跳转与任务上下文一致
2026-09-04 23:18:52 +08:00

83 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# add-audience 技能 · 安装与调用说明
把「添加受众目标」的完整接口链路封装给大模型调用:模型写好受众 JSON → 脚本登录任务系统 → 自动执行查重、删除同名(含关系表)、创建受众与账号关联 → 把每个接口的入参与调用结果如实回报给用户。
## 一、安装
**方式 A(推荐)**:在技能管理界面上传 `add-audience.skill`(本质是 zip,内含 `add-audience/` 目录:SKILL.md + config + scripts)。
**方式 B(手工)**:把 `add-audience/` 目录解压到 DeerFlow 后端的 `skills/custom/` 下,然后调用一次 `POST /skills/reconcile-custom` 收编注册。
安装后技能名:`add-audience`。若安装到 public,文档中的 `/mnt/skills/custom/...` 路径对应换成 `/mnt/skills/public/...`。
## 二、配置(config/audience_api.json)
| 配置项 | 默认值 | 说明 |
| --- | --- | --- |
| `base_url` | `http://127.0.0.1:4913` | 任务系统地址(到端口,不带 `/api`);按实际环境修改,如 `http://192.168.1.11:3912` |
| `username` / `password` | `admin` / `ch@user` | 登录账号,取自前端登录页写死的默认值,可自行修改 |
| `auth.*` | `/api/auth/login` + `Authorization: Bearer {token}` | 登录路径、token 字段与请求头拼装规则,一般不用动 |
| `endpoints.*` | `/api/task/task-action-design` 等 | 完整链路涉及的全部接口路径 |
| `request.verify_ssl` | `false` | **已关闭 HTTPS 证书校验**,适配自签证书内网;公网环境建议改 `true` |
| `request.timeout_seconds` | `30` | 单请求超时 |
环境变量覆盖:`AUDIENCE_API_BASE_URL`、`AUDIENCE_API_USERNAME`、`AUDIENCE_API_PASSWORD`、`AUDIENCE_API_VERIFY_SSL`。
## 三、鉴权与请求头
1. 脚本先 `POST {base_url}/api/auth/login`,请求体 `{"username": "...", "password": "..."}`;
2. 从响应取 `access_token`;
3. 后续所有业务请求附加请求头 `Authorization: Bearer {access_token}`(即 `auth.header_name` + `auth.header_template`)。
证书校验通过 Python ssl 上下文关闭(`verify_ssl=false` 时),HTTPS 自签名证书可直接访问。
## 四、完整调用链
对载荷中的每个受众组依次执行:
| 步骤 | 接口 | 说明 |
| --- | --- | --- |
| 1 | `POST /api/auth/login` | 登录换 token |
| 2 | `GET /api/task/task-action-design?filter=taskId&filter=actionId` | 查当前行动下已有受众(查重) |
| 3a | `GET /api/task/task-action-design-pathway-relation?filter=actionId` | 查关系表,找同名受众的 pathwayId |
| 3b | `DELETE /api/task/task-action-pathway-account/{pathwayId}` | **逐条删除关系表记录**(同名时) |
| 3c | `DELETE /api/task/task-action-design/deleteDesignVulns?designId={id}` | 删除受众关联脆弱点(同名时) |
| 3d | `DELETE /api/task/task-action-design/{id}` | 删除同名旧受众本身 |
| 4 | `POST /api/task/task-action-design` | 创建受众目标,`parentTargetAudience` 固定 `大模型生成`,`recReason` 自动清洗 `<n>` 引用标记 |
| 5 | `POST /api/task/task-action-design-account`(每账号一次) | 字段映射:`accountId←user.id`、`accountName←user.name`、`accountPlat←user.platformType`、`accountSource←user.dataSource`(缺失回退 `user.score`)、`frofileInfo←整个user对象JSON`、`designId←步骤4返回id` |
## 五、载荷格式
```json
{
"taskId": 101,
"actionId": 201,
"audienceList": [
{
"targetAudience": "18-30岁智能穿戴尝鲜用户",
"recReason": "对新形态设备接受度高……",
"userList": [ { "id": "...", "name": "...", "platformType": 1, "dataSource": "target", "...": "完整user对象" } ]
}
]
}
```
`targetAudience` 也可写作 `groupName`(对齐前端对话链路字段名)。
## 六、输出与验证
脚本 stdout 输出单段 JSON:
- `入参摘要`:taskId/actionId 与各受众组(名称、清洗后理由、账号数)
- `calls`:每个接口的 method/url/请求体(密码、token 脱敏)/HTTP 状态/响应
- `groups`:每组结果(designId、新增账号数、删除的旧受众及关系表记录数)
- `summary` / `人读摘要`:统计与人读结论
验证是否真正入库:`GET {base_url}/api/task/task-action-design?filter=taskId||$eq||{taskId}` 与 `.../task-action-design-account?...` 应能看到新建记录。
## 七、注意事项
- 密码明文存于 config,部署环境请控制文件访问权限,或改用环境变量注入。
- 同名受众默认「先删后建」(与前端对话链路一致);需要跳过语义时应先改造脚本再加策略参数。
- 业务失败(如创建受众返回非 201)时脚本继续处理其余受众组,整体 `success=false`,退出码 2;登录失败立即退出,退出码 1。