360 Secure SkillHub
360 安全技能中心

Anygen Workflow Generate

该 Skill 通过 anygen CLI 完成内容生成流程:查询支持的任务类型、上传参考文件、多轮澄清需求、创建并等待任务完成,再按需下载缩略图或文件并交付;支持用任务消息对同一任务反复修改,含飞书文件发送的具体步骤。

supertilico2001
supertilico2001
热度 34.50
最近更新 2026-05-18 11:49:37
分类:创作依赖:代码执行 / 第三方 API / 读写文件应用场景:演示设计 / 图像生成 / 报告撰写 / 故事创作 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add anygen-workflow-generate
Metadata
name
anygen-workflow-generate
version
1.0.0
description
AI-powered content creation suite. Create slides/PPT, documents, diagrams, websites, data visualizations, research reports, storybooks, financial analysis, and images. Supports: pitch decks, keynotes, technical docs, PRDs, white papers, architecture diagrams, flowcharts, mind maps, org charts, ER diagrams, sequence diagrams, UML, landing pages, CSV analysis, earnings research, posters, banners, comics, and more.
metadata
{"requires":{"bins":["anygen"],"env":["ANYGEN_API_KEY"]},"install":[{"id":"node","kind":"node","package":"@anygen/cli","bins":["anygen"]}],"cliHelp":"anygen --help"}

Content Generation Workflow

PREREQUISITE: Read ../anygen-shared/SKILL.md for auth, global flags, and security rules.

Rules

Follow these rules exactly.

  • Schema: run anygen schema <resource.method> to check required params and response if needed.
  • Long-running: --wait commands will block, MUST use sessions_spawn to run in the background.
  • Sending files on Feishu/Lark: Do not use the message tool to send files. It corrupts non-ASCII filenames into %XX garbage. Strictly follow the curl process in "Sending files".

Steps

  1. Discover operations metadata: anygen task operations Do not guess operation types. Always run to get supported operations and their estimated time and thumbnail support.

  2. Upload reference files (skip if no reference files): anygen file upload --data '{"file":"./data.csv"}' → Save file_token for step 4. Tell user the file was uploaded.

  3. Gather requirements (skip if requirements are already clear): anygen task prepare --data '{"operation":"slide","messages":[{"role":"user","content":"Make a Q4 report PPT"}]}' Present reply to user, collect their answer, then call again with prepare_session_id and updated messages: anygen task prepare --data '{"operation":"slide","prepare_session_id":"<id>","messages":[...previous messages...,{"role":"user","content":"user's answer"}]}' Repeat until status=ready. → When ready, show suggested_task_params.prompt as outline, confirm with user, then use it as prompt in step 4.

  4. Create task: anygen task create --data '{"operation":"slide","prompt":"...","file_tokens":["<file_token>"]}' → Tell user the task is created, share task_url and estimated time (from step 1).

  5. Wait for completion (long-running, must run in background via sessions_spawn): anygen task get --params '{"task_id":"<id>"}' --wait

  6. Deliver (after step 5 completes, check the result):

    • No files (output.files empty): show message to user if present.
    • Has files + has thumbnail (has_thumbnail from step 1): anygen task +download --task-id <id> --thumbnail → Send thumbnail image with task_url as preview. Do not download files yet — wait for user to request download or modifications (→ step 7).
    • Has files + no thumbnail: anygen task +download --task-id <id> → Send files to user (see "Sending files" below).
  7. Modify (on user request): anygen task message send --params '{"task_id":"<id>"}' --data '{"content":"..."}' Then wait for result (long-running, must run in background via sessions_spawn): anygen task message list --params '{"task_id":"<id>"}' --wait → Repeat from step 6 to re-export and deliver. All modifications reuse the same task.

Sending files

When user requests file download, or when delivering files from step 6: anygen task +download --task-id <id> To download specific files: anygen task +download --task-id <id> --file report.pptx

Feishu/Lark (message tool corrupts non-ASCII filenames, use curl instead):

  1. Get credentials: read app_id and app_secret from the config file (e.g. cat ~/.openclaw/openclaw.json | jq '.channels.feishu' instead of openclaw config get). Make sure to use the credentials matching the current account.
  2. Get token: curl -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' -H 'Content-Type: application/json' -d '{"app_id":"<app_id>","app_secret":"<app_secret>"}'
  3. Upload + Send per file type:
    • Images (thumbnail, png, jpg, etc.): Upload: curl -X POST 'https://open.feishu.cn/open-apis/im/v1/images' -H 'Authorization: Bearer <tenant_access_token>' -F 'image_type=message' -F 'image=@./preview.png' Send: curl -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' -H 'Authorization: Bearer <tenant_access_token>' -H 'Content-Type: application/json' -d '{"receive_id":"<chat_id>","msg_type":"image","content":"{\"image_key\":\"<image_key>\"}"}'
    • Documents (pptx/docx/pdf, etc.): Upload: curl -X POST 'https://open.feishu.cn/open-apis/im/v1/files' -H 'Authorization: Bearer <tenant_access_token>' -F 'file_type=ppt' -F 'file=@./output.pptx' -F 'file_name=output.pptx' file_type values: opus (audio), mp4 (video), pdf, doc, xls, ppt, stream (other). Send: curl -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' -H 'Authorization: Bearer <tenant_access_token>' -H 'Content-Type: application/json' -d '{"receive_id":"<chat_id>","msg_type":"file","content":"{\"file_key\":\"<file_key>\"}"}'

Other platforms: Send via the platform's message tool.

See Also