Skip to content

v2.0.0 跨平台纪元正式版

Choose a tag to compare

@KroMiose KroMiose released this 28 Jun 09:32
· 276 commits to main since this release

NA_V2.0.0:跨平台纪元

⚠️注意: 本更新与 v1.x 版本存在数据兼容问题!如果需要从 v1.x 更新请参考文末的 更新操作指南 部分进行更新!

重点更新:跨平台能力与多适配器

image

本次更新中,我们为 NekroAgent 带来了前所未有的跨平台能力,NA 核心将依赖于抽象的适配层,来实现对不同平台的支持,开发者可以快速实现一个新的适配器,来支持新的平台。

OneBotV11 适配重构与增强

  • 变更详情: 我们将 Nekro Agent 核心与 OneBot V11 适配器进行了彻底解耦,并将其重构为新的适配器框架下的标准适配器之一。相关的后端服务也进行了统一重构,以提供更稳定、更一致的接口。
  • 对您的影响: 这意味着 NA 不再仅仅是一个 QQ 机器人框架。通过将 OneBot V11 作为 适配器 之一,NA 的核心变得更加纯粹和强大 IO 流 Agent 系统,为支持更多平台奠定了基础。您的基础聊天功能也因为这次重构而变得更加稳定和规范。

引用消息支持

  • 变更详情: OneBot V11 适配器现在可以正确识别和处理“引用消息”事件。
  • 对您的影响: 现在,当用户在 QQ 中回复(引用)某条消息来提问时,AI 能够理解其引用的上下文,并能更准确地作出回应和主动引用。配合 消息漫游 插件,甚至可以实现跨越当前聊天窗口的上下文追溯。

Minecraft 适配器

  • 变更详情: 我们从零到一为您构建了全新的 Minecraft 适配器。
  • 对您的影响: 是的,您的 Agent 现在可以进入《Minecraft》了!只需简单配置,它就能连接到您的服务器,读取玩家的公屏聊天,进行聊天回复。您可以轻松实现游戏内的问答机器人、事件通知、甚至是与服务器后台指令的联动。

2b2a8289f8d1f46c6159c6d47858a201

感谢 @zxjwzn 贡献了此适配器的实现

Bilibili 直播姬

  • 变更详情: 新增了完整的 Bilibili 直播适配器和直播白板插件。
  • 对您的影响: 您现在可以将 Nekro Agent 连接到指定的 Bilibili 直播间,让它成为您的 7x24 小时虚拟主播!它可以实时读取观众的弹幕和礼物信息,并基于 LLM 能力进行智能互动,操控 VTS Live2D 形象进行演出,使用 TTS 进行语音回复,在白板上创造和分享资源等,极大地提升了直播间的交互氛围。

感谢 @zxjwzn 贡献了此适配器的实现

SSE 接入适配器和 SSE SDK

  • 变更详情: 我们在适配器配置中加入了对通用 SSE (Server-Sent Events) 接口的支持。
  • 对您的影响: 这为开发者提供了一种极其便捷的集成方式。通过 SSE SDK,您可以非常轻松地将 Nekro Agent 的 AI 能力集成到您自己的网站、App 或任何自定义程序中,而无需处理复杂的会话管理等 Agent 系统能力。

Discord 适配器

  • 变更详情: 新增了完整的 Discord 平台的机器人支持。
  • 对您的影响: 现在可以通过简单的配置让 Nekro Agent 驱动的 AI 机器人加入到您的频道中,和用户互动聊天,处理文件等

WechatPad 适配器

  • 变更详情: 新增了基于 WeChatPadPro 的微信机器人支持
  • 对您的影响: 现在可以让 Nekro Agent 机器人驱动微信账号聊天了,支持文本、图片等消息等发送和接收和完整的配置文档信息,详情请查阅 WeChatPad 适配器文档
  • ⚠️注意: 此适配器使用的 WeChatPadPro 协议存在一定的账号异常风险,如需使用请确保账号无重要资产,且您需要对可能产生的一切后果负责!

感谢 @1A7432 贡献了此适配器的实现

适配器文档

  • 变更详情: 我们为 WebUI 新增了内置的文档渲染功能。
  • 对您的影响: 每一个适配器的使用方法、配置项、注意事项,现在都可以在其管理页面的主页中直接查看。图文并茂的官方文档让您在配置和使用新适配器时不再迷茫。

配置系统

分级配置覆盖

