跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

Text-to-speech agent tool and Gateway RPC

The tts agent tool and the Gateway TTS RPC methods

Agent tool

The tts tool converts text to speech and returns an audio attachment for reply delivery. On Feishu, Matrix, Telegram, and WhatsApp, the audio is delivered as a voice message rather than a file attachment. Feishu and WhatsApp can transcode non-Opus TTS output on this path when ffmpeg is available.

WhatsApp sends audio through Baileys as a PTT voice note (audio with ptt: true) and sends visible text separately from PTT audio because clients do not consistently render captions on voice notes.

The tool accepts optional channel and timeoutMs fields; timeoutMs is a per-call provider request timeout in milliseconds. Per-call values override tts.timeoutMs; configured TTS timeouts override any plugin-authored provider default.

Tool profiles

tts is not part of the minimal, coding, or messaging tool profiles. Agents on those profiles cannot call it until you grant it explicitly:

{
  tools: {
    profile: "messaging",
    alsoAllow: ["tts"],
  },
}

The full profile and an unset profile include tts without extra configuration. Other allow/deny layers can still remove it.

Tool profiles do not affect automatic TTS: tts.auto still speaks replies when the agent cannot call the tts tool.

Gateway RPC

MethodPurpose
tts.statusRead current TTS state and last attempt.
tts.enableSet local auto preference to always.
tts.disableSet local auto preference to off.
tts.convertOne-off text → audio.
tts.setProviderSet local provider preference.
tts.personasList configured personas and the active one.
tts.setPersonaSet local persona preference.
tts.providersList configured providers and status.