Skip to main content

AmritaBot - 基于 NoneBot 与 AmritaCore 的 Agent Bot 项目

Python License NoneBot

Amrita 是一个基于NoneBot2AmritaCore的强大聊天机器人项目,专为快速构建和部署智能聊天机器人而设计。它是一个完整的 LLM 聊天机器人解决方案,具有强大的功能和灵活性。

🌟 特性亮点

  • 供应商无关性: 基于AmritaCore原生开发,原生支持Anthropic/OpenAI/DeepSeek/Gemini等多种厂商。
  • 多模态能力: 支持处理图像等多媒体内容
  • 灵活适配: 原生支持 Onebot-V11 协议,轻松对接 QQ 等平台
  • 智能会话管理: 内置会话控制和历史存储管理
  • 插件化架构: 模块化设计,易于扩展和定制,复用NoneBot2插件系统
  • 开箱即用: 预设丰富的回复模板和功能配置
  • CLI 工具: 一体化命令行管理工具,简化开发和部署流程
  • Agent: 支持Agent推理
  • 智能上下文管理: 支持智能Session管理
  • Web UI: 集成 Web UI,提供可视化管理界面,基于 FastAPI + React 19 + ShadCN UI + TailwindCSS V4 构建。
  • MCP: 源生MCP Client集成

📚 文档和资源

📦 安装

使用模板创建

# 需要先安装模板:pip install amctl-template-ambot
amctl create -t ambot

手动安装

uv add amrita

⚙️ 环境变量参考

所有配置通过项目根目录的 .env 文件(或系统环境变量)注入,NoneBot 启动时自动读取。 以下按来源分类:Amrita 自定义get_plugin_config 读取)、NoneBot 官方get_driver().config 读取)。

Amrita 自定义配置

变量 默认值 说明
LOG_DIR logs 日志目录(含 realtime.jsonl 实时日志、event.json 事件追溯)
MAX_EVENT_RECORD 1000 事件追溯(event.json)最大记录条数
ADMIN_GROUP -1 管理员群组 ID(-1 表示未设置;0~10000 的非法值自动重置为 -1)
AMRITA_LOG_LEVEL WARNING Amrita 日志级别:DEBUG/INFO/WARNING/ERROR/CRITICAL
PUBLIC_GROUP 0 公开群组 ID(Bot 对外展示)
BOT_NAME Amrita 机器人名称
RATE_LIMIT 5 请求速率限制(间隔秒)
DISABLE_BUILTIN_MENU false 是否禁用内置菜单
AUTO_APPROVE_FRIEND_REQUEST true 是否自动通过好友申请
AUTO_APPROVE_GROUP_REQUEST true 是否自动通过拉群申请
USAGE_CHECK_TIME 400 用量统计添加间隔(毫秒)
NO_AMRITA_FLAG false 是否禁用 /amrita 信息输出
WEBUI_ENABLE true 是否启用 WebUI
WEBUI_USER_NAME admin WebUI 登录用户名
WEBUI_PASSWORD admin123 WebUI 登录密码(出厂默认值,使用默认密码时 WebUI 会拒绝访问,必须修改)
NO_ENV_EDITOR true 是否禁用 WebUI 的 Dotenv 编辑(默认禁用防敏感数据泄露;为 true 时页面提示不可用,读写接口均拒绝;需要编辑时设为 false

NoneBot 官方配置

变量 默认值 说明
SUPERUSERS [] 超级用户列表(JSON 数组,如 ["3196373166"]),拥有最高权限(LitePerm 管理员、自动清理白名单)
COMMAND_START ["/"] 命令起始符(聊天命令前缀、菜单命令解析)
LOG_LEVEL INFO NoneBot 日志级别(ORM 等插件跟随)
ENVIRONMENT prod 运行环境:dev/prod
DRIVER ~fastapi NoneBot 驱动器(WebUI/API 依赖 FastAPI 驱动)
HOST 127.0.0.1 服务监听地址
PORT 8080 服务监听端口(WebUI 默认使用 11451

前端开发环境

变量 默认值 说明
AMRITA_API_TARGET http://127.0.0.1:11451 dev server 的 API/WS 代理目标(bun run dev 时生效)

提示:.env 可通过 WebUI「系统信息 → Dotenv 编辑」在线查看和修改;修改后需重启生效。

🛠️ 开发

环境要求

  • Python 3.10+
  • uv(Python 包管理)
  • Bun 1.x(前端构建)

一键开发运行(后端 + 构建前端)

bash scripts/dev-development.sh

依次执行:清理构建产物 -> 构建前端(含类型检查)-> 启动后端(uv run ambot run)。

常用参数:

bash scripts/dev-development.sh --skip-clean       # 跳过清理
bash scripts/dev-development.sh --skip-typecheck   # 构建时跳过类型检查
bash scripts/dev-development.sh --no-restart       # 仅清理 + 构建,不重启后端

前端开发环境(dev server + 热更新)

bash scripts/dev-frontend.sh

依次执行:清理构建产物 -> 后台启动后端 -> 前台启动前端 dev server(bun run dev, API/WS 自动代理到后端),Ctrl+C 退出时自动停止后端。

完整构建(发布)

bash scripts/full-build.sh

依次执行:清理构建产物 -> 构建前端(输出到 amrita/plugins/webui/service/static/)-> uv build 构建后端包(dist/ 下生成 wheel + sdist)。

其他脚本

bash scripts/cleanup.sh            # 清理全部构建产物(static/、dist/、build/、egg-info、realtime.jsonl)
bash scripts/cleanup.sh --dry-run  # 预演模式,仅列出将删除的内容
bash scripts/build-frontend.sh     # 仅构建前端(含 typecheck)

前端开发(Bun dev server)

cd frontend
bun install
bun run dev   # http://localhost:3000,/api 与 /amrita/ui/ws 代理到后端 11451

前端源码位于 frontend/(React 19 + TypeScript + ShadCN UI),构建产物输出到 amrita/plugins/webui/service/static/(已 gitignore,不提交)。

🤝 贡献

欢迎提交 Issue 和 Pull Request 来帮助改进 Amrita!

贡献指南

📄 许可证

本项目采用 AGPL-3.0 许可证,详见LICENSE文件。

Release files for amrita 1.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amrita 1.6.4
File Size Uploaded
amrita-1.6.4.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for amrita 1.6.4
File Interpreter ABI Platform
amrita-1.6.4-py3-none-any.whl Python 3 none any Details

Total release size: 3.1 MB

Release files / amrita-1.6.4.tar.gz

Download URL amrita-1.6.4.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
750e1c0dd89e791a1791ed6b69515fab984a2002e4f13fbf2085c5830097a7fe
BLAKE2b-256 checksum
How to use checksums
6dd5f12d2452315840b9f0d05695183d86a0f28609cfb02c7713fc2d3fccd0e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / amrita-1.6.4-py3-none-any.whl

Download URL amrita-1.6.4-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
1d8a2b8a4478f5492cccab7294833c469ac32d65966e5d63f9fd341f23656899
BLAKE2b-256 checksum
How to use checksums
105d51ebf08bc94a09649aca1b133494125cb0676a7cdd09565f9c4022d79576
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.7

2 release files

1.6.6

2 release files

1.6.5

2 release files

This release

1.6.4 This release

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page