image

  • 变更详情: 我们在 WebUI 的适配器管理页面和每个独立聊天会话的详情页中,都加入了全新的“覆盖配置”功能。
  • 对您的影响: 您现在可以进行极其精细化的配置管理!例如,您可以为整个 Onebot V11(适配器配置)设置一个默认模型,但又可以为某个特定的群聊(会话配置)指定另一个完全不同的模型或上下文长度。配置优先级为 会话配置 > 适配器配置 > 系统配置,满足您所有的特殊场景需求。

复杂配置模型支持

  • 变更详情: 我们重写了 WebUI 的核心配置引擎,现在它可以处理复杂的配置结构。
  • 对您的影响: 插件开发者现在可以定义更加强大和灵活的配置项了。对于您而言,无论多复杂的配置,WebUI 都会以统一、美观、易于编辑的可视化界面呈现出来,例如可折叠的列表、带说明的输入框等。

插件文档

image

  • 变更详情: 我们在插件详情页面加入了内置的文档展示区,可以直接从后端获取并展示开发者编写的文档。
  • 对您的影响: 与适配器文档一样,您现在可以直接在插件市场或插件管理页面查看由开发者编写的插件说明文档,了解插件的每一个功能和命令并直接与当前插件版本绑定,无需再去到处寻找教程。

插件系统

为插件开发者提供“百宝箱”: _ctx 上下文工具

  • 变更详情: 我们为插件开发重新设计并极大地增强了 _ctx 上下文对象 (nekro_agent/schemas/agent_ctx.py),它像一把瑞士军刀,将各种核心能力安全、便捷地提供给插件。
  • 对您的影响: 这意味着插件开发者拥有了前所未有的强大武器,能够为您创造出功能更丰富、交互更复杂的插件。具体来说:
    • 强大的文件交换能力 (_ctx.fs): 插件现在可以轻松地与沙盒双向交互文件。例如,绘图插件 在生成图片后,正是使用 _ctx.fs.mixed_forward_file() 将图片 URL 转换为 AI 能理解和接收的文件路径。反之,插件也能安全地读取 AI 提供的文件进行分析。这为文件处理、图片修改等各类插件提供了无限可能。
    • 跨会话消息发送 (_ctx.ms): 通过 _ctx.ms,插件可以向任意其他聊天发送消息。这可以用来实现强大的功能,例如:创建一个中央监控频道来接收所有关键事件的通知,或者实现跨群聊的提醒和同步。
    • “无痕”消息 (_ctx.send_text(..., record=False)): 插件可以向您发送一些“仅供提醒”的临时消息,例如“正在处理,请稍候...”,而这些消息不会被记录到对话历史中。这能避免大量的过程信息干扰 AI 的核心思考流程,让 AI 的回复更专注、更准确。
    • 动态配置感知 (_ctx.get_core_config()): 插件现在能够读取到您为当前会话设置的最终生效配置(已合并系统、适配器和会话三级配置)。这意味着插件的行为可以根据您在特定聊天中的精细化设置而改变,变得更加“智能”和个性化。

动态路由

我们扩展了旧的插件 Webhook 系统,使用更具灵活性与扩展性的动态路由系统代替!动态路由是 Nekro Agent 插件系统提供的强大功能,允许插件创建自定义的 Web API 端点。基于 FastAPI 框架,动态路由支持完整的 RESTful API 设计、请求验证、响应处理、文档生成等现代 Web API 开发的所有特性。插件开发者可以通过动态路由实现外部系统对接、插件管理面板等高扩展功能,并且支持随插件即时启用与禁用。


沙盒日志

沙盒性能分析

  • 变更详情: 沙箱日志页面新增了对 LLM 生成性能参数的分析和展示。
  • 对您的影响: 现在,当您查看一条沙箱日志时,不仅能看到代码和结果,还能看到本次 AI 执行的详细性能指标,如“首 Token 延迟”、“生成速度 (tokens/s)” 等。这可以帮助您判断不同模型、不同 API 供应商的真实性能表现。

全面 UI 统一与重构

  • 变更详情: 我们对所有 WebUI 页面进行了统一的视觉重构,实施了全新的全局样式方案。
  • 对您的影响: 您所看到的每一个页面,从登录、仪表盘到每一个设置页,其视觉风格都达到了高度统一。我们修复了大量对齐、边距、颜色不一致的问题,并对性能进行了优化。V2.0 不仅功能更强,也更加美观、流畅。

文档支持

