feat(swads): add daily image report workflow
This commit is contained in:
@@ -195,3 +195,15 @@ Composer 支持选择、拖拽、粘贴、上传状态、移除与对话框预
|
||||
课堂版服务端仍是单进程:重启会丢 Session/Event/Approval,但模型 API Key 可通过本地 AES-256-GCM 密文恢复;浏览器只保留非敏感模型元数据。当前文件 vault 没有多用户/租户隔离、远程 KMS、密钥轮换或分布式锁。SSE 无跨实例协调;没有用户身份、CSRF、分布式 rate limit、持久审计、对象存储/KMS 或 OS Sandbox。自定义 provider 的 Vision 声明会被服务器注册成精确 Pi Model 并按该模型检查,但课堂版不会主动发远端 capability probe。
|
||||
|
||||
生产化路线见 [docs/production-roadmap.md](docs/production-roadmap.md):Redis/Postgres、对象存储、KMS、身份鉴权与 CSRF、速率/配额、容器/VM Sandbox、出口代理、不可变审计日志、队列/worker、分布式 SSE,以及完整可观测性。
|
||||
|
||||
## SW Ads 图片日报
|
||||
|
||||
在服务器 `.env` 配置 `SWADS_MCP_URL`(默认 `https://ads.mincode.cn/mcp`)、`SWADS_MCP_TOKEN` 和可选 `SWADS_MCP_TIMEOUT_MS`(默认 30000,范围 100–120000)。Token 只在服务端保存,勿粘贴到聊天或提交 Git。URL 启动时校验;缺少 Token 不影响现有 mock ads、附件和报告草稿功能,首次 SW Ads 调用返回 `SWADS_NOT_CONFIGURED`。
|
||||
|
||||
发送 `/swads-daily-report`,或 `/swads-daily-report 账户 demo-account,日期 2026-09-06`。该内置 Skill 仅显式调用,保留原始用户消息。首版仅支持 TikTok GMV Max:默认当前账户最近完整业务日,之前七个完整业务日作比较;账户时区、币种和账户范围来自真实 Gateway。查询前探测线上 `tools/list`,要求只读 whoami、metrics catalog、semantic query 及实际 TikTok 指标能力;能力缺失、鉴权失败或空数据时停止生成。
|
||||
|
||||
Agent 先输出简洁 Markdown 分析,再生成 PNG 长图,图片可点击预览;Tool 卡提供 PNG、HTML、JSON 下载。服务器通过固定 Chrome CLI 参数和 Sharp 截图检查生成图片,不需要 Playwright/Puppeteer。可用 `CHROME_BIN` 指定绝对可执行路径,否则尝试固定系统 Chrome/Chromium 路径。浏览器缺失、超时或达到画布上限仍不完整时保留 HTML/JSON,并显示 `CHROME_UNAVAILABLE`、`PNG_TIMEOUT`、`PNG_RENDER_FAILED` 或 `PNG_TRUNCATED`。
|
||||
|
||||
产物原子保存于 `workspace/reports/<accountKey>/<YYYY-MM-DD>/<reportId>/`,不随 Session reset/delete 清理,不进入 Git。报告 URL 没有目录列表,PNG inline,HTML/JSON attachment。当前版本没有用户认证,随机 ID 只是内部/本地部署下的非枚举地址;持有 URL 即可访问。公网多用户部署需要另行实现认证、授权与租户隔离。存储保留与容量清理由部署方管理。
|
||||
|
||||
`swads_cli` 是服务端受控 CLI facade:Agent 不接收 Gateway 的逐项 MCP Tools,也不能执行 shell,但 facade 仍使用官方 MCP Streamable HTTP client 连接 MCP Gateway。该功能不执行任何平台写操作;所有预算、状态、目标和发布建议都列入人工确认。
|
||||
|
||||
Reference in New Issue
Block a user