Skip to content
AstrBot
Main Navigation 主页博客路线图HTTP API

简体中文

English

简体中文

English

切换日光/暗黑模式

简介和部署接入消息平台接入 AI使用开发
Sidebar Navigation

简介

关于 AstrBot

社区

常见问题

部署

包管理器部署

雨云一键云部署

桌面客户端部署

启动器一键部署

Docker 部署

Kubernetes 部署

宝塔面板部署

1Panel 部署

手动部署

其他部署方式

CasaOS 部署

优云智算 GPU 部署

社区提供的部署方式

支持我们

接入消息平台

快速接入指南

QQ 官方机器人

Webhook 方式

Websockets 方式

企微应用

企微智能机器人

微信公众号

飞书

钉钉

Telegram

LINE

Slack

Misskey

Discord

OneBot v11

NapCat

Lagrange

其他端

Satori

使用 LLOneBot

使用 server-satori

社区提供

Matrix

KOOK

VoceChat

接入 AI

✨ 接入模型服务

NewAPI

AIHubMix

PPIO 派欧云

硅基流动

小马算力

302.AI

Ollama

LMStudio

⚙️ Agent 执行器

内置 Agent 执行器

Dify

扣子 Coze

阿里云百炼应用

使用

WebUI

插件

内置指令

工具使用 Tools

技能 Skills

SubAgent 编排

主动型 Agent 能力

MCP

网页搜索

知识库

自定义规则

Agent 执行器

统一 Webhook 模式

自动上下文压缩

Agent 沙箱环境

开发

插件开发

🌠 从这里开始

最小实例

接收消息事件

发送消息

插件配置

调用 AI

存储

文转图

会话控制器

杂项

发布插件

插件指南(旧)

接入平台适配器

AstrBot HTTP API

AstrBot 配置文件

其他

自部署文转图

插件下载不了?试试自建 GitHub 加速服务

开源之夏

OSPP 2025

目录

AstrBot 配置文件 ​

data/cmd_config.json ​

AstrBot 的配置文件是一个 JSON 格式的文件。AstrBot 会在启动时读取这个文件,并根据文件中的配置来初始化 AstrBot,其路径位于 data/cmd_config.json。

在 AstrBot v4.0.0 版本及之后,我们引入了多配置文件的概念。data/cmd_config.json 作为默认配置文件 default。其他您在 WebUI 新建的配置文件会存储在 data/config/ 目录下,以 abconf_ 开头。

AstrBot 默认配置如下:

