> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bot Config • AI Agent SDK

> BotConfig: Configuration for messaging bots.

# BotConfig

> Defined in the [**config**](../modules/config) module.

<Badge color="blue">AI Agent</Badge>

Configuration for messaging bots.

Attributes:
token: Bot authentication token
webhook\_url: URL for webhook mode (optional)
webhook\_path: Path for webhook endpoint
polling\_interval: Interval for polling mode (seconds)
allowed\_users: List of allowed user IDs (empty = all allowed)
allowed\_channels: List of allowed channel IDs (empty = all allowed)
command\_prefix: Prefix for commands (default: "/")
mention\_required: Whether bot mention is required in groups
typing\_indicator: Whether to show typing indicator
max\_message\_length: Maximum message length before splitting
retry\_attempts: Number of retry attempts for failed operations
timeout: Request timeout in seconds
metadata: Additional platform-specific configuration

## Properties

<ResponseField name="token" type="str">
  No description available.
</ResponseField>

<ResponseField name="webhook_url" type="Optional">
  No description available.
</ResponseField>

<ResponseField name="webhook_path" type="str">
  No description available.
</ResponseField>

<ResponseField name="polling_interval" type="float">
  No description available.
</ResponseField>

<ResponseField name="allowed_users" type="List">
  No description available.
</ResponseField>

<ResponseField name="allowed_channels" type="List">
  No description available.
</ResponseField>

<ResponseField name="command_prefix" type="str">
  No description available.
</ResponseField>

<ResponseField name="mention_required" type="bool">
  No description available.
</ResponseField>

<ResponseField name="typing_indicator" type="bool">
  No description available.
</ResponseField>

<ResponseField name="max_message_length" type="int">
  No description available.
</ResponseField>

<ResponseField name="retry_attempts" type="int">
  No description available.
</ResponseField>

<ResponseField name="timeout" type="int">
  No description available.
</ResponseField>

<ResponseField name="reply_in_thread" type="bool">
  No description available.
</ResponseField>

<ResponseField name="thread_threshold" type="int">
  No description available.
</ResponseField>

<ResponseField name="default_tools" type="List">
  No description available.
</ResponseField>

<ResponseField name="auto_approve_tools" type="bool">
  No description available.
</ResponseField>

<ResponseField name="metadata" type="Dict">
  No description available.
</ResponseField>

## Methods

<CardGroup cols={2}>
  <Card title="is_webhook_mode()" icon="function" href="../functions/BotConfig-is_webhook_mode">
    Whether bot is configured for webhook mode.
  </Card>

  <Card title="is_user_allowed()" icon="function" href="../functions/BotConfig-is_user_allowed">
    Check if a user is allowed to interact with the bot.
  </Card>

  <Card title="is_channel_allowed()" icon="function" href="../functions/BotConfig-is_channel_allowed">
    Check if a channel is allowed for bot interaction.
  </Card>
</CardGroup>

<Accordion title="Internal & Generic Methods">
  * **to\_dict**: Convert to dictionary (hides sensitive data).
</Accordion>

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/bots/config.py#L12">
  `praisonaiagents/bots/config.py` at line 12
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Configuration Overview" icon="gear" href="/docs/configuration/index" />

  <Card title="Agent Config" icon="robot" href="/docs/configuration/agent-config" />
</CardGroup>
