Morning Podcast
Documentsmorning-podcastMorning Podcast is an Agent Skill for documents published in the THU-SAGE/syll repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Generate a short spoken morning news briefing as an audio clip.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/THU-SAGE/syll/blob/HEAD/syll/skills/morning-podcast/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/morning-podcast, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
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.