jsonc
{
    "config_version": 2,
    "platform_settings": {
        "unique_session": False,
        "rate_limit": {
            "time": 60,
            "count": 30,
            "strategy": "stall",  # stall, discard
        },
        "reply_prefix": "",
        "forward_threshold": 1500,
        "enable_id_white_list": True,
        "id_whitelist": [],
        "id_whitelist_log": True,
        "wl_ignore_admin_on_group": True,
        "wl_ignore_admin_on_friend": True,
        "reply_with_mention": False,
        "reply_with_quote": False,
        "path_mapping": [],
        "segmented_reply": {
            "enable": False,
            "only_llm_result": True,
            "interval_method": "random",
            "interval": "1.5,3.5",
            "log_base": 2.6,
            "words_count_threshold": 150,
            "regex": ".*?[。?!~…]+|.+$",
            "content_cleanup_rule": "",
        },
        "no_permission_reply": True,
        "empty_mention_waiting": True,
        "empty_mention_waiting_need_reply": True,
        "friend_message_needs_wake_prefix": False,
        "ignore_bot_self_message": False,
        "ignore_at_all": False,
    },
    "provider": [],
    "provider_settings": {
        "enable": True,
        "default_provider_id": "",
        "default_image_caption_provider_id": "",
        "image_caption_prompt": "Please describe the image using Chinese.",
        "provider_pool": ["*"],  # "*" 表示使用所有可用的提供者
        "wake_prefix": "",
        "web_search": False,
        "websearch_provider": "default",
        "websearch_tavily_key": [],
        "web_search_link": False,
        "display_reasoning_text": False,
        "identifier": False,
        "group_name_display": False,
        "datetime_system_prompt": True,
        "default_personality": "default",
        "persona_pool": ["*"],
        "prompt_prefix": "{{prompt}}",
        "max_context_length": -1,
        "dequeue_context_length": 1,
        "streaming_response": False,
        "show_tool_use_status": False,
        "streaming_segmented": False,
        "max_agent_step": 30,
        "tool_call_timeout": 60,
    },
    "provider_stt_settings": {
        "enable": False,
        "provider_id": "",
    },
    "provider_tts_settings": {
        "enable": False,
        "provider_id": "",
        "dual_output": False,
        "use_file_service": False,
    },
    "provider_ltm_settings": {
        "group_icl_enable": False,
        "group_message_max_cnt": 300,
        "image_caption": False,
        "active_reply": {
            "enable": False,
            "method": "possibility_reply",
            "possibility_reply": 0.1,
            "whitelist": [],
        },
    },
    "content_safety": {
        "also_use_in_response": False,
        "internal_keywords": {"enable": True, "extra_keywords": []},
        "baidu_aip": {"enable": False, "app_id": "", "api_key": "", "secret_key": ""},
    },
    "admins_id": ["astrbot"],
    "t2i": False,
    "t2i_word_threshold": 150,
    "t2i_strategy": "remote",
    "t2i_endpoint": "",
    "t2i_use_file_service": False,
    "t2i_active_template": "base",
    "http_proxy": "",
    "no_proxy": ["localhost", "127.0.0.1", "::1"],
    "dashboard": {
        "enable": True,
        "username": "astrbot",
        "password": "77b90590a8945a7d36c963981a307dc9",
        "jwt_secret": "",
        "host": "0.0.0.0",
        "port": 6185,
    },
    "platform": [],
    "platform_specific": {
        # 平台特异配置:按平台分类,平台下按功能分组
        "lark": {
            "pre_ack_emoji": {"enable": False, "emojis": ["Typing"]},
        },
        "telegram": {
            "pre_ack_emoji": {"enable": False, "emojis": ["✍️"]},
        },
    },
    "wake_prefix": ["/"],
    "log_level": "INFO",
    "trace_enable": False,
    "pip_install_arg": "",
    "pypi_index_url": "https://mirrors.aliyun.com/pypi/simple/",
    "persona": [],  # deprecated
    "timezone": "Asia/Shanghai",
    "callback_api_base": "",
    "default_kb_collection": "",  # 默认知识库名称
    "plugin_set": ["*"],  # "*" 表示使用所有可用的插件, 空列表表示不使用任何插件
}

字段详解 ​

config_version ​

配置文件版本,请勿修改。

platform_settings ​

消息平台适配器的通用设置。

platform_settings.unique_session ​

是否启用会话隔离。默认为 false。启用后,在群组或者频道中,每个人的对话的上下文都是独立的。

platform_settings.rate_limit ​

当消息速率超过限制时的处理策略。time 为时间窗口,count 为消息数量,strategy 为限制策略。stall 为等待,discard 为丢弃。

platform_settings.reply_prefix ​

回复消息时的固定前缀字符串。默认为空。

platform_settings.forward_threshold ​

目前仅 QQ 平台适配器适用。

消息转发阈值。当回复内容超过一定字数后,机器人会将消息折叠成 QQ 群聊的 “转发消息”,以防止刷屏。

platform_settings.enable_id_white_list ​

是否启用 ID 白名单。默认为 true。启用后,只有在白名单中的 ID 发来的消息才会被处理。

platform_settings.id_whitelist ​

ID 白名单。填写后,将只处理所填写的 ID 发来的消息事件。为空时表示不启用白名单过滤。可以使用 /sid 指令获取在某个平台上的会话 ID。

