name: morning-podcast description: Generate a short spoken morning news briefing as an audio clip. metadata: {"syll":{"emoji":"🎙","always":false}}
Morning Podcast
Triggered either by the user saying "morning podcast" / "晨间播客" or
by a cron job that runs this skill on a schedule. The output is a
single audio file (via the speak tool) that the web frontend will
auto-render as an <audio> element; if the job is delivering to a
messaging channel, the MP3 travels along the outbound message.
Steps
Collect stories. Use
web_searchto gather 3–5 items across tech, world, and markets. One or two searches is usually enough:web_search(query="今日科技头条", count=5) web_search(query="today world news", count=5)Skim titles/snippets, pick the most substantive stories, and drop anything paywalled or clickbait-y.
Summarize in spoken form. For each story, write ~80–120 Chinese characters (or ~40 English words). No markdown. No URLs in the spoken body — reference the outlet by name instead. Rewrite headlines into natural narration ("今天…", "另一边…").
Compose one script. Assemble a single continuous string:
- Greeting using
{{ghost_name}}, e.g. "{{ghost_name}} 早安播 报,今天是 X 月 Y 日。" - Item 1 → item N with short transitions.
- Sign-off: "以上就是今天的晨间播报,{{user_name}},祝你有个顺 利的一天。"
- Greeting using
Call
speakexactly once with the full script:speak(text="<full assembled script>")A single call yields the best prosody. Do not call
speakper-item — concatenating multiple clips sounds choppy.Reply briefly. One sentence summarizing what's in the briefing (e.g. "今日播报已生成:科技 / 市场 / 国际 共 4 条"). The audio itself is attached through the tool result's
media— you don't need to repeat the script in the reply.
Notes
- Real tool name is
web_search(notweb.search) andspeak. - If
speakfails, fall back to a text-only briefing and tell the user why ("TTS unavailable: …"). - Never include URLs in the TTS input — Volcengine reads them out character-by-character and it sounds terrible.