Windows 一键安装脚本

  • 变更详情: 我们为 Windows 用户提供了全新的基于 WSL2 的一键安装与部署脚本。

  • 对您的影响: 现在,在 Windows 系统上部署 Nekro Agent 变得前所未有的简单。您无需再手动安装和配置复杂的 WSL 环境。只需以管理员权限运行我们提供的安装脚本,它将自动为您完成以下所有工作:

    • 检查并启用 WSL2 和虚拟化核心组件,并在需要时提示您重启。
    • 下载并导入一个专为 NA 优化的、独立的 Debian Linux 子系统环境 (nekro-agent)。
    • 在子系统中预创建专用的 nekro 用户并配置好 sudo 权限与 systemd 支持,实现开箱即用。

    这极大地降低了 Windows 用户的入门门槛,让您可以快速启动并运行 Nekro Agent。

感谢 @jbwfu 提供该部署方案支持

Linux 一键安装脚本重构与增强

  • 变更详情: 我们将原有的多个 quick_start.sh 脚本整合并重构为一个全新的、功能更强大的统一安装脚本 install.sh
  • 对您的影响: Linux 用户的部署与安装体验也在此次更新中得到了革命性的提升。这个全新的脚本带来了革命性的改进:
    • 依赖自动安装: 脚本现在可以自动检测并为您安装 Docker 和 Docker Compose,并允许您选择国内镜像源加速安装,解决了最常见的环境依赖问题。
    • 配置自动化: 您无需再手动创建和配置 .env 文件。脚本会自动从模板创建,并为您生成所有必需的随机密码和访问令牌,实现真正的开箱即用。
    • 统一与简化: 不再需要区分不同版本的脚本,一个 install.sh 脚本即可通过 --with-napcat 参数灵活选择是否一同部署 NapCat。
    • 体验优化: 提供了更友好的交互式提示,并在下载资源时自动尝试备用源,大大提高了安装成功率和用户体验。

感谢 @jbwfu 提供该重构方案支持


其他优化与调整

  • 绘图插件流式输出: 现在画图插件支持流式输出的绘图模型,这使一些强制要求流式请求的模型(如 Gemini 系列)可以正常工作。
  • 自动刷新群聊名称: 在会话管理中,如果一个群聊最初没有显示名称(只显示群号),现在只要该群聊产生任意新消息,其名称就会被自动获取并刷新,方便您辨认。
  • 更安全的管理员权限: 为了防止潜在的安全风险 (例如用户配置了自己为管理员但未修改默认密码)和适应新的跨平台架构需求,V2.0 目前禁用了直接使用 QQ 账号管理员账号登录 WebUI 的功能,请直接使用内置的 admin 用户进行登录。
  • 提示词工程优化: 我们对包括表情包插件在内的多个内置功能进行了提示词优化,以降低 AI 的误判率,提高响应的准确性和效率。
  • 修复举报链接: 修复了插件市场中“举报”功能链接指向错误仓库的问题。
  • 优化插件存储数据清理: 删除插件时可一并选择是否清理插件产生的运行配置数据、文件等。 - by @zxjwzn
  • 面板重启服务: 添加了在前端面板中直接重启 NekroAgent 服务的功能。 - by @zxjwzn
  • 绘图插件增强: 添加可配置的负面提示词和优化部分 API 供应商的参数问题。 - by @greenhandzdl
  • 节日服务: 修正一些节气、节日等通报时间错误的问题。
  • 模型选择器: 模型组界面现支持直接选择供应商地址并从第三方供应商拉取可用模型列表进行选择,省去手动查找模型名的麻烦。
  • 群荣誉插件配置: 支持手动配置可使用群荣誉功能的群组、锁定指定用户群头衔等功能

更新操作指南 📦

由于本次更新内容涉及到重大架构调整,建议您先卸载旧版 NekroAgent(v1.x),再全新安装新版。

注意: 以下流程以默认安装为例,如有自定义环境配置,请根据实际情况调整命令。

0. 设定安装位置

export NEKRO_DATA_DIR=${HOME}/srv/nekro_agent

1. 停止应用编排

sudo docker-compose --env-file .env down

2. 删除挂载卷

旧版挂载卷名默认情况下 (即未配置过实例前缀名) 为 nekro_postgres_data (主数据库) 和 nekro_qdrant_data (向量数据库),可使用 sudo docker volume ls 查看当前所有挂载卷,确保卷名正确

sudo docker volume rm nekro_postgres_data
sudo docker volume rm nekro_qdrant_data

3. 清理旧数据

⚠️⚠️⚠️ !!! 如有重要数据(例如自编写插件、配置等),请提前备份 !!! ⚠️⚠️⚠️

sudo rm -rf ${NEKRO_DATA_DIR}/*

4. 重新安装

查阅 最新文档 中的对应平台部署教程进行部署

New Contributors

Full Changelog: v1.3.7...v2.0.0