也可在 AstrBot 日志内获取会话 ID,当一条消息没通过白名单时,会输出 INFO 级别的日志,格式类似 aiocqhttp:GroupMessage:547540978

platform_settings.id_whitelist_log ​

是否打印未通过 ID 白名单的消息日志。默认为 true。

platform_settings.wl_ignore_admin_on_group & platform_settings.wl_ignore_admin_on_friend ​

  • wl_ignore_admin_on_group: 是否管理员发送的群组消息无视 ID 白名单。默认为 true。

  • wl_ignore_admin_on_friend: 是否管理员发送的私聊消息无视 ID 白名单。默认为 true。

platform_settings.reply_with_mention ​

是否在回复消息时 @ 提到用户。默认为 false。

platform_settings.reply_with_quote ​

是否在回复消息时引用用户的消息。默认为 false。

platform_settings.path_mapping ​

该配置项已经在 v4.0.0 版本之后被废弃。

路径映射列表。用于将消息中的文件路径进行替换。每个映射项包含 from 和 to 两个字段,表示将消息中的 from 路径替换为 to 路径。

platform_settings.segmented_reply ​

分段回复设置。

  • enable: 是否启用分段回复。默认为 false。
  • only_llm_result: 是否仅对 LLM 生成的回复进行分段。默认为 true。
  • interval_method: 分段间隔方法。可选值为 random 和 log。默认为 random。
  • interval: 分段间隔时间。对于 random 方法,填写两个逗号分隔的数字,表示最小和最大间隔时间(单位:秒)。对于 log 方法,填写一个数字,表示对数基底。默认为 "1.5,3.5"。
  • log_base: 对数基底,仅在 interval_method 为 log 时适用。默认为 2.6。
  • words_count_threshold: 分段回复的字数上限。只有字数小于此值的消息才会被分段,超过此值的长消息将直接发送(不分段)。默认为 150。
  • regex: 用于分隔一段消息。默认情况下会根据句号、问号等标点符号分隔。re.findall(r'<regex>', text)。默认值为 ".*?[。?!~…]+|.+$"。
  • content_cleanup_rule: 移除分段后的内容中的指定的内容。支持正则表达式。如填写 [。?!] 将移除所有的句号、问号、感叹号。re.sub(r'<regex>', '', text)。

platform_settings.no_permission_reply ​

是否在用户没有权限时回复无权限的提示消息。默认为 true。

platform_settings.empty_mention_waiting ​

是否启用空 @ 等待机制。默认为 true。启用后,当用户发送一条仅包含 @ 机器人的消息时,机器人会等待用户在 60 秒内发送下一条消息,并将两条消息合并后进行处理。这在某些平台不支持 @ 和语音/图片等消息同时发送时特别有用。

platform_settings.empty_mention_waiting_need_reply ​

在上面一个配置项(empty_mention_waiting)中,如果启用了触发等待,启用此项后,机器人会立即使用 LLM 生成一条回复。否则,将不回复而只是等待。默认为 true。

platform_settings.friend_message_needs_wake_prefix ​

是否在消息平台的私聊消息中需要唤醒前缀。默认为 false。启用后,在私聊消息中,用户需要使用唤醒前缀才能触发机器人的响应。

platform_settings.ignore_bot_self_message ​

是否忽略机器人自己发送的消息。默认为 false。启用后,机器人将不会处理自己发送的消息,在某些平台可以防止死循环。

platform_settings.ignore_at_all ​

是否忽略 @ 全体成员的消息。默认为 false。启用后,机器人将不会响应包含 @ 全体成员的消息。

provider ​

此配置项仅在 data/cmd_config.json 中生效,AstrBot 不会读取 data/config/ 目录下的配置文件中的此项。

已配置的模型服务提供商的配置列表。

provider_settings ​

大语言模型提供商的通用设置。

