内容
<p align="center">
<img src="assets/logo.svg" width="112" alt="AuroraBot Logo" />
</p>
<h1 align="center">AuroraBot</h1>
<p align="center">
<b>中文</b> | <a href="README.en.md">English</a> | <a href="README.ja.md">日本語</a>
</p>
<p align="center">
<em>让 Bot 过上自己的生活。</em>
</p>
<p align="center">
<a href="https://github.com/AuroraBot-Dev/AuroraBot"><img src="https://img.shields.io/badge/GitHub-AuroraBot-181717?logo=github" alt="GitHub" /></a>
<a href="https://www.aurorabot.org/"><img src="https://img.shields.io/badge/Docs-aurorabot.org-315b7d" alt="Documentation" /></a>
<a href="https://github.com/AuroraBot-Dev/AuroraBot/actions/workflows/ci.yml"><img src="https://github.com/AuroraBot-Dev/AuroraBot/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-315b7d" alt="Apache 2.0" /></a>
<img src="https://img.shields.io/badge/Python-3.12-315b7d?logo=python&logoColor=white" alt="Python 3.12" />
</p>
## AuroraBot 是什么
AuroraBot 是一个为 Agent 提供可以"生活"的运行环境的 Bot 框架。我们想做的不是一个工具一般的 Agent,而是一个能够持续存在、形成自己的节律,并在环境中自主判断和行动的 Bot。
她有自己的人格、状态,可以在需要时与人和外部世界建立联系, 在她的世界里, 所有的消息都有一个"媒介": 你发给她的消息也必须先成为一个应用通知喔~
## 设计哲学
### 以 Bot 为中心设计一切
AuroraBot 把 Bot 当作世界的主体,而不是被调用的接口:她一直存在,拥有自己的人格、状态与边界,一切设计都围绕她的生活展开。这个原则落到架构上有三条:
- **她拥有世界,树只是她的运行**:Bot 持有追加式的世界提交(WorldJournal)与多棵 `AgentTree`。一棵树只是一次运行,不是与她平行的另一个主体;聊天、任务、委派都是她生活中的一次经历,经历结束,她仍然存在。
- **一切输入都有媒介**:任何影响她的变化都必须先成为一条世界事件。你发给她的消息要先作为 `console.input` 提交到她的世界,应用事件、MCP 上报、工具结果、时间的流逝也是如此。她不是在响应接口,而是在经历世界。
- **她理解之后才决定**:来自用户的消息不会因为来源就自动成为最高指令。她先理解发生了什么,再决定回应、行动、委派或保持安静;模型只负责理解与判断,外部行动必须经声明的 Tool 执行,结果再作为新事件回到她的世界。
## 快速开始
### 1. 克隆本仓库
需要 Python 3.12、Git 与 [uv](https://docs.astral.sh/uv/)
```bash
git clone https://github.com/AuroraBot-Dev/AuroraBot.git
cd AuroraBot
./scripts/linux/setup.sh
# macOS: ./scripts/macos/setup.command;
# Windows: .\scripts\windows\setup.ps1.
```
`setup.sh` 会检查 git/uv/pnpm,询问是否将 aurora 全局链接到用户工具目录,然后由 `aurora setup` 完成依赖同步、个人配置以及 docs/panel 子模块引导。
### 2. 填写必要配置
在 `.env` 中填入默认模型所需密钥(如 `DEEPSEEK_API_KEY`)
### 3. 从终端启动
```bash
aurora start
```
启动后直接输入消息即可对话;输入 `/help` 查看操作,输入 `/exit` 停止。
## AIGC
本项目存在由大语言模型或扩散模型等生成式模型辅助编写的代码, 并经由人工审核.
## 参与贡献
见[参与 AuroraBot](CONTRIBUTING.md)与[AuroraBot 文档站](https://www.aurorabot.org), 提交贡献即表示你同意遵守项目的[社区行为准则](CODE_OF_CONDUCT.md).
## 开源致谢
AuroraBot 的诞生离不开许多优秀的开源项目:
| 项目 | 在 AuroraBot 中的用途 |
| ---------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| [LiteLLM](https://github.com/BerriAI/litellm) | 模型 Provider 接入与调用基础设施 |
| [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) | MCP 客户端与工具协议 |
| [FastAPI](https://github.com/fastapi/fastapi) / [Uvicorn](https://github.com/encode/uvicorn) | Panel 本地后端 |
| [prompt_toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) / [Rich](https://github.com/Textualize/rich) | Console 与终端体验 |
| [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) / [aiosqlite](https://github.com/omnilib/aiosqlite) | WorldJournal 持久化 |
也感谢其他开源 Agent/Bot 项目对这个领域的探索。特别感谢 [MaiBot](https://github.com/MaiM-with-u/MaiBot),其"数字生命"理念为 AuroraBot 的早期思考提供了重要启发。
## 许可证
本项目以 [Apache License 2.0](LICENSE) 协议开源。