TOPIC / RESOURCE

AI daily news automation: build guide

Build an automated AI news pipeline with OpenClaw: skill installation, Feishu bot setup, cron scheduling, source config, and output templates.

Best for

  • 已经把飞书机器人和基础技能跑通
  • 希望做一条完整的内容自动化链路
  • 想把搜索、文档、播客、封面图和表格串起来

What this project does

A full content automation chain:

  1. Search for latest AI news and products
  2. Analyze trends
  3. Generate a Feishu document
  4. Generate a podcast audio
  5. Generate a cover image
  6. Write to Feishu multi-dimensional table
  7. Send a notification message

Validate each step separately before chaining them. Do not automate until the chain runs reliably manually.

Prerequisites

Feishu

  • One Feishu bot
  • One Feishu multi-dimensional table
  • Bot App ID / App Secret
  • Your open_id or target recipient

Skills and external APIs

Common skills:

openclaw skills install @clawhub/tavily-search
openclaw skills install @clawhub/listenhub
openclaw skills install @clawhub/nano-banana-pro

Configure environment variables:

export TAVILY_API_KEY="tvly-dev-your-key"
export LISTENHUB_API_KEY="lh_sk-your-key"
export GEMINI_API_KEY="your-gemini-key"

Reload with source ~/.zshrc or equivalent.

Feishu permissions

If OpenClaw will create docs, upload files, write to tables, and send messages, enable at least:

  • Messages: im:message, im:message:send_as_bot, im:file
  • Docs: docs:doc, docs:doc:create, drive:drive, drive:file
  • Tables: bitable:app, bitable:app:readonly, bitable:app:update

Publish the app version after changes.

Build steps (in order)

1. Verify search

Confirm Tavily returns usable results and you can turn them into structured content.

2. Verify trend analysis

Have OpenClaw extract main trends, product insights, and one deeper research angle.

3. Verify Feishu doc creation

Feishu has its own formatting quirks. Do not paste Markdown blockquotes > directly.

4. Verify podcast generation

Test ListenHub or similar independently before wiring it into the full pipeline.

5. Verify cover image generation

Test the image API and scripts separately.

6. Verify table writes

Field types, attachment formats, and token syntax cause most failures here. Test with minimal data first.

7. Add the cron job last

Only add cron when all previous steps run reliably:

openclaw cron add \
  --name "Daily AI News" \
  --cron "0 4 * * *" \
  --agent your-agent \
  --announce \
  --message "Execute daily AI News Run. SOP: ~/.openclaw/workspace/ai-research-sop.md. Flow: 1) Tavily search 2) Create Feishu doc 3) ListenHub podcast 4) Cover image 5) Write table 6) Notify"

Keep a stable SOP file and reference it in the cron message.

Output template for the table

Typical fields:

  • Date
  • Core content summary
  • Doc link
  • Podcast link
  • Cover image
  • Notification copy
  • Top 3 trends
  • Status

Use fields you actually need and configure attachment/link types correctly.

Common pitfalls

  • ListenHub: Use the skill-provided scripts rather than rolling your own API calls.
  • Feishu docs: Replace Markdown blockquotes with bold headings.
  • Upload paths: Some tools only allow specific directories. Copy files there before upload if needed.
  • Table attachments: Usually upload first, get file_token, then write that into the attachment field.
  • Cron env vars: Cron often does not inherit your shell environment. Do not assume ~/.zshrc is loaded.

Verification checklist

  • Tavily search returns results
  • Feishu doc is created
  • ListenHub podcast is generated
  • Cover image is generated
  • Table write succeeds
  • Feishu message is sent
  • openclaw cron list shows the task

If any step fails consistently, fix it before treating the chain as production-ready.

External links

FAQ

Topic FAQ

It works best once you have OpenClaw running, a Feishu bot connected, and a few core skills tested. Do not stack search, podcast, covers, and cron all at once if you are starting from zero.

Usually at API keys not configured, Feishu permissions not published, skill dependencies not installed, file upload paths outside allowed dirs, or cron not reading environment variables.