provider_settings.enable ​

是否启用大语言模型聊天。默认为 true。

provider_settings.default_provider_id ​

默认的对话模型提供商 ID。必须是 provider 列表中已配置的提供商 ID。如果为空,则使用配置列表中的第一个对话模型提供商。

provider_settings.default_image_caption_provider_id ​

默认的图像描述模型提供商 ID。必须是 provider 列表中已配置的提供商 ID。如果为空,则代表不使用图像描述功能。

此配置项的意思是,当用户发送一张图片时,AstrBot 会使用此提供商来生成对图片的描述文本,并将描述文本作为对话的上下文之一。这在对话模型不支持多模态输入时特别有用。

provider_settings.image_caption_prompt ​

图像描述的提示词模板。默认为 "Please describe the image using Chinese."。

provider_settings.provider_pool ​

此配置项尚未实际使用

provider_settings.wake_prefix ​

使用 LLM 聊天额外的触发条件。如填写 chat,则需要发送消息时要以 /chat 才能触发 LLM 聊天。其中 / 是机器人的唤醒前缀。是一个防止滥用的手段。

provider_settings.web_search ​

是否启用 AstrBot 自带的网页搜索能力。默认为 false。启用后,LLM 可能会自动搜索网页并根据内容回答。

provider_settings.websearch_provider ​

网页搜索提供商类型。默认为 default。目前支持 default 和 tavily。

  • default:能访问 Google 时效果最佳。如果 Google 访问失败,程序会依次访问 Bing, Sogo 搜索引擎。

  • tavily:使用 Tavily 搜索引擎。

provider_settings.websearch_tavily_key ​

Tavily 搜索引擎的 API Key 列表。使用 tavily 作为网页搜索提供商时需要填写。

provider_settings.web_search_link ​

是否在回复中提示模型附上搜索结果的链接。默认为 false。

provider_settings.display_reasoning_text ​

是否在回复中显示模型的推理过程。默认为 false。

provider_settings.identifier ​

是否在 Prompt 前加上群成员的名字以让模型更好地了解群聊状态。默认为 false。启用将略微增加 token 开销。

provider_settings.group_name_display ​

是否在提示模型了解所在群的名称。默认为 false。此配置项目前仅在 QQ 平台适配器中生效。

provider_settings.datetime_system_prompt ​

是否在系统提示词中加上当前机器的日期时间。默认为 true。

provider_settings.default_personality ​

默认使用的人格的 ID。请在 WebUI 配置人格。

provider_settings.persona_pool ​

此配置项尚未实际使用

provider_settings.prompt_prefix ​

用户提示词。可使用 作为用户输入的占位符。如果不输入占位符则代表添加在用户输入的前面。

provider_settings.max_context_length ​

当对话上下文超出这个数量时丢弃最旧的部分,一轮聊天记为 1 条。-1 为不限制。

provider_settings.dequeue_context_length ​

当触发上面提到的 max_context_length 限制时,每次丢弃的对话轮数。

provider_settings.streaming_response ​

是否启用流式响应。默认为 false。启用后,模型的回复会实时类似打字机的效果发送给用户。此配置项仅在 WebChat、Telegram、飞书平台生效。

provider_settings.show_tool_use_status ​

是否显示工具使用状态。默认为 false。启用后,模型在使用工具时会显示工具的名称和输入参数。

provider_settings.streaming_segmented ​

不支持流式响应的消息平台是否降级为使用分段回复。默认为 false。意思是,如果启用了流式响应,但当前消息平台不支持流式响应,那么是否使用分段多次回复来代替。

provider_settings.max_agent_step ​

Agent 最大步骤数限制。默认为 30。模型的每次工具调用算作一步。

provider_settings.tool_call_timeout ​

Added in v4.3.5

工具调用的最大超时时间(秒),默认为 60 秒。

provider_stt_settings ​

语音转文本服务提供商的通用设置。

