Oscar Shaw 80b89fd2ea feat: implements command management and improve webui feature structure (#3904)
move mcp management to plugin managemanet page

* feat: 新增命令配置数据库模型

* feat: 实现核心命令管理系统

* feat: 将命令管理集成到 Star 框架

* feat: 新增命令管理后台 API

* feat: 新增命令管理界面页面

* feat: 新增命令管理国际化支持

* test: 新增命令管理相关测试

* refactor(command): 移除指令重命名时的别名功能

* fix(command): 修正指令冲突检测逻辑

* fix(command): 排除已禁用指令的冲突检测

- 只有 `effective_command` 存在且 `enabled` 为 `True` 的指令才会被纳入冲突检测范围。

* feat(command): 优化指令冲突显示与提示

- 【功能】新增指令冲突警告提示,当检测到冲突时显示详细信息及解决方案。
- 【优化】调整指令列表排序逻辑,将冲突指令优先显示并分组。
- 【样式】为冲突指令行添加专属高亮样式,提升视觉识别度。
- 【国际化】更新英文和中文多语言文件,增加指令冲突警告相关的翻译文本。

* chore(command-page): 禁用命令表格部分列的排序功能

* style(command-page): 调整命令页面表格样式和图标大小

* refactor(command): 优化指令页面布局并更新冲突警告

- 【布局优化】重新组织指令管理页面布局,将筛选器移至顶部独立行
- 【信息展示】将搜索栏与总指令数、已禁用指令数合并显示,提升页面空间利用率
- 【视觉更新】更新指令冲突警告样式

* style: UI 细节

* refactor(command): 调整指令管理中的成员权限显示与筛选

  - 更新指令筛选逻辑,当选择“所有人”权限筛选时,将同时包含 `everyone` 和 `member` 权限的指令。

* feat(command-management): 新增指令层级管理与UI展示

- 【后端】
  - `CommandDescriptor` 新增 `parent_group_handler` 和 `sub_commands` 字段,支持指令层级结构定义。
  - `list_commands` 函数重构,实现指令的层级收集与构建,将子指令正确挂载到其父指令组下。
  - 新增 `_collect_all_descriptors` 和 `_find_parent_group_handler` 辅助函数,用于全面收集指令并定位父指令组。
  - `_build_descriptor` 优化指令类型判断逻辑,明确区分普通指令、指令组和子指令。
  - `_descriptor_to_dict` 递归处理子指令,确保 API 返回完整的指令层级数据。
- 【前端】
  - 指令管理页面 (`CommandPage.vue`) 增加指令类型筛选器,并支持指令组的展开/折叠功能。
  - 表格展示优化,为指令组和子指令添加不同的样式和缩进,提升层级结构的视觉可读性。
  - 指令详情对话框新增指令类型、所属指令组和子指令列表的展示。
  - 更新 `CommandItem` 接口,以适配后端提供的层级数据结构。
- 【i18n】
  - 新增指令类型(指令、指令组、子指令)的国际化文本。
  - 更新指令管理相关 UI 文本,包括表格头部、详情对话框字段和筛选器选项。

* style(command): 优化指令组子指令数量显示UI

* refactor(command): 修改指令列表排序逻辑

* style(command-page): 优化命令列表UI

* feat(command): 添加系统插件指令过滤与冲突处理

* refactor(command): 更新指令数展示逻辑

* style(command): 更新空状态描述

* feat(extension): 添加插件指令冲突检测与提示

- 在插件安装或启用后,自动检测并提示指令冲突。
- 当检测到指令冲突时,显示警告对话框,告知用户冲突数量及可能的影响。

* refactor(command): 移除指令表格内部加载指示器

* style(extension): 文案修改

* refactor(command): 模块化指令管理面板前端代码

* refactor(commandPanel): 重命名指令模块目录为 commandPanel

* style(commandPanel): 微调指令面板UI

* fix(command): 确保新命令配置的事务提交

* fix(sidebar): 补全新增侧边栏项后的侧边栏位追加逻辑

* refactor(commands): 重构/help指令以动态显示实际命令并补充部分命令描述

* style(builtin_commands): 补充命令描述

* refactor(commandPanel): 移除未使用的 filterState 常量

* perf(dashboard): 删除多余的CommandPage.vue文件(已被模块化引用)

* perf(command): 优化命令冲突计数逻辑

* perf(command): 优化指令管理辅助函数和配置绑定逻辑

* perf(db): 优化重构command相关数据库操作

* refactor(sidebar): 提取侧边栏项目解析逻辑到工具函数复用

* refactor: move mcp and command page to extension page

* refactor: remove unused imports in component panel

* fix: update terminology for handler management in extension localization

---------

Co-authored-by: Soulter <905617992@qq.com>
2025-12-16 20:24:57 +08:00
2025-12-15 16:58:32 +08:00
2025-11-07 15:41:03 +08:00
2025-05-01 20:32:05 +08:00
2023-04-15 15:33:00 +08:00
2025-12-05 15:59:18 +08:00
2025-11-07 15:41:03 +08:00
2025-02-24 00:31:57 +08:00
2025-12-15 16:58:32 +08:00
2025-12-15 11:47:21 +08:00

AstrBot-Logo-Simplified

AstrBot is an open-source all-in-one Agent chatbot platform that integrates with mainstream instant messaging apps. It provides reliable and scalable conversational AI infrastructure for individuals, developers, and teams. Whether you're building a personal AI companion, intelligent customer service, automation assistant, or enterprise knowledge base, AstrBot enables you to quickly build production-ready AI applications within your IM platform workflows.

image

Key Features

  1. 💯 Free & Open Source.
  2. AI LLM Conversations, Multimodal, Agent, MCP, Knowledge Base, Persona Settings.
  3. 🤖 Supports integration with Dify, Alibaba Cloud Bailian, Coze and other agent platforms.
  4. 🌐 Multi-Platform: QQ, WeChat Work, Feishu, DingTalk, WeChat Official Accounts, Telegram, Slack, and more.
  5. 📦 Plugin Extensions with nearly 800 plugins available for one-click installation.
  6. 💻 WebUI Support.
  7. 🌐 Internationalization (i18n) Support.

Quick Start

We recommend deploying AstrBot using Docker or Docker Compose.

Please refer to the official documentation: Deploy AstrBot with Docker.

uv Deployment

uvx astrbot

BT-Panel Deployment

AstrBot has partnered with BT-Panel and is now available in their marketplace.

Please refer to the official documentation: BT-Panel Deployment.

1Panel Deployment

AstrBot has been officially listed on the 1Panel marketplace.

Please refer to the official documentation: 1Panel Deployment.

Deploy on RainYun

AstrBot has been officially listed on RainYun's cloud application platform with one-click deployment.

Deploy on RainYun

Deploy on Replit

Community-contributed deployment method.

Run on Repl.it

Windows One-Click Installer

Please refer to the official documentation: Deploy AstrBot with Windows One-Click Installer.

CasaOS Deployment

Community-contributed deployment method.

Please refer to the official documentation: CasaOS Deployment.

Manual Deployment

First, install uv:

pip install uv

Install AstrBot via Git Clone:

git clone https://github.com/AstrBotDevs/AstrBot && cd AstrBot
uv run main.py

Or refer to the official documentation: Deploy AstrBot from Source.

Supported Messaging Platforms

Officially Maintained

  • QQ (Official Platform & OneBot)
  • Telegram
  • WeChat Work Application & WeChat Work Intelligent Bot
  • WeChat Customer Service & WeChat Official Accounts
  • Feishu (Lark)
  • DingTalk
  • Slack
  • Discord
  • Satori
  • Misskey
  • WhatsApp (Coming Soon)
  • LINE (Coming Soon)

Community Maintained

Supported Model Services

LLM Services

LLMOps Platforms

  • Dify
  • Alibaba Cloud Bailian Applications
  • Coze

Speech-to-Text Services

  • OpenAI Whisper
  • SenseVoice

Text-to-Speech Services

  • OpenAI TTS
  • Gemini TTS
  • GPT-Sovits-Inference
  • GPT-Sovits
  • FishAudio
  • Edge TTS
  • Alibaba Cloud Bailian TTS
  • Azure TTS
  • Minimax TTS
  • Volcano Engine TTS

❤️ Contributing

Issues and Pull Requests are always welcome! Feel free to submit your changes to this project :)

How to Contribute

You can contribute by reviewing issues or helping with pull request reviews. Any issues or PRs are welcome to encourage community participation. Of course, these are just suggestions—you can contribute in any way you like. For adding new features, please discuss through an Issue first.

Development Environment

AstrBot uses ruff for code formatting and linting.

git clone https://github.com/AstrBotDevs/AstrBot
pip install pre-commit
pre-commit install

🌍 Community

QQ Groups

  • Group 1: 322154837
  • Group 3: 630166526
  • Group 5: 822130018
  • Group 6: 753075035
  • Developer Group: 975206796

Telegram Group

Telegram_community

Discord Server

Discord_community

❤️ Special Thanks

Special thanks to all Contributors and plugin developers for their contributions to AstrBot ❤️

Additionally, the birth of this project would not have been possible without the help of the following open-source projects:

Star History

Tip

If this project has helped you in your life or work, or if you're interested in its future development, please give the project a Star. It's the driving force behind maintaining this open-source project <3

Star History Chart

私は、高性能ですから!

S
Description
No description provided
Readme AGPL-3.0 65 MiB
Languages
Python 69.1%
Vue 25.4%
TypeScript 3.4%
JavaScript 1.4%
Shell 0.3%
Other 0.4%