Releases: YesWeAreBot/YesImBot
koishi-plugin-yesimbot@3.0.3
koishi-plugin-yesimbot
3.0.2
Patch Changes
-
018350c: fix(core): 修复上下文处理中的异常捕获
-
过滤空行以优化日志读取
-
增加日志长度限制和定期清理历史数据功能
fix(core): 响应频道支持直接填写用户 ID
-
closed #152
refactor(tts): 优化 TTS 适配器的停止逻辑和临时目录管理
refactor(daily-planner): 移除不必要的依赖和清理代码结构
-
-
018350c: refactor(logger): 更新日志记录方式,移除对 Logger 服务的直接依赖
3.0.1
Patch Changes
- e6fd019: 修复配置迁移脚本
3.0.0
Patch Changes
koishi-plugin-yesimbot@3.0.2
Release v3.0.0-beta.4
本次更新带来了全新的提示词服务、强大的代码解释器、好感度系统以及一系列核心重构与优化,旨在提升系统的灵活性、稳定性和用户体验。
⚠️ 重要提示与破坏性变更
- 系统提示词重构 (8a11346): 核心系统提示词(
memgpt_v2_chat.txt)的结构已全面重构,以提高可读性和模块化。如果您曾自定义过此文件,强烈建议您在更新后备份旧文件,并基于新的默认模板进行修改,以确保所有功能正常运行。 - 上下文隔离机制变更: 移除了原有的跨频道(群聊)上下文共享机制。现在每个频道都拥有独立的对话上下文,不再互相影响。未来的版本将进一步简化频道配置。
- 核心扩展变更 (3d440cc, 8f38897): 已移除旧的
Creator扩展(代码生成工具),并由功能更强大、更安全的代码解释器(Code Interpreter)插件替代。
✨ 新功能 (Features)
- 动态提示词服务 (0f8bbab, 3b1f281):
- 引入了全新的提示词服务,支持使用
{{key}}语法动态注入数据。 - 内置了丰富的默认片段,如
{{bot.name}},{{user.name}},{{date.today}},{{time.now}}等,使提示词更具情境感知能力。
- 引入了全新的提示词服务,支持使用
- 代码解释器扩展 (8f38897, 76a7f98):
- 新增了一个安全的 代码解释器 插件,用于在隔离的沙箱环境中执行 JavaScript 代码。
- 支持动态依赖安装、执行超时控制和结果缓存,并为 AI 提供了更清晰的错误提示和修复建议。
- 好感度系统插件 (c48f0a6):
- 新增了用户好感度系统,可追踪和管理 AI 与用户之间的好感度。
- 支持自定义好感度阶段,并提供
add_favor等工具供 AI 调用,以实现更具个性化的互动。
- 配置向导增强 (21160a0):
setup指令功能大幅增强,现支持在交互式向导中配置更多核心选项。- 新增人格预设支持,可在配置时快速选择不同的人格设定。
- 配置流程更智能,可根据前置选项跳过不相关步骤,并提供 Markdown 格式的配置预览。
- 数据与缓存管理 (ff4a23f, 7e3b8fe):
- 新增聊天记录自动清理功能,可根据配置天数定期移除过期的对话历史,防止数据无限堆积。
- 新增
image.clear命令,用于手动清理图片缓存。
- 工具与扩展管理 (705cd45, a2eb14f):
- 新增一系列管理命令,如
tool.list(列出工具)、tool.info(查看工具详情)、extension.list(列出扩展) 等。 - 核心工具现已支持在消息中解析并发送图片内容 (fcde7ee)。
- 新增一系列管理命令,如
🚀 优化与重构 (Optimizations & Refactoring)
- 智能体核心重构 (d1cf9d5, 58651e0): 对智能体(Agent)的核心逻辑进行了重构,优化了多模态上下文处理、心跳循环和错误处理,提升了系统的稳定性和可维护性。
- 世界状态服务优化 (4e9b9b5, 17cb29f):
- 重构为单频道上下文模式,简化了状态管理和事件触发机制。
- 优化了对话历史记录的管理和总结功能,提升了性能。
- 响应频道配置 (allowedChannels):
allowedChannels配置项现支持更灵活的通配符规则,以精确控制机器人响应的频道范围。支持的格式如下:- 精确匹配:
onebot:123456 - 平台通配:
onebot:*或onebot:all - 类型通配:
onebot:private:*(所有私聊),onebot:guild:*(所有频道) - 全局通配:
*:*(所有平台和频道)
- 精确匹配:
- 模型与配置:
- 服务器连接优化 (bd37fd5): MCP 服务器连接逻辑从串行改为并行,提高了启动效率。
🐛 Bug 修复 (Bug Fixes)
Release v3.0.0-beta.3
✨ 新功能
-
增强历史记录清理功能 (2d3e628)
history.clear命令现已支持批量操作,可以更灵活地管理历史记录。- 新增
-a, --all选项,用于一键清理所有私聊、群聊或全部频道的记录。 - 新增
-p, --platform和-c, --channel选项,允许按平台和频道进行精确清理。 - 新增
-t, --target选项,支持通过平台:频道ID的格式直接指定清理目标。 - 新增
--delete选项,支持永久删除历史记录,而非默认的归档操作。 - 引入了数据库事务,确保在执行批量删除时所有相关操作的原子性,保证了数据一致性。
-
- 重构了世界状态服务,优化了消息记录流程,并对普通消息和指令消息进行区分,以避免重复触发响应。
- 新增用户消息数限制 (
maxMessages),可在历史记录过长时自动进行修剪,保证核心上下文的有效性。 - 增加了数据库查询的上下文长度限制,防止因上下文过长导致的性能问题。
- 美化了日志输出,提升了开发和调试过程中的可读性。
-
- 统一了提示词(Prompt)中的术语和 XML 标签风格,例如将
is_current="true"统一为<message>标签。 - 在核心记忆模板中新增了
title和description字段,用于展示记忆的摘要信息。 - 新增了群聊场景下的社交互动准则,以优化多用户对话体验。
- 统一了提示词(Prompt)中的术语和 XML 标签风格,例如将
🚀 优化与重构
-
意愿值管理策略优化 (a2355ca)
- 将代理(Agent)的意愿值管理策略从原有的“清零策略”调整为“递减策略”。
- 这一改动使得对话过程中的意愿值不会被完全重置,保留了部分历史意愿,使长对话的延续更加自然,避免了因突然重置而产生的突兀感。
-
记忆服务重构 (3c6fd0c)
- 对记忆服务进行了全面重构,核心记忆块改为基于文件存储和 YAML 元数据。
- 引入了新的归档记忆存储机制,支持向量搜索和数据库持久化,显著提升了记忆的检索能力和持久性。
- 简化了记忆服务整体架构,并提供了更完善的记忆管理工具。
-
- 移除了
BaseExtension基类,改为使用装饰器自动处理工具注册和this绑定,大幅简化了新扩展的开发流程。 - 统一了所有内置扩展的元数据格式,并支持通过配置动态启用或禁用扩展,提升了灵活性。
- 移除了
-
模型服务结构优化 (b7caa3b)
- 对模型服务的配置结构和初始化逻辑进行了重构,简化了
TaskType枚举值。 - 模型组(
modelGroups)的结构调整为数组,并增加了明确的类型定义。 - 为了更清晰地表达其功能,
taskAssignments已重命名为task。 - 优化了配置的验证和错误处理机制,提升了系统的健壮性。
- 对模型服务的配置结构和初始化逻辑进行了重构,简化了
-
代理(Agent)内部优化 (be179d7, 305cf95)
- 使用
ctx.debounce替代了手动的防抖逻辑,提升了代码的可维护性。 - 对代码结构和日志输出(如 Token 消耗、意愿值变化)进行了优化,提升了调试效率。
- 使用
🐛 Bug 修复
- 修复长消息处理与动作执行顺序 (b93b0fb)
- 修复了长消息在构建提示词时可能被错误截断的问题。
- 将动作执行(
executeActions)逻辑从并行改为串行,确保了多个动作能够按预期顺序执行。
🛠️ 构建与依赖
-
构建脚本更新 (6e735d3)
- 构建脚本已从
.js切换为.mjs,以更好地支持 ES 模块。 - 添加了新的基于 esbuild 的构建配置文件。
- 在根
package.json中新增了clean脚本,方便清理构建产物。
- 构建脚本已从
-
依赖更新
- 核心包(core)版本已更新至
3.0.0-beta.3。
- 核心包(core)版本已更新至
Release v3.0.0-beta.2
本次更新是一次重大的功能和架构升级,引入了全新的扩展系统,重构了代理核心、模型服务和世界状态管理,并迁移到了 Turborepo 构建系统。此版本旨在大幅提升框架的可扩展性、可维护性和开发者体验。
✨ 新功能
- 扩展系统:
- 引入了全新的实验性扩展服务框架,使用
@Extension和@Tool装饰器简化扩展和工具的创建。 - 实现了扩展的动态加载、卸载、配置验证和管理功能。
- 增强了工具定义,新增会话可用性检查 (
isSupported) 和更丰富的参数类型。 - 新增了多个核心内置扩展,包括:
creator: 使用 LLM 动态创建工具。interactions: 支持消息表态、精华等交互。memory: 提供核心记忆和归档记忆管理。qmanager: 实现群组和成员管理。search: 提供网页抓取和网络搜索功能。
- 引入了全新的实验性扩展服务框架,使用
- 智能体核心:
- 实现了意愿管理系统,用于动态计算回复概率,增强了代理行为的灵活性。
- 新增了人性化的打字效果,可根据消息长度和语言动态调整发送延迟。
- 添加了交互式配置向导,允许用户通过对话界面逐步完成机器人配置。
- 世界状态:
- 重构了对话历史的数据结构,将其拆分为
pending、folded和summarized三种状态,优化了长对话处理和折叠功能。
- 重构了对话历史的数据结构,将其拆分为
- 模型服务:
- 实现了模型列表的动态加载与更新,并优化了配置验证逻辑。
♻️ 重构与优化
- 核心架构:
- 模型服务: 重构了模型服务,引入了通用的
BaseModel基类和IChatModel、IEmbedModel接口,提升了模型提供商的可扩展性。 - 日志系统: 新增了统一的日志服务,美化了所有日志输出,并重新定义了日志级别以对齐 Koishi。
- 错误处理: 重构了错误处理模块,使用统一的
AppError和错误码规范。
- 模型服务: 重构了模型服务,引入了通用的
- 代理与世界状态:
- 重构了消息发送者的数据结构,从
senderId字符串变更为包含id,name,roles的对象。 - 优化了工具模板的渲染逻辑和消息发送功能。
- 优化了对话历史的消息查询和格式化逻辑。
- 重构了消息发送者的数据结构,从
- 代码质量:
- 统一了
tsconfig.json配置,并优化了模块导入路径(使用@/别名)。 - 全面优化了日志格式和内容,移除了冗余信息,使其更简洁易读。
- 清理了大量过时代码和未使用的配置文件。
- 统一了
🐛 修复
- 工具与扩展: 修复了工具执行时的
this上下文绑定问题,并改进了错误处理,确保异常能被正确捕获和记录。 - 配置: 修复了模型能力配置复选框在前端页面可能崩溃的问题。
- 解析: 改进了 Markdown 中 JSON 代码块的提取逻辑,避免错误解析包含代码块的字符串值。
- MCP: 修复了服务器 URL 的处理逻辑,增加了对
http/https协议的兼容。
🛠️ 构建与工具链
- 构建系统: 项目构建系统已从
yakumo整体迁移至Turborepo,显著提升了构建速度和缓存效率。 - 持续集成: 优化了 GitHub Actions 工作流,使用
bun作为运行时,并添加了构建超时设置和缓存。
⚙️ 其他
- 依赖项: 更新了
core和mcp包的版本号,并同步更新了多个外部依赖。
Release v3.0.0-beta.1
v3.0.0-beta.1:世界状态的黎明
YesImBot / Athena v3.0.0-beta.1 已发布!这不仅是一次版本更新,更是一次颠覆性的架构革命。我们告别了传统的场景管理和中间件流水线,全面转向以世界状态 (World State) 为核心的全新智能体 (Agent) 设计。
我们引入了基于 ReAct 模式的思维链 (Chain of Thought) 机制,要求 Agent 在行动前进行充分的观察、分析和规划。这次重构为 Agent 带来了前所未有的情景感知能力和逻辑连贯性,是迈向更高级智能的关键一步。
请注意:为实现这一架构飞跃,我们暂时移除了一些旧有功能。项目仍处于快速开发阶段,我们期待您的反馈来共同塑造它的未来。
🌟 核心亮点:世界状态 (World State) 与智能体核心 (Agent Core)
本次更新的基石是全新的 世界状态 (World State) 系统和围绕它构建的 Agent 执行流程。
1. 什么是世界状态 (World State)?
我们彻底抛弃了旧的、孤立的 ScenarioManager。现在,Agent 的每一次思考都基于一个统一、全面的数据快照——世界状态。您可以将其理解为 Agent 眼中的“现实”:
- 多频道意识 (Multi-Channel): 世界状态包含了 Agent 所处的所有频道 (Channels) 信息,包括群聊和私聊。Agent 不再局限于单一对话,而是能感知到自己在多个场景中的存在,并进行跨通道思考。
- 基于事件的日志 (Event-based Log): 交互不再是零散的消息,而是被组织成结构化的对话片段 (
<dialogue_segment>)。每个片段都清晰地记录了用户消息 (<dialogue>) 和关键的系统事件 (<system_events>),例如指令调用 (<command-invoked>) 及其结果。这使得 Agent 能准确区分“用户说的话”和“用户做的事”。 - 连贯的思考单元 (
<agent_turn>): Agent 的每一次回应都被记录为一个完整的回合 (<agent_turn>),包含其详细的思考过程 (<thoughts>) 和执行的动作 (<actions>)。通过回顾过去的回合,Agent 可以保持计划的连贯性。
2. 思维链 (Chain of Thought): 智能体的决策核心
我们为 Agent 引入了严格的**“思考-行动”循环 (The Think-Act Cycle)**,强制其在每次响应前进行结构化思考,以提升逻辑推理和任务规划能力。
- 四步决策法: 每次行动都必须遵循 观察 (OBSERVE) -> 分析 (ANALYZE) -> 规划 (PLAN) -> 行动 (ACT) 的流程。
- 连续思考链: 通过
request_heartbeat机制,Agent 可以执行多步计划。例如,先搜索记忆,再根据搜索结果决定下一步是查询网页还是直接回复,从而处理更复杂的任务。
3. 对话上下文的演进:折叠与摘要
作为世界状态的一部分,我们实现了更智能的上下文管理机制,以替代旧的人格记忆压缩:
- 对话上下文压缩: 旧的对话片段会自动改变其状态,从
open(活动) 变为closed(已关闭),再到folded(折叠,隐藏思考细节) 和summarized(摘要,浓缩所有内容)。这是一种动态、原生的上下文压缩方式,极大节省了提示词长度,同时保留了关键历史信息。
✨ 其他新功能与改进
- 多模态能力支持: Agent 核心原生支持处理图文混合内容,能够“看到”并分析图片。
- 配置管理命令: 新增
conf.get和conf.set命令,方便管理员在运行时动态调整配置。 - 开发者体验与扩展性:
- 工具与扩展系统重构: 引入了基于装饰器的新版 API,极大地简化了工具的开发和注册流程。
- 强大的提示词模板引擎: 提示词系统全面升级,采用 Mustache.js 作为模板引擎。这不仅支持简单的
{{placeholder}}占位符,更允许用户编写包含条件判断和循环等复杂逻辑的提示词模板,极大地增强了自定义能力和动态性。所有核心提示词已围绕新的世界观进行了重写。
- 安全性增强: 添加了一次性代码验证机制,用于增强特定高风险消息的安全性。
🐛 Bug 修复
- 修复了 MCP 工具的执行问题和导入逻辑。
- 修复了因配置缺失(如内存压缩相关)导致的潜在问题。
- 修复了模型响应中包含多条工具调用时的解析错误。
- 修复了在特定情况下因用户信息获取失败而导致的程序崩溃。
- 修复了在热重载 (Hot Reload) 后核心工具未被重新注册的问题。
⚠️ 重大变化与暂时移除的功能
为了聚焦于新的核心架构,我们进行了大刀阔斧的精简。以下功能在 beta.1 版本中已被移除或暂时禁用,并计划在未来以适应新架构的方式重新实现:
- 【完全移除】中间件架构 (Middleware Architecture): 整个中间件流水线已被新的 Agent 执行流程取代。所有旧的中间件逻辑都需要在 Agent 框架内重新思考和实现。
- 【暂时移除】平台服务与平台适配器: 相关代码已被移除,以待未来根据新的 Agent 核心进行统一设计。
- 【暂时移除】人格记忆压缩 (Persona Memory Compression): 旧的、基于 LLM 的长篇记忆总结功能已被暂时禁用。其部分功能由世界状态中的对话上下文自动折叠与摘要所替代。
- 【暂时移除】LLM 请求的容错机制: 为简化核心逻辑,之前版本中实现的 LLM 请求重试、超时控制和多适配器故障转移机制已被暂时禁用。