provider_stt_settings.enable ​

是否启用语音转文本服务。默认为 false。

provider_stt_settings.provider_id ​

语音转文本服务提供商 ID。必须是 provider 列表中已配置的 STT 提供商 ID。

provider_tts_settings ​

文本转语音服务提供商的通用设置。

provider_tts_settings.enable ​

是否启用文本转语音服务。默认为 false。

provider_tts_settings.provider_id ​

文本转语音服务提供商 ID。必须是 provider 列表中已配置的 TTS 提供商 ID。

provider_tts_settings.dual_output ​

是否启用双输出。默认为 false。启用后,机器人会同时发送文本和语音消息。

provider_tts_settings.use_file_service ​

是否启用文件服务。默认为 false。启用后,机器人会将输出的语音文件以 HTTP 文件外链的形式提供给消息平台。此配置项依赖于 callback_api_base 的配置。

provider_ltm_settings ​

群聊上下文感知服务提供商的通用设置。

provider_ltm_settings.group_icl_enable ​

是否启用群聊上下文感知。默认为 false。启用后,机器人会记录群聊中的对话内容,以便更好地理解群聊的上下文。

上下文的内容会被放在对话的系统提示词中。

provider_ltm_settings.group_message_max_cnt ​

群聊消息的最大记录数量。默认为 100。超过此数量的消息将被丢弃。

provider_ltm_settings.image_caption ​

是否记录群聊中的图片,并自动使用图像描述模型生成图片的描述文本。默认为 false。此配置项依赖于 provider_settings.default_image_caption_provider_id 的配置。请谨慎使用,因为这可能会增加大量的 API 调用和 token 开销。

provider_ltm_settings.active_reply ​

  • enable: 是否启用主动回复。默认为 false。
  • method: 主动回复的方法。可选值为 possibility_reply。
  • possibility_reply: 主动回复的概率。默认为 0.1。仅在 method 为 possibility_reply 时适用。
  • whitelist: 主动回复的 ID 白名单。仅在此列表中的 ID 才会触发主动回复。为空时表示不启用白名单过滤。可以使用 /sid 指令获取在某个平台上的会话 ID。

content_safety ​

内容安全设置。

content_safety.also_use_in_response ​

是否在 LLM 回复中也进行内容安全检查。默认为 false。启用后,机器人生成的回复也会经过内容安全检查,以防止生成不当内容。

content_safety.internal_keywords ​

内部关键词检测设置。

  • enable: 是否启用内部关键词检测。默认为 true。
  • extra_keywords: 额外的关键词列表,支持正则表达式。默认为空。

content_safety.baidu_aip ​

百度 AI 内容审核设置。

  • enable: 是否启用百度 AI 内容审核。默认为 false。
  • app_id: 百度 AI 内容审核的 App ID。
  • api_key: 百度 AI 内容审核的 API Key。
  • secret_key: 百度 AI 内容审核的 Secret Key。

TIP

如果要启用百度 AI 内容审核,请先 pip install baidu-aip。

admins_id ​

管理员 ID 列表。此外,还可以使用 /op, /deop 指令来添加或删除管理员。

t2i ​

是否启用文本转图像功能。默认为 false。启用后,当用户发送的消息超过一定字数时,机器人会将消息渲染成图片发送给用户,以提高可读性并防止刷屏。支持 Markdown 渲染。

t2i_word_threshold ​

文本转图像的字数阈值。默认为 150。当用户发送的消息超过此字数时,机器人会将消息渲染成图片发送给用户。

t2i_strategy ​

文本转图像的渲染策略。可选值为 local 和 remote。默认为 remote。

  • local: 使用 AstrBot 本地的文本转图像服务进行渲染。效果较差,但不依赖外部服务。
  • remote: 使用远程的文本转图像服务进行渲染。默认使用 AstrBot 官方提供的服务,效果较好。

t2i_endpoint ​

