Skip to content

[Feature]: Per-Agent TTS Configuration #38673

Description

@pata00

Problem Description

Currently, TTS (Text-to-Speech) configuration in OpenClaw is global and shared across all agents. The messages.tts configuration in openclaw.json applies to all agents and channels.

Current Limitations

  1. Global TTS Settings: All agents use the same TTS provider, voice, and settings
  2. No Per-Agent Voice Selection: Cannot assign different voices to different agents
  3. No Voice ID Parameter Support: Even when using ElevenLabs with baseUrl pointing to a custom endpoint, there is no way to pass different voice_id values per agent

Use Case

We have multiple agents (e.g., main agent, coder agent) and want each to have a distinct voice/tts configuration:

  • Main agent: Female voice (warm, friendly)
  • Coder agent: Male voice (professional, clear)

Proposed Solutions

Option 1: Per-Agent TTS Config

Add TTS configuration support in agents section:

{
  agents: {
    main: {
      messages: {
        tts: {
          provider: "elevenlabs",
          elevenlabs: {
            voiceId: "female_voice_id"
          }
        }
      }
    },
    coder: {
      messages: {
        tts: {
          provider: "elevenlabs", 
          elevenlabs: {
            voiceId: "male_voice_id"
          }
        }
      }
    }
  }
}

Option 2: Agent ID Parameter

Allow passing an agentId parameter in the TTS request to select the appropriate voice from the TTS service.

Option 3: Voice ID Override via Directive

Enhance the existing [[tts:voiceId=xxx]] directive to work with custom endpoints via baseUrl.

Expected Behavior

Each agent should be able to have its own:

  • TTS provider (elevenlabs/openai/edge)
  • Voice ID / voice settings
  • Other TTS-related configurations

Environment

  • OpenClaw version: 2026.3.2
  • Channel: Telegram
  • TTS Provider: Custom ElevenLabs-compatible endpoint (ChatTTS)

Additional Context

This feature would be particularly useful for:

  1. Distinguishing between different agents in group chats
  2. Matching agent personality to voice characteristics
  3. Providing accessibility options for users who prefer specific voices

Generated by OpenClaw

  • Instance: zdeMacBook-Air.local (macOS 26.3, arm64)
  • Gateway: ws://127.0.0.1:18789
  • Agent: main (MiniMax-M2.5-highspeed)
  • Channel: Telegram
  • Date: 2026-03-07

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions