Skip to content

Releases: YesWeAreBot/YesImBot

koishi-plugin-yesimbot@3.0.3

15 Sep 17:07
1e1132c

Choose a tag to compare

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

  • b74e863: use koishi-plugin-sharp
  • 106be97: use puppeteer
  • 1cc0267: use changesets to manage version
  • b852677: 新增流式心跳处理功能,支持实时解析和执行动作

koishi-plugin-yesimbot@3.0.2

15 Sep 16:46
34e438e

Choose a tag to compare

Patch Changes

  • 018350c: fix(core): 修复上下文处理中的异常捕获

    • 过滤空行以优化日志读取

    • 增加日志长度限制和定期清理历史数据功能

      fix(core): 响应频道支持直接填写用户 ID

    • closed #152

      refactor(tts): 优化 TTS 适配器的停止逻辑和临时目录管理

      refactor(daily-planner): 移除不必要的依赖和清理代码结构

  • 018350c: refactor(logger): 更新日志记录方式,移除对 Logger 服务的直接依赖

Release v3.0.0-beta.4

17 Jul 15:07

Choose a tag to compare

Release v3.0.0-beta.4 Pre-release
Pre-release

本次更新带来了全新的提示词服务、强大的代码解释器、好感度系统以及一系列核心重构与优化,旨在提升系统的灵活性、稳定性和用户体验。

⚠️ 重要提示与破坏性变更

  • 系统提示词重构 (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:* (所有频道)
    • 全局通配: *:* (所有平台和频道)
  • 模型与配置:
    • 默认模型的 temperature 调整为 0.85topP 调整为 0.95,以鼓励更多样化的回复 (e84f856)。
    • 统一了模型能力(Capabilities)的命名,使其更简洁清晰 (f2b45f2)。
  • 服务器连接优化 (bd37fd5): MCP 服务器连接逻辑从串行改为并行,提高了启动效率。

🐛 Bug 修复 (Bug Fixes)

  • 模型切换: 修复了在特定场景下自动切换模型(如从文本模型到多模态模型)的逻辑问题 (cfca6a8, 4f38820)。
  • 指令与交互:
    • 修复了部分工具指令(如禁言、踢出)参数命名不一致的问题 (dab1662)。
    • 修复了表态 (set_msg_emoji_like) 和戳一戳 (group_poke) 功能的接口调用问题 (5d284d3)。
  • JSON 解析: 改进了从 Markdown 代码块中提取 JSON 的逻辑,增强了对不规范格式的兼容性和错误处理 (81fbae6, 3eb07e6)。
  • 配置合并: 修复了扩展的自定义配置未能正确合并导致不生效的问题 (8799b0c)。
  • 服务器连接: 修复了在未配置 MCP 服务器时,程序无法正常跳过连接逻辑的 Bug (4b14066)。

Release v3.0.0-beta.3

11 Jul 17:10

Choose a tag to compare

Release v3.0.0-beta.3 Pre-release
Pre-release

✨ 新功能

  • 增强历史记录清理功能 (2d3e628)

    • history.clear 命令现已支持批量操作,可以更灵活地管理历史记录。
    • 新增 -a, --all 选项,用于一键清理所有私聊、群聊或全部频道的记录。
    • 新增 -p, --platform-c, --channel 选项,允许按平台和频道进行精确清理。
    • 新增 -t, --target 选项,支持通过 平台:频道ID 的格式直接指定清理目标。
    • 新增 --delete 选项,支持永久删除历史记录,而非默认的归档操作。
    • 引入了数据库事务,确保在执行批量删除时所有相关操作的原子性,保证了数据一致性。
  • 优化世界状态服务 (e1252c3, 21b9657)

    • 重构了世界状态服务,优化了消息记录流程,并对普通消息和指令消息进行区分,以避免重复触发响应。
    • 新增用户消息数限制 (maxMessages),可在历史记录过长时自动进行修剪,保证核心上下文的有效性。
    • 增加了数据库查询的上下文长度限制,防止因上下文过长导致的性能问题。
    • 美化了日志输出,提升了开发和调试过程中的可读性。
  • 提示词与模板优化 (bfe40f1, ce2971a)

    • 统一了提示词(Prompt)中的术语和 XML 标签风格,例如将 is_current="true" 统一为 <message> 标签。
    • 在核心记忆模板中新增了 titledescription 字段,用于展示记忆的摘要信息。
    • 新增了群聊场景下的社交互动准则,以优化多用户对话体验。

🚀 优化与重构

  • 意愿值管理策略优化 (a2355ca)

    • 将代理(Agent)的意愿值管理策略从原有的“清零策略”调整为“递减策略”。
    • 这一改动使得对话过程中的意愿值不会被完全重置,保留了部分历史意愿,使长对话的延续更加自然,避免了因突然重置而产生的突兀感。
  • 记忆服务重构 (3c6fd0c)

    • 对记忆服务进行了全面重构,核心记忆块改为基于文件存储和 YAML 元数据。
    • 引入了新的归档记忆存储机制,支持向量搜索和数据库持久化,显著提升了记忆的检索能力和持久性。
    • 简化了记忆服务整体架构,并提供了更完善的记忆管理工具。
  • 扩展系统架构重构 (d1054c6, 0a976b3)

    • 移除了 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

Release v3.0.0-beta.2

10 Jul 19:12

Choose a tag to compare

Release v3.0.0-beta.2 Pre-release
Pre-release

本次更新是一次重大的功能和架构升级,引入了全新的扩展系统,重构了代理核心、模型服务和世界状态管理,并迁移到了 Turborepo 构建系统。此版本旨在大幅提升框架的可扩展性、可维护性和开发者体验。

✨ 新功能

  • 扩展系统:
    • 引入了全新的实验性扩展服务框架,使用 @Extension@Tool 装饰器简化扩展和工具的创建。
    • 实现了扩展的动态加载、卸载、配置验证和管理功能。
    • 增强了工具定义,新增会话可用性检查 (isSupported) 和更丰富的参数类型。
    • 新增了多个核心内置扩展,包括:
      • creator: 使用 LLM 动态创建工具。
      • interactions: 支持消息表态、精华等交互。
      • memory: 提供核心记忆和归档记忆管理。
      • qmanager: 实现群组和成员管理。
      • search: 提供网页抓取和网络搜索功能。
  • 智能体核心:
    • 实现了意愿管理系统,用于动态计算回复概率,增强了代理行为的灵活性。
    • 新增了人性化的打字效果,可根据消息长度和语言动态调整发送延迟。
    • 添加了交互式配置向导,允许用户通过对话界面逐步完成机器人配置。
  • 世界状态:
    • 重构了对话历史的数据结构,将其拆分为 pendingfoldedsummarized 三种状态,优化了长对话处理和折叠功能。
  • 模型服务:
    • 实现了模型列表的动态加载与更新,并优化了配置验证逻辑。

♻️ 重构与优化

  • 核心架构:
    • 模型服务: 重构了模型服务,引入了通用的 BaseModel 基类和 IChatModelIEmbedModel 接口,提升了模型提供商的可扩展性。
    • 日志系统: 新增了统一的日志服务,美化了所有日志输出,并重新定义了日志级别以对齐 Koishi。
    • 错误处理: 重构了错误处理模块,使用统一的 AppError 和错误码规范。
  • 代理与世界状态:
    • 重构了消息发送者的数据结构,从 senderId 字符串变更为包含 id, name, roles 的对象。
    • 优化了工具模板的渲染逻辑和消息发送功能。
    • 优化了对话历史的消息查询和格式化逻辑。
  • 代码质量:
    • 统一了 tsconfig.json 配置,并优化了模块导入路径(使用 @/ 别名)。
    • 全面优化了日志格式和内容,移除了冗余信息,使其更简洁易读。
    • 清理了大量过时代码和未使用的配置文件。

🐛 修复

  • 工具与扩展: 修复了工具执行时的 this 上下文绑定问题,并改进了错误处理,确保异常能被正确捕获和记录。
  • 配置: 修复了模型能力配置复选框在前端页面可能崩溃的问题。
  • 解析: 改进了 Markdown 中 JSON 代码块的提取逻辑,避免错误解析包含代码块的字符串值。
  • MCP: 修复了服务器 URL 的处理逻辑,增加了对 http/https 协议的兼容。

🛠️ 构建与工具链

  • 构建系统: 项目构建系统已从 yakumo 整体迁移至 Turborepo,显著提升了构建速度和缓存效率。
  • 持续集成: 优化了 GitHub Actions 工作流,使用 bun 作为运行时,并添加了构建超时设置和缓存。

⚙️ 其他

  • 依赖项: 更新了 coremcp 包的版本号,并同步更新了多个外部依赖。

Release v3.0.0-beta.1

03 Jul 18:58

Choose a tag to compare

Release v3.0.0-beta.1 Pre-release
Pre-release

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.getconf.set 命令,方便管理员在运行时动态调整配置。
  • 开发者体验与扩展性:
    • 工具与扩展系统重构: 引入了基于装饰器的新版 API,极大地简化了工具的开发和注册流程。
    • 强大的提示词模板引擎: 提示词系统全面升级,采用 Mustache.js 作为模板引擎。这不仅支持简单的 {{placeholder}} 占位符,更允许用户编写包含条件判断和循环等复杂逻辑的提示词模板,极大地增强了自定义能力和动态性。所有核心提示词已围绕新的世界观进行了重写。
  • 安全性增强: 添加了一次性代码验证机制,用于增强特定高风险消息的安全性。

🐛 Bug 修复

  • 修复了 MCP 工具的执行问题和导入逻辑。
  • 修复了因配置缺失(如内存压缩相关)导致的潜在问题。
  • 修复了模型响应中包含多条工具调用时的解析错误。
  • 修复了在特定情况下因用户信息获取失败而导致的程序崩溃。
  • 修复了在热重载 (Hot Reload) 后核心工具未被重新注册的问题。

⚠️ 重大变化与暂时移除的功能

为了聚焦于新的核心架构,我们进行了大刀阔斧的精简。以下功能在 beta.1 版本中已被移除或暂时禁用,并计划在未来以适应新架构的方式重新实现:

  • 【完全移除】中间件架构 (Middleware Architecture): 整个中间件流水线已被新的 Agent 执行流程取代。所有旧的中间件逻辑都需要在 Agent 框架内重新思考和实现。
  • 【暂时移除】平台服务与平台适配器: 相关代码已被移除,以待未来根据新的 Agent 核心进行统一设计。
  • 【暂时移除】人格记忆压缩 (Persona Memory Compression): 旧的、基于 LLM 的长篇记忆总结功能已被暂时禁用。其部分功能由世界状态中的对话上下文自动折叠与摘要所替代。
  • 【暂时移除】LLM 请求的容错机制: 为简化核心逻辑,之前版本中实现的 LLM 请求重试、超时控制和多适配器故障转移机制已被暂时禁用。