📖 介绍
2.0 版本更新,轻量化依赖,全部使用 API 进行调用,基本上任何设备都能运行。
本插件主体使用 langchain 的 agent 进行决策,由 langchain 调用 tools 进行一系列任务。
- 群体认知档案:由 bot 在发现值得长期记住的新话题、成员特征、内部梗或氛围变化时自主更新,让 bot 对群文化有持续感知。
- 长记忆(需配置 Qdrant):RAG 自动存储聊天历史,学习群友发言习惯,使 bot 更像真人。
- 表情包学习(需配置 Qdrant):使用
qwen-vl-max理解图片内容,分别索引描述语义与视觉特征,自动从群内偷学表情包;回复时通过 RRF 多路召回,结合当前群的真实使用频率重排,并在发送前按当前对话审核相关性。 - 自定义 Agent Tools:可以注册自己的 LangChain tools 扩展 agent 能力,详见 自定义 Agent Tools。
对于主模型选择:推荐使用支持 Function Calling 的通义千问系列模型(如 qwen-plus、qwen-max)。图片理解固定使用 qwen-vl-max,群档案摘要固定使用 qwen-flash。
💿 安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-ai-groupmate --upgrade
使用 pypi 源安装
nb plugin install nonebot-plugin-ai-groupmate --upgrade -i "https://pypi.org/simple"
使用清华源安装
nb plugin install nonebot-plugin-ai-groupmate --upgrade -i "https://pypi.tuna.tsinghua.edu.cn/simple"
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令uv
uv add nonebot-plugin-ai-groupmate
安装仓库 master 分支
uv add git+https://github.com/yaowan233/nonebot-plugin-ai-groupmate@master
pdm
pdm add nonebot-plugin-ai-groupmate
安装仓库 master 分支
pdm add git+https://github.com/yaowan233/nonebot-plugin-ai-groupmate@master
poetry
poetry add nonebot-plugin-ai-groupmate
安装仓库 master 分支
poetry add git+https://github.com/yaowan233/nonebot-plugin-ai-groupmate@master
打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入
plugins = ["nonebot-plugin-ai-groupmate"]
使用 nbr 安装(使用 uv 管理依赖可用)
nbr 是一个基于 uv 的 nb-cli,可以方便地管理 nonebot2
nbr plugin install nonebot-plugin-ai-groupmate
使用 pypi 源安装
nbr plugin install nonebot-plugin-ai-groupmate -i "https://pypi.org/simple"
使用清华源安装
nbr plugin install nonebot-plugin-ai-groupmate -i "https://pypi.tuna.tsinghua.edu.cn/simple"
从旧版本升级
表情包多向量集合 media_collection_v3 从 v2.1.1 开始引入。升级前请按当前版本和向量化模式确认迁移路径:
| 当前版本/模式 | 升级方式 |
|---|---|
v2.1.1 至 v2.1.10,且使用 multimodal 模式 |
等待日志中的“待重建旧表情包”为 0、确认 media_collection_v3 已完成重建后,可直接升级。 |
v2.1.0 及更早版本,且使用 multimodal 模式 |
先升级到 v2.1.10,保留旧 media_collection 并等待 v3 重建完成,再升级到最新版。不要跨过该迁移步骤。 |
v2.1.7 及更高版本,且始终使用 text 模式 |
保持 meme_embedding_mode=text 时可直接升级,继续使用 media_collection_text。切换到 multimodal 仍需重新向量化。 |
新版聊天 RAG 会创建 chat_collection_v2,并在启动后于后台从 SQL 历史记录重建干净的 Dense + 稀疏混合索引。升级前需要先执行 nb orm upgrade;旧 chat_collection 会保留且不会阻塞 Bot 启动。待日志显示历史会话向量化完成、RAG 查询正常后,可按需人工删除旧集合。
可用下面的命令确认 v3 集合存在并查看向量数量(请按实际地址修改 Qdrant URL):
curl http://127.0.0.1:6333/collections/media_collection_v3
迁移依赖原始表情包文件和可用的 Qwen 向量接口。如果旧文件已经丢失,对应数据无法重建到 v3;此时不要删除旧集合,也不要升级到不再读取 media_collection 的版本。完成升级并确认搜索正常后,旧 media_collection 才可以删除。
⚙️ 配置
配置说明
| 配置项 | 必填 | 默认值 | 说明 |
|---|---|---|---|
| ai_groupmate__bot_name | 否 | "bot" |
bot 名 |
| ai_groupmate__reply_probability | 否 | 0.01 |
群内主动发言概率 |
| ai_groupmate__global_model_daily_group_limit_enabled | 否 | true |
是否启用每群每日公共主模型额度;关闭后不查询、不记录额度 |
| ai_groupmate__global_model_daily_group_limit | 否 | 50 |
每个群每天可使用公共主模型的回复次数,按 Bot 本地时间零点重置;0 表示不限额,配置了群聊独立 API 的群不计入 |
| ai_groupmate__global_model_daily_private_user_limit_enabled | 否 | true |
是否启用每位用户每日私聊公共主模型额度;关闭后不查询、不记录额度 |
| ai_groupmate__global_model_daily_private_user_limit | 否 | 10 |
每位用户每天私聊可使用公共主模型的回复次数,按 Bot 本地时间零点重置;0 表示不限额 |
| ai_groupmate__repeat_probability | 否 | 0.15 |
Bot 已在当前连续对话窗口参与,且至少两名不同群友连续发送同一句短文本后,Bot 对每条新跟读加入队形的概率 |
| ai_groupmate__proactive_reaction_probability | 否 | 0.05 |
兼容旧配置;非定向群消息的主动 reaction 采样已停用,避免额外模型调用 |
| ai_groupmate__proactive_meme_probability | 否 | 0.02 |
兼容旧配置;非定向群消息的主动表情包采样已停用,避免额外模型调用 |
| ai_groupmate__personality_setting | 否 | 无 | 自定义人设和固定业务知识 prompt |
| ai_groupmate__tavily_api_key | 否 | 无 | Tavily 搜索 API 密钥(联网搜索功能) |
| ai_groupmate__llm_api_key | 推荐 | 无 | 通用 LLM API Key,未单独配置各角色 key 时使用 |
| ai_groupmate__llm_base_url | 否 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
通用 OpenAI 兼容接口地址 |
| ai_groupmate__chat_model | 否 | qwen3.7-plus |
主聊天/工具调用模型;使用百炼官方工具时推荐 qwen3.8-max |
| ai_groupmate__chat_api_key | 否 | 无 | 主聊天模型专用 API Key,留空则使用 llm_api_key / qwen_token |
| ai_groupmate__chat_base_url | 否 | 无 | 主聊天模型专用 Base URL,留空则使用 llm_base_url |
| ai_groupmate__chat_temperature | 否 | 0.7 |
主聊天模型温度 |
| ai_groupmate__chat_api_format | 否 | openai |
主聊天接口格式,可选 openai / anthropic / vertex |
| ai_groupmate__chat_multimodal | 否 | true |
主聊天模型是否支持图片输入;若使用纯文本模型请设为 false,将跳过图片上传只发文本 |
| ai_groupmate__chat_responses_builtin_tools | 否 | [] |
千问 Responses API 官方工具白名单,可选 code_interpreter、web_search、web_extractor、web_search_image、image_search;仅官方百炼 OpenAI 兼容地址生效,留空完全关闭 |
| ai_groupmate__chat_responses_enable_thinking | 否 | false |
官方工具调用启用 medium 思考强度;启用 code_interpreter 时会按官方要求自动开启 |
| ai_groupmate__chat_explicit_prompt_cache | 否 | true |
为支持的接口添加显式 Prompt 缓存断点;支持 DashScope、Anthropic,以及 OpenRouter 上的 Gemini/Claude,并自动使用匿名群级粘性路由 |
| ai_groupmate__group_api_relay_url | 否 | https://mayumi.xyz |
群 API 公网中转服务根地址;默认使用 Mayumi,也可覆盖为自建中转服务 |
| ai_groupmate__group_api_relay_registration_token | 私有注册模式首次必填 | 无 | 中转服务签发的部署者注册码;服务器开放注册时留空,实例注册成功后也可移除 |
| ai_groupmate__group_api_local_encryption_key | 否 | 自动生成 | 可选的 32 字节 Base64URL 本地主密钥;留空时在插件数据目录自动生成并持久化 |
| ai_groupmate__group_api_relay_timeout_seconds | 否 | 15 |
调用中转服务的 HTTP 超时(秒) |
| ai_groupmate__group_api_ticket_ttl_seconds | 否 | 900 |
配置链接和一次性配置码的有效期(秒,范围 60~3600) |
| ai_groupmate__group_api_allowed_provider_hosts | 否 | [] |
群 API 模型服务主机白名单,支持精确主机及 *.example.com;留空时仅允许 DNS 全部解析到公网 IP 的 HTTPS 地址,配置私有模型端点时必须显式填写 |
| ai_groupmate__vertex_project | 标准 Vertex 时推荐 | 无 | Google Cloud 项目 ID;ADC / 服务账号模式使用,Express Mode API Key 不需要 |
| ai_groupmate__vertex_location | 否 | global |
ADC / 服务账号模式的 Vertex AI 区域;Express Mode API Key 下忽略 |
| ai_groupmate__vertex_api_key | Express Mode 必填 | 无 | Vertex AI Express Mode API Key,可直接写入 NoneBot 的 .env;服务账号路径已配置时忽略 |
| ai_groupmate__vertex_credentials_path | 否 | 无 | 容器内服务账号 JSON 路径;留空时使用 Application Default Credentials (ADC) |
| ai_groupmate__vision_model | 否 | 无 | 图片回读辅助模型(如 qwen-vl-max);主模型不支持图片时用它总结工具返回的图片内容,留空则跳过图片回读 |
| ai_groupmate__vision_api_key | 否 | 无 | 图片回读辅助模型专用 API Key,留空则使用 llm_api_key / qwen_token |
| ai_groupmate__vision_base_url | 否 | 无 | 图片回读辅助模型专用 Base URL,留空则使用 llm_base_url |
| ai_groupmate__vision_temperature | 否 | 0.01 |
图片回读辅助模型温度 |
| ai_groupmate__vision_api_format | 否 | openai |
图片回读辅助接口格式,可选 openai / anthropic / vertex |
| ai_groupmate__vision_input_cost_per_million | 否 | 0 |
图片回读辅助模型每百万输入 Token 费用,用于 WebUI 成本统计 |
| ai_groupmate__vision_output_cost_per_million | 否 | 0 |
图片回读辅助模型每百万输出 Token 费用,用于 WebUI 成本统计 |
| ai_groupmate__agent_timeout_seconds | 否 | 180 |
单次 agent 总运行超时(秒) |
| ai_groupmate__agent_llm_timeout_seconds | 否 | 60 |
每次主模型调用超时(秒) |
| ai_groupmate__agent_tool_timeout_seconds | 否 | 30 |
每次工具调用超时(秒) |
| ai_groupmate__agent_max_concurrency | 否 | 4 |
全局同时运行的 Agent 上限,超出的请求在不占用数据库连接的状态下等待 |
| ai_groupmate__agent_max_parallel_tools | 否 | 4 |
单轮可同时执行的安全只读工具上限;未知或有副作用的工具仍串行执行 |
| ai_groupmate__background_image_max_concurrency | 否 | 2 |
后台图片下载、压缩和入库的并发上限 |
| ai_groupmate__background_image_max_pending | 否 | 100 |
后台图片任务的最大待处理数,防止高峰期无界堆积 |
| ai_groupmate__maintenance_max_concurrency | 否 | 1 |
向量化、媒体清理和群档案维护的共享并发上限 |
| ai_groupmate__media_vectorize_min_references | 否 | 3 |
图片进入表情包识别与向量化队列所需的最低引用次数 |
| ai_groupmate__media_vectorize_batch_size | 否 | 1000 |
每轮最多处理的新图片数及旧向量重建数 |
| ai_groupmate__media_vectorize_concurrency | 否 | 8 |
表情包标注与向量化的并发数(过高可能触发接口限流) |
| ai_groupmate__group_memory_update_timeout_seconds | 否 | 120 |
群档案后台更新超时(秒) |
| ai_groupmate__agent_max_llm_calls | 否 | 8 |
单次 agent 最多调用主模型次数 |
| ai_groupmate__agent_max_total_tokens | 否 | 64000 |
单次 agent 最多累计模型 token 数 |
| ai_groupmate__agent_tool_result_max_chars | 否 | 6000 |
写回后续上下文的单次工具结果最大字符数 |
| ai_groupmate__flash_model | 否 | qwen-flash |
快速判断是否需要回复的模型 |
| ai_groupmate__flash_api_key | 否 | 无 | 快速判断模型专用 API Key |
| ai_groupmate__flash_base_url | 否 | 无 | 快速判断模型专用 Base URL |
| ai_groupmate__flash_temperature | 否 | 0.0 |
快速判断模型温度 |
| ai_groupmate__flash_max_tokens | 否 | 10 |
快速判断模型最大输出 token |
| ai_groupmate__summary_model | 否 | qwen-flash |
群体记忆档案更新模型 |
| ai_groupmate__summary_api_key | 否 | 无 | 群体记忆模型专用 API Key |
| ai_groupmate__summary_base_url | 否 | 无 | 群体记忆模型专用 Base URL |
| ai_groupmate__summary_temperature | 否 | 0.3 |
群体记忆模型温度 |
| ai_groupmate__summary_max_tokens | 否 | 800 |
群体记忆模型最大输出 token |
| ai_groupmate__tagging_model | 否 | qwen-vl-max |
图片/表情包标注模型 |
| ai_groupmate__tagging_api_key | 否 | 无 | 图片标注模型专用 API Key |
| ai_groupmate__tagging_base_url | 否 | 无 | 图片标注模型专用 Base URL |
| ai_groupmate__tagging_temperature | 否 | 0.01 |
图片标注模型温度 |
| ai_groupmate__tagging_api_format | 否 | openai |
图片标注接口格式,可选 openai / anthropic / vertex |
| ai_groupmate__qwen_token | 否 | 无 | 兼容旧配置的 DashScope API Key;新配置推荐使用 llm_api_key |
| ai_groupmate__base_model | 否 | 无 | 兼容旧配置的默认模型名;新配置推荐使用 chat_model |
| ai_groupmate__qdrant_uri | 否 | 无 | Qdrant 地址,不填则禁用表情包、RAG 等向量功能;要求 Qdrant 服务端版本不低于 1.16 |
| ai_groupmate__qdrant_api_key | 否 | 无 | Qdrant API Key(使用 Qdrant Cloud 时需要) |
| ai_groupmate__embedding_api_key | 否 | 无 | Embedding API Key,启用 Qdrant 时必填(推荐硅基流动,免费) |
| ai_groupmate__embedding_base_url | 否 | 无 | Embedding Base URL,启用 Qdrant 时必填(推荐硅基流动,免费)。填根地址如 https://api.siliconflow.cn/v1,也可填完整路径 …/v1/embeddings(插件会自动去重) |
| ai_groupmate__embedding_model | 否 | BAAI/bge-m3 |
文本 Embedding 模型名称,用于聊天 RAG 和 text 表情包模式。 |
| ai_groupmate__embedding_dimension | 否 | 无 | 文本 Embedding 向量维度。模型不支持维度参数或使用模型默认输出维度时无需填写。 |
| ai_groupmate__meme_embedding_mode | 否 | multimodal |
表情包向量化模式。multimodal:qwen3-vl-embedding 生成描述+原图双向量(需配 qwen_token,支持图找图);text:仅用描述文本向量化(无需 qwen_token,图找图不可用) |
| ai_groupmate__rerank_api_url | 否 | 无 | Rerank API URL,启用 Qdrant 时使用(推荐硅基流动,免费) |
| ai_groupmate__rerank_api_key | 否 | 无 | Rerank API Key,启用 Qdrant 时使用(推荐硅基流动,免费) |
向量功能要求 Qdrant 服务端版本不低于 1.16,因为插件使用 collection metadata 记录并校验 Embedding 模型与维度。
修改 embedding_model 或 embedding_dimension 前,请自行重建聊天与纯文本表情包的 Qdrant 向量。插件不会迁移既有向量;旧文本集合缺少 metadata 且当前模型不是历史默认的 BAAI/bge-m3 时,插件会拒绝使用该集合,避免混用不同模型生成的向量。
如果多个插件共用 nonebot-plugin-orm,建议同时将 SQLAlchemy 连接池设为快速失败,避免外部插件耗尽连接时每条消息卡住 30 秒:
SQLALCHEMY_ENGINE_OPTIONS={"pool_size":5,"max_overflow":10,"pool_timeout":5,"pool_pre_ping":true}
并发限制用于避免本插件耗尽连接池;pool_timeout=5 是其他插件或数据库异常时的快速降级保护,不建议只靠扩大连接池解决泄漏。
用量 WebUI 默认地址为 /ai-groupmate/usage。升级数据库后,页面会额外展示每轮 agent 的 LLM/工具调用次数、平均耗时、工具超时、结果截断与副作用去重情况;旧记录会以 0 显示这些新增指标。
用量统计页及其 JSON 接口可直接访问,不需要 Token。页面右上角的“配置中心”可维护插件运行配置;配置中心使用前必须在环境变量中设置非空的 AI_GROUPMATE__USAGE_WEBUI_TOKEN,并通过独立的 HttpOnly Cookie 登录,不会在页面中回显 API Key。网页保存的值存入插件数据库,加载顺序为“代码默认值 → 环境变量 → 网页覆盖值”;可随时一键恢复环境变量配置。
配置中心顶部的“群聊 API”页面可由 Bot 管理员按群 ID 新增、修改和删除独立主聊天模型,并可随独立 API 配置设置该群的主动发言概率。群级概率范围为 0~0.1,留空则跟随全局值;没有独立大模型 API 的群不能单独调整。新增或修改时会先测试模型连接,成功后立即生效;编辑已有记录时 API Key 留空会保留原 Key。列表与接口只返回脱敏信息,删除后该群立即恢复使用全局主聊天 API 和主动发言概率。启用配置中心后,插件也会自动生成本地群 API 加密密钥,因此即使不启用公网中转也可以使用这个管理页。
针对内网部署 Bot 的会话级自带模型 API(BYOK)能力已经完成端到端实现:群管理员可为群聊配置,私聊用户也可为自己配置;公网配置页生成一次性配置码,插件解密并测试后按群或按用户保存主模型配置。协议与部署说明见 分群模型 API 中转配置设计。配套 FastAPI 中转服务位于 ../backend,Mayumi 配置页位于 ../mayumi-front;生产启用前仍需配置域名、HTTPS 与 Secret。
插件默认使用 https://mayumi.xyz 作为群 API 中转地址,不需要额外配置 URL。只有使用自建中转服务时才需要覆盖:
AI_GROUPMATE__GROUP_API_RELAY_URL=https://relay.example.com
# 仅中转服务器未开放公开注册时需要
AI_GROUPMATE__GROUP_API_RELAY_REGISTRATION_TOKEN=replace-with-issued-token
# 可选;建议生产环境显式限制群管理员可选的模型服务域名
AI_GROUPMATE__GROUP_API_ALLOWED_PROVIDER_HOSTS=["api.openai.com","openrouter.ai","*.example-provider.com"]
使用默认 Mayumi 公开注册服务时,不需要配置 AI_GROUPMATE__GROUP_API_RELAY_REGISTRATION_TOKEN。
插件默认在数据目录生成 group_api_local_encryption.key。请把该文件与数据库一起持久化并备份;丢失后已经保存的群 API Key、实例令牌和私钥均无法恢复。使用 Secret 管理平台时,也可以继续显式设置本地主密钥:
python -c "import base64,secrets; print(base64.urlsafe_b64encode(secrets.token_bytes(32)).decode().rstrip('='))"
GROUP_API_RELAY_REGISTRATION_TOKEN 只在 Bot 第一次向中转服务注册时使用,注册成功并确认数据库已持久化后可以从环境中移除。上述启动配置不会进入插件配置中心,也不会在 WebUI 回显。
回复概率、Agent 限制、模型与费用配置会在保存后热更新;Qdrant、Embedding、表情包向量化模式、兼容 Qwen Token 和 Rerank 连接配置会标记为“等待重启”。WebUI 开关、访问路径和管理密码属于启动配置,仍需通过环境变量修改。升级后请先执行:
nb orm upgrade
最小配置示例:
AI_GROUPMATE__BOT_NAME=bot
AI_GROUPMATE__LLM_API_KEY=sk-xxxx
AI_GROUPMATE__CHAT_MODEL=qwen3.5-plus
Vertex AI 主模型示例(推荐使用服务账号或其他 ADC,不要把 JSON 内容写进 .env):
AI_GROUPMATE__CHAT_API_FORMAT=vertex
AI_GROUPMATE__CHAT_MODEL=gemini-3.7-flash
AI_GROUPMATE__VERTEX_PROJECT=your-google-cloud-project
AI_GROUPMATE__VERTEX_LOCATION=global
AI_GROUPMATE__VERTEX_CREDENTIALS_PATH=/app/secrets/vertex-service-account.json
把服务账号 JSON 只读挂载到上述容器路径,并授予服务账号 Vertex AI User
(roles/aiplatform.user)角色。也可以不设置 VERTEX_CREDENTIALS_PATH,改用
GOOGLE_APPLICATION_CREDENTIALS、Workload Identity 或运行环境已有的 ADC。插件会自动
刷新 OAuth 凭据。若从 OpenRouter 迁移,google/gemini-... 模型名也会自动移除
google/ 前缀;CHAT_API_KEY 和 CHAT_BASE_URL 在 Vertex 模式下不会使用。
Vertex AI Express Mode API Key 不需要项目 ID 和区域:
AI_GROUPMATE__CHAT_API_FORMAT=vertex
AI_GROUPMATE__CHAT_MODEL=gemini-3.7-flash
# 将 Google 官方示例中 GOOGLE_CLOUD_API_KEY 对应的 Key 值填在这里
AI_GROUPMATE__VERTEX_API_KEY=AIza...
如果 Google 控制台或官方示例将 Express Mode Key 称为 GOOGLE_CLOUD_API_KEY,
直接把它的值填给 AI_GROUPMATE__VERTEX_API_KEY 即可;不需要再配置一个名为
GOOGLE_CLOUD_API_KEY 的环境变量。把上述插件配置直接写入 NoneBot 项目使用的
.env 即可,也不需要在 Docker Compose 中额外声明 environment,或配置 Project
ID、Location、服务账号。插件检测到该 Key 后会使用 Express Mode,并忽略
VERTEX_PROJECT 和 VERTEX_LOCATION;认证优先级为服务账号 JSON → Vertex API
Key → ADC。AI_GROUPMATE__CHAT_API_KEY 是其他接口使用的聊天模型 Key,在 Vertex
模式下不会读取。
固定知识示例(将群号和入群方式替换为自己的信息):
AI_GROUPMATE__PERSONALITY_SETTING="【固定知识】当用户询问加群、群号、入群方式或请求拉群时,明确告诉对方:请搜索 QQ 群 123456789 申请加入,验证信息填写‘来自 Bot’。不要编造其他群号或链接。"
修改该配置后需要重启 Bot。固定知识会同时用于群聊和私聊;涉及口令、密钥等敏感内容时不要放在这里。
如果想使用更强的主聊天模型:
AI_GROUPMATE__CHAT_MODEL=qwen3.7-plus
如果要让 qwen3.8-max 使用百炼服务器提供的代码解释器、联网搜索和网页抓取:
AI_GROUPMATE__CHAT_MODEL=qwen3.8-max
AI_GROUPMATE__CHAT_RESPONSES_BUILTIN_TOOLS='["code_interpreter","web_search","web_extractor"]'
AI_GROUPMATE__CHAT_RESPONSES_ENABLE_THINKING=true
这些工具只在官方百炼 OpenAI 兼容地址上生效,配置后会自动使用 Responses API。所有工具默认关闭;工具列表只是授权模型按需调用,并不代表每轮都会执行。web_extractor 依赖 web_search,只填写前者时插件也会自动启用后者。代码解释器因为不能与 Bot 的 Function Calling 同请求,会由插件隔离调用,再把结果交回主 Agent。
华北 2(北京)当前参考工具价为:code_interpreter、web_extractor 限时免工具费,web_search 4 元/千次,web_search_image(文搜图)24 元/千次,image_search(图搜图)48 元/千次;所有工具产生的额外模型 Token 仍收费,实际价格以百炼控制台为准。Token Plan Harness 的 t2i_search / i2i_search 个人版 Key 不可用于机器人后端,因此这里使用普通按量 API 的正式工具名。接口、地域和计费依据见 千问 Responses API 官方工具调研。
插件会尽量复用稳定 system prompt、固定工具 schema,并在连续对话中复用 append-only history,以提高输入缓存命中率。日志中可通过 [LLM缓存] 查看缓存命中 token;如果服务商未返回缓存字段,会显示 缓存命中=未返回。
🎉 使用
@bot 即可触发回复,也会以 reply_probability 的概率主动发言;额度开关默认开启,未配置群聊独立 API 时,每群每天默认可使用公共主模型回复 50 次,私聊则为每位用户每天 10 次,额度按 Bot 本地时间零点重置。额度耗尽后会提示 /配置群API 或 /配置个人API;已配置相应独立大模型 API 的群或私聊用户不受公共额度限制。可在管理界面关闭对应额度开关,关闭后不查询或记录额度。群管理员还可覆盖本群主动发言概率,但用户配置上限为 0.1。Bot 已在当前连续对话窗口参与、随后至少两名不同群友连续发送同一句短文本时,会按 repeat_probability 独立决定是否原样加入队形。reaction 和图片表情不再对未提及 Bot 的普通群消息主动采样;只有当前消息明确呼叫 Bot、回复 Bot、处于同一用户的连续对话窗口,或用户明确要求时,才会交给 Agent 选择或执行。
自定义 Agent Tools
如果你想给 agent 增加自己的工具(例如查询业务系统、控制设备、调用自定义 API),可以参考 自定义 Agent Tools。
内置了好感度系统,增加了趣味性。
以下功能需要配置 Qdrant
配置 Qdrant 后,ai 会自动偷群内使用的表情包并存入向量库,回复时通过 VLM 语义匹配发出,准确率非常高。
发送群内偷学到的表情包
利用 RAG 对聊天历史进行语义检索,可进行总结、查询等功能。
指令表
由于 AI 功能需要记录聊天记录,基于已记录的聊天记录,可以很轻松的做到词频统计,所以顺带加上了。
| 指令 | 说明 |
|---|---|
| /词频 <统计天数> | 生成个人词频词云 |
| /群词频 <统计天数> | 生成群词频词云 |
| /重置负面关系 | 仅超级用户;预览需要重置的历史负面关系数量 |
| /重置负面关系 确认 | 仅超级用户;备份后将负好感度归零并清空这些用户的旧标签 |
| /配置群API | 群主、群管理员或超级用户创建配置链接;链接通过私聊发送 |
| /提交群API <配置码> | 发起人私聊提交一次性配置码,测试并应用群主模型配置 |
| /查看群API | 群内查看当前群级主模型配置的脱敏摘要 |
| /删除群API 确认 | 群主、群管理员或超级用户删除群配置并恢复全局主模型 |
| /配置个人API | 私聊创建只属于自己的模型配置链接 |
| /提交个人API <配置码> | 私聊提交一次性配置码,测试并应用个人主模型配置 |
| /查看个人API | 私聊查看个人主模型配置的脱敏摘要 |
| /删除个人API 确认 | 删除个人配置,恢复公共主模型和每日额度 |
关系备份保存在 NoneBot 插件数据目录下的 relation_backups 文件夹中。重复执行是安全的;没有负好感度记录时不会创建备份或修改数据库。
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_ai_groupmate-2.5.0.tar.gz.
File metadata
- Download URL: nonebot_plugin_ai_groupmate-2.5.0.tar.gz
- Upload date:
- Size: 7.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e9d3ca9994937f8d5a60677da198a6b24aebc645a9812671af2cf4fd18714d5
|
|
| MD5 |
7209a7a3bc7c6399bfcb939b220d7908
|
|
| BLAKE2b-256 |
6169d3531179fb77155eecf3cbb770d79e80dffd5768392c16ce74d37e18c293
|
Provenance
The following attestation bundles were made for nonebot_plugin_ai_groupmate-2.5.0.tar.gz:
Publisher:
release.yml on yaowan233/nonebot-plugin-ai-groupmate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nonebot_plugin_ai_groupmate-2.5.0.tar.gz -
Subject digest:
6e9d3ca9994937f8d5a60677da198a6b24aebc645a9812671af2cf4fd18714d5 - Sigstore transparency entry: 2614730480
- Sigstore integration time:
-
Permalink:
yaowan233/nonebot-plugin-ai-groupmate@51ccbc022a8dea9fb7972db06d471a4be67055b9 -
Branch / Tag:
refs/tags/v2.5.0 - Owner: https://github.com/yaowan233
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@51ccbc022a8dea9fb7972db06d471a4be67055b9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file nonebot_plugin_ai_groupmate-2.5.0-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_ai_groupmate-2.5.0-py3-none-any.whl
- Upload date:
- Size: 7.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7736c758aa4038ea624329963c1dd25c751c75cb8c15a6ef85c3e08fc9634d32
|
|
| MD5 |
6b1c841bad1f9e7b983ade980d85dacb
|
|
| BLAKE2b-256 |
5d9690ead484c63b6b5cf8cf7b702cce0e1b992031aee4f80bad356b20845b6a
|
Provenance
The following attestation bundles were made for nonebot_plugin_ai_groupmate-2.5.0-py3-none-any.whl:
Publisher:
release.yml on yaowan233/nonebot-plugin-ai-groupmate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nonebot_plugin_ai_groupmate-2.5.0-py3-none-any.whl -
Subject digest:
7736c758aa4038ea624329963c1dd25c751c75cb8c15a6ef85c3e08fc9634d32 - Sigstore transparency entry: 2614730491
- Sigstore integration time:
-
Permalink:
yaowan233/nonebot-plugin-ai-groupmate@51ccbc022a8dea9fb7972db06d471a4be67055b9 -
Branch / Tag:
refs/tags/v2.5.0 - Owner: https://github.com/yaowan233
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@51ccbc022a8dea9fb7972db06d471a4be67055b9 -
Trigger Event:
push
-
Statement type: