* fix(core): 优化 File 组件处理逻辑并增强 OneBot 驱动层路径兼容性
原因 (Necessity):
1. 内核一致性:AstrBot 内核的 Record 和 Video 组件均具备识别 `file:///` 协议头的逻辑,但 File 组件此前缺失此功能,导致行为不统一。
2. OneBot 协议合规:OneBot 11 标准要求本地文件路径必须使用 `file:///` 协议头。此前驱动层未对裸路径进行自动转换,导致发送本地文件时常触发 retcode 1200 (识别URL失败) 错误。
3. 容器环境适配:在 Docker 等路径隔离环境下,裸路径更容易因驱动或协议端的解析歧义而失效。
更改 (Changes):
- [astrbot/core/message/components.py]:
- 在 File.get_file() 中增加对 `file:///` 前缀的识别与剥离逻辑,使其与 Record/Video 组件行为对齐。
- [astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py]:
- 在发送文件前增加自动修正逻辑:若路径为绝对路径且未包含协议头,驱动层将自动补全 `file:///` 前缀。
- 对 http、base64 及已有协议头,确保不干扰原有的正常传输逻辑。
影响 (Impact):
- 以完全兼容的方式增强了文件发送的鲁棒性。
- 解决了插件在发送日志等本地生成的压缩包时,因路径格式不规范导致的发送失败问题。
* refactor(core): 根据 cr 建议,规范化文件 URI 生成与解析逻辑,优化跨平台兼容性
原因 (Necessity):
1. 修复原生路径与 URI 转换在 Windows 下的不对称问题。
2. 规范化 file: 协议头处理,确保符合 RFC 标准并能在 Linux/Windows 间稳健切换。
3. 增强协议判定准确度,防止对普通绝对路径的误处理。
更改 (Changes):
- [astrbot/core/platform/sources/aiocqhttp]:
- 弃用手动拼接,改用 `pathlib.Path.as_uri()` 生成标准 URI。
- 将协议检测逻辑从前缀匹配优化为包含性检测 ("://")。
- [astrbot/core/message/components]:
- 重构 `File.get_file` 解析逻辑,支持对称处理 2/3 斜杠格式。
- 针对 Windows 环境增加了对 `file:///C:/` 格式的自动修正,避免 `os.path` 识别失效。
- [data/plugins/astrbot_plugin_logplus]:
- 在直接 API 调用中同步应用 URI 规范化处理。
影响 (Impact):
- 解决 Docker 环境中因路径不规范导致的 "识别URL失败" 报错。
- 提升了本体框架在 Windows 系统下的文件操作鲁棒性。
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.
Key Features
- 💯 Free & Open Source.
- ✨ AI LLM Conversations, Multimodal, Agent, MCP, Skills, Knowledge Base, Persona Settings, Auto Context Compression.
- 🤖 Supports integration with Dify, Alibaba Cloud Bailian, Coze, and other agent platforms.
- 🌐 Multi-Platform: QQ, WeChat Work, Feishu, DingTalk, WeChat Official Accounts, Telegram, Slack, and more.
- 📦 Plugin Extensions with 1000+ plugins available for one-click installation.
- 🛡️ Agent Sandbox for isolated, safe execution of code, shell calls, and session-level resource reuse.
- 💻 WebUI Support.
- 🌈 Web ChatUI Support with built-in agent sandbox and web search.
- 🌐 Internationalization (i18n) Support.
| 💙 Role-playing & Emotional Companionship | ✨ Proactive Agent | 🚀 General Agentic Capabilities | 🧩 1000+ Community Plugins |
|---|---|---|---|
Quick Start
Docker Deployment (Recommended 🥳)
We recommend deploying AstrBot using Docker or Docker Compose.
Please refer to the official documentation: Deploy AstrBot with Docker.
uv Deployment
uv tool install astrbot
astrbot
System Package Manager Installation
Arch Linux
yay -S astrbot-git
# or use paru
paru -S astrbot-git
Desktop Application (Tauri)
Desktop repository: AstrBot-desktop.
Supports multiple system architectures, direct installation, out-of-the-box experience. Ideal for beginners.
AstrBot Launcher
Quick deployment and multi-instance solution. Visit the AstrBot Launcher repository and find the latest release for your system.
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 Replit
Community-contributed deployment method.
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
- LINE
- WhatsApp (Coming Soon)
Community Maintained
Supported Model Services
LLM Services
- OpenAI and Compatible Services
- Anthropic
- Google Gemini
- Moonshot AI
- Zhipu AI
- DeepSeek
- Ollama (Self-hosted)
- LM Studio (Self-hosted)
- CompShare
- 302.AI
- TokenPony
- SiliconFlow
- PPIO Cloud
- ModelScope
- OneAPI
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
- Group 7: 743746109
- Group 8: 1030353265
- Developer Group: 975206796
Telegram Group
Discord Server
❤️ 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:
- NapNeko/NapCatQQ - The amazing cat framework
⭐ 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