AstrBot API 的地址。用于渲染 Markdown 图片。当 t2i_strategy 为 remote 时生效。默认为空,表示使用 AstrBot 官方提供的服务。

t2i_use_file_service ​

是否启用文件服务。默认为 false。启用后,机器人会将渲染的图片以 HTTP 文件外链的形式提供给消息平台。此配置项依赖于 callback_api_base 的配置。

http_proxy ​

HTTP 代理。如 http://localhost:7890。

no_proxy ​

不使用代理的地址列表。如 ["localhost", "127.0.0.1"]。

dashboard ​

AstrBot WebUI 配置。

请不要随意修改 password 的值。它是一个经过 md5 编码的密码。请在控制面板修改密码。

  • enable: 是否启用 AstrBot WebUI。默认为 true。
  • username: AstrBot WebUI 的用户名。默认为 astrbot。
  • password: AstrBot WebUI 的密码。默认为 astrbot 的 md5 编码值。请勿直接修改,除非您知道自己在做什么。
  • jwt_secret: JWT 的密钥。AstrBot 会在初始化时随机生成。请勿修改,除非您知道自己在做什么。
  • host: AstrBot WebUI 监听的地址。默认为 0.0.0.0。
  • port: AstrBot WebUI 监听的端口。默认为 6185。

platform ​

此配置项仅在 data/cmd_config.json 中生效,AstrBot 不会读取 data/config/ 目录下的配置文件中的此项。

已配置的 AstrBot 消息平台适配器的配置列表。

platform_specific ​

平台特异配置。按平台分类,平台下按功能分组。

platform_specific.<platform>.pre_ack_emoji ​

启用后,当请求 LLM 前,AstrBot 会先发送一个预回复的表情以告知用户正在处理请求。此功能目前仅在飞书平台适配器和 Telegram 中生效。

lark (飞书) ​
  • enable: 是否启用飞书消息预回复表情。默认为 false。
  • emojis: 预回复的表情列表。默认为 ["Typing"]。表情枚举名参考:表情文案说明

telegram ​

  • enable: 是否启用 Telegram 消息预回复表情。默认为 false。
  • emojis: 预回复的表情列表。默认为 ["✍️"]。Telegram 仅支持固定反应集合,参考:reactions.txt

wake_prefix ​

唤醒前缀。默认为 /。当消息以 / 开头时,AstrBot 会被唤醒。

TIP

如果唤醒的会话不在 ID 白名单中,AstrBot 将不会响应。

log_level ​

日志级别。默认为 INFO。可以设置为 DEBUG, INFO, WARNING, ERROR, CRITICAL。

trace_enable ​

是否启用追踪记录。默认为 false。启用后,AstrBot 会记录运行追踪信息,可以在管理面板的 Trace 页面查看。

pip_install_arg ​

pip install 的参数。如 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple。

pypi_index_url ​

PyPI 镜像源地址。默认为 https://mirrors.aliyun.com/pypi/simple/。

persona ​

此配置项已经在 v4.0.0 版本之后被废弃。请使用 WebUI 来配置人格。

已配置的人格列表。每个人格包含 id, name, description, system_prompt 四个字段。

timezone ​

时区设置。请填写 IANA 时区名称, 如 Asia/Shanghai, 为空时使用系统默认时区。所有时区请查看: IANA Time Zone Database。

callback_api_base ​

AstrBot API 的基础地址。用于文件服务和插件回调等功能。如 http://example.com:6185。默认为空,表示不启用文件服务和插件回调功能。

default_kb_collection ​

默认知识库名称。用于 RAG 功能。如果为空,则不使用知识库。

plugin_set ​

已启用的插件列表。* 表示启用所有可用的插件。默认为 ["*"]。

发现文档有问题?在 GitHub 上编辑此页

Last updated:

Pager
上一篇AstrBot HTTP API
下一篇自部署文转图

Deployed on Rainyun Logo