news 2026/9/19 1:26:16

Cherry Studio 移除 Soul Mode(自主模式)开关:所有 Agent 默认启用自主能力的破坏性变更解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cherry Studio 移除 Soul Mode(自主模式)开关:所有 Agent 默认启用自主能力的破坏性变更解析

Cherry Studio 移除 Soul Mode(自主模式)开关:所有 Agent 默认启用自主能力的破坏性变更解析

【免费下载链接】cherry-studio🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端项目地址: https://gitcode.com/CherryHQ/cherry-studio

本篇技术指南以 Cherry Studio v2 重构分支中的 breaking change 记录 2026-07-03-remove-soul-mode-toggle.md 为核心,完整讲解 Soul Mode / Autonomous Mode 开关被移除的前因后果:自主工具(cron/notify/config)、Agent 记忆工具、工作区 persona(SOUL.md)如何对所有 Agent 无条件开放,permission_mode如何与自主能力彻底解耦,以及旧的soul_enabled配置、mcp__claw__*/mcp__cherry__*禁用项如何处理。读完你可以准确评估该变更对现有 Agent 配置、定时任务、通道(channels)与工具权限的实际影响,并为用户与发布流程做好应对。

变更背景:从「可选开关」到「无条件启用」的演进

Soul Mode(在部分界面中称为 Autonomous Mode / 自主模式)是 Cherry Studio v2 Agent 体系中的一项能力门控开关。它控制着一组「自主任务管理与记忆」能力是否对某个 Agent 开放。在本次变更之前,Soul Mode 的演进经历了两个阶段:

  1. 早期阶段soul_enabled默认不设置,由后端默认值决定,仅在用户主动开启时生效。
  2. 2026-06-18 中间态:由 PR #16187 引入的变更(见 2026-06-18-agent-create-defaults-bypass-soul.md)将「从 v2 库创建 Agent」的流程默认改为permission_mode = bypassPermissionssoul_enabled = true,即新创建的 Agent 默认开启自主模式并绕过工具审批,这是一次更宽松的默认安全姿态。
  3. 2026-07-03 最终态:PR #16726 直接删除了开关本身,使自主能力对所有 Agent 无条件生效。

本次文档(severity:notice,category:removed)宣告的就是第三阶段:开关不再存在,任何 Agent 都始终运行在开启自主能力的模式下。

核心变更:开关移除后,哪些能力变成了「人人可用」

根据文档,被 Soul Mode 开关门控的能力共有三组,移除后对所有 Agent 无条件开放:

1. 自主工具:mcp__cherry-tools__cron/notify/config

这三个工具由进程内 MCP 服务器cherry-tools托管,实现在 cherryAutonomyTools.ts 中(文件头部注释明确写道:这些是 "Agent autonomy tools (cron / notify / config) hosted by the in-process cherry-tools MCP server")。与无状态的 builtin 查询工具不同,它们代表特定 Agent 行动——为其调度定时任务、通过其通道发送通知、管理其自身配置,因此构造时携带按会话隔离的CherryAgentContextagentIdworkspaceSourceworkspacePathtrustedNotifyChannels等)。

从源码可以看到三个工具的实际能力边界:

  • cron:管理定时任务。action支持add/list/removeadd时通过cron(如'0 9 * * 1-5')、every(如'30m''2h''1h30m',由parseDurationToMinutes解析为分钟)或at(RFC3339 一次性时间戳,如'2024-01-15T14:30:00+08:00')指定调度方式,三者互斥;可通过channel_ids指定投递通道。
  • notify:通过 Agent 配置的通知通道发送消息或文件。测试用例(cherryAutonomyTools.test.ts)验证了它支持messagefile_path(可二选一或同时提供)、消息脱敏(将sk-ant-api03-*之类的密钥替换为[REDACTED])、部分失败报告、无通知接收方时的信息性结果(Message sent to 0 chat(s)且不视为错误)等行为。
  • config:管理 Agent 自身的配置,例如重命名、标记 bootstrap 完成。

2. Agent 记忆工具:mcp__agent-memory__*

Agent 记忆能力(agent-memory服务器)此前同样受 Soul Mode 门控,现在对所有 Agent 开放。它与自主工具共同构成 Agent 的「长期记忆 + 自主行动」闭环。

3. 工作区 persona 提示:SOUL.md 与相关工作区文件

Soul Mode 此前还会决定 Agent 是否读取工作区中的 persona 提示(SOUL.md及相关工作区文件)。现在该提示对所有 Agent 生效。这一机制与 Agent 的 bootstrap 流程深度绑定:在 bootstrap.ts 中,SOUL.md被定义为记录 Agent「名称、个性、语气、沟通风格」的文件,而USER.md记录用户画像;bootstrap 完成前还会调用mcp__cherry-tools__configcomplete_bootstrap)与mcp__agent-memory__memoryappend,tags:["bootstrap"])记录引导完成事件。该文件还定义了SOUL_CONTENT_THRESHOLD = 50,用于判断SOUL.md是否已从模板状态变为已配置状态。

用户可见的变化:编辑对话框与页面表现

文档明确列出了用户(及开发者)在界面上能观察到的差异:

  • Agent 编辑对话框中的 "Autonomous Mode" 开关不再出现,设置项被整体移除;
  • 此前关闭了该开关的 Agent,现在会自动暴露自主任务管理、记忆工具,并读取工作区 persona 提示——这是一个行为上的自动扩展
  • 定时任务页面(scheduled-tasks)现在列出所有 Agent,而非仅列出 Soul-Mode / bypass 权限的 Agent;
  • 通道(channels)与定时任务不再要求 Soul Mode 或bypassPermissions权限模式,任何 Agent 都可以用于它们。

permission_mode的独立性:与自主能力彻底解耦

本次变更最重要的语义调整之一,是permission_mode(权限模式)变得完全独立

  • 选择bypassPermissions不再意味着(也不再被)任何自主设置所隐含或隐含它;
  • 反之,自主能力也不再要求bypassPermissions

也就是说,Soul Mode 移除后,「Agent 能否自主调度任务 / 发送通知 / 使用记忆」与「Agent 使用工具时是否需要用户审批」是两条正交的轴。一个采用严格审批模式(非 bypass)的 Agent,同样可以使用 cron/notify/config 等自主工具;一个 bypass 权限的 Agent,其自主工具的暴露也不再由开关控制。

工具覆盖层移除:交互式工具恢复,禁用分类保留

PR #16726 同时移除了一刀切的 disallowed-tools 覆盖层(blanket overlay)。在 settingsBuilder.test.ts 中留有直接注释佐证:"Interactive tools are no longer blanket-disabled now that the soul-mode overlay is gone."。具体来说:

恢复可用(此前被覆盖层统一禁用)

  • AskUserQuestion(询问用户);
  • plan-mode 工具(EnterPlanMode/ExitPlanMode等);
  • worktree 工具(EnterWorktree等,但注意:当会话工作目录无.git时仍会被按条件阻止)。

测试用例leaves interactive tools available for plain agents (only registry-disabled tools blocked)验证了AskUserQuestionEnterPlanMode不再进入disallowedTools

仍然保持禁用(由声明式注册表的exposure: 'disabled'分类决定)

  • CronCreate/CronDelete/CronListTodoWriteNotebookEdit仍被阻止。在 toolRegistry.ts 中,工具分类(ClaudeToolExposure = 'user' | 'internal' | 'disabled')明确注释:disabled分类的工具始终被阻止(加入 SDKdisallowedTools硬阻止列表)。Cron*系列(CronCreateCronDeleteCronList)与TodoWriteNotebookEdit均属于此类——也就是说,Cherry Studio 的调度能力统一收敛到mcp__cherry-tools__cron,而 Claude Code 原生 Cron/Todo 工具仍被屏蔽,避免能力重复与冲突。

保留的特殊限制(按场景)

  • assistant-only 的AskUserQuestion禁用被保留:内置助手(Assistant)角色仍不能使用该工具;
  • headless 运行(通道触发与定时任务派发)仍禁用AskUserQuestion:这类运行没有响应者(responder),若允许询问会导致运行卡死。测试用例denies interactive no-responder tools at tool fire time for the current headless turn验证了这一点——它通过AgentSessionRuntimeService.getInteractionState判断当前 turn 是否为headless,若是则在工具触发时刻(而非设置构建时)拒绝AskUserQuestionEnterPlanModeExitPlanModeEnterWorktree及需要审批的运行期工具,提示 "This channel or scheduled turn has no interactive responder..."。

用户仍可自行收窄

最终保留的自主工具cronnotifyconfig可以通过 Agent 的工具设置(tool settings)逐项禁用——这是文档建议的、替代「依赖 Soul Mode 关闭来隐藏自主工具」的做法。

旧配置兼容性:soul_enabled被忽略,旧禁用项静默失效

文档明确了迁移行为,用户无需任何操作

  • 任何 Agent 配置中存储的soul_enabled值都会被直接忽略(配置字段已从 schema 中移除);
  • 曾依赖 Soul Mode 关闭来隐藏自主工具的用户,应改为通过 Agent 的工具设置限制单个工具;
  • 持久化的disabledTools条目中,使用旧名称mcp__claw__*/mcp__cherry__*的覆盖项将失去其覆盖效果——该破坏性变更被接受(pre-release break),不提供 remap 兼容垫片。如果用户此前通过这些旧名称禁用了某个工具,升级后该禁用将不再生效,需要重新以新名称mcp__cherry-tools__*配置。

从服务器构建测试(buildMcpServers.test.ts)可以印证服务器命名的最终形态:测试断言 "injects cherry-tools for every session; the standalone cherry server and exa are gone",且cherry-toolsagent-memoryskillsmcp-manager一样作为每个会话都会挂载的宿主工具集出现,自动批准清单中直接包含mcp__cherry-tools__cronmcp__cherry-tools__notifymcp__cherry-tools__config

品牌与服务器重命名:CherryClaw 退出历史舞台

同一 PR 中完成的三项重命名需要一并知晓:

  1. CherryClaw 品牌移除:UI 字符串与 i18n key 中不再出现该品牌名,相关文案统一改为 "channels" / "tasks";
  2. 独立clawMCP 服务器更名为cherry
  3. 随后与cherry-tools合并:独立服务器不再存在,自主工具的最终命名统一为mcp__cherry-tools__cron/mcp__cherry-tools__notify/mcp__cherry-tools__config

发布管理者须知(Release Notes 要点汇总)

文档「Notes for release manager」一节为本变更的聚合发布提供了清单,涵盖 PR #16726 的多个提交面:

  • 无条件 Soul-Mode 行为(main 进程侧);
  • renderer / schema 侧标志位移除;
  • CherryClaw 品牌移除(UI 与 i18n 清理);
  • 交互式工具覆盖层移除;
  • clawcherry-tools服务器重命名与合并;
  • 上一期相关条目(2026-06-18 的默认值变更)中关于soul_enabled的描述已被本次变更取代(该字段已不存在),聚合时需合并处理。

结论与升级建议

Soul Mode 开关的移除,本质上是 Cherry Studio v2 Agent 体系的一次「能力扁平化」:自主任务管理、记忆与 persona 提示从「可选特权」变为「基础能力」,而权限审批(permission_mode)与工具级禁用成为唯一的收窄手段。对使用者而言:

  1. 无需任何手动迁移——旧的soul_enabled自动失效;
  2. 审视既有安全预期——此前通过关闭 Soul Mode 隐藏自主工具的 Agent,现在会暴露这些能力,应改用 Agent 工具设置逐项禁用cron/notify/config
  3. 检查disabledTools旧名称——mcp__claw__*/mcp__cherry__*条目不再生效,需按新命名重新配置;
  4. 理解 headless 限制不变——通道与定时任务派发的运行仍禁止需要响应者的交互式工具,这是刻意设计而非回归;
  5. 定时任务与通道的选择范围扩大——所有 Agent 均可用于调度与通道,不再受模式约束。

如需深入底层实现,可继续阅读 cherryAutonomyTools.ts(自主工具实现)、cherryAutonomyTools.test.ts(行为契约测试)、toolRegistry.ts(工具 exposure 分类)以及 settingsBuilder.test.ts(会话设置与 disallowedTools 组装逻辑)。

【免费下载链接】cherry-studio🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端项目地址: https://gitcode.com/CherryHQ/cherry-studio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 1:23:15

2026欧洲数据中心报告解读:电力、液冷与数据主权博弈

我今年年初一直在跟欧洲几个数据中心项目打交道,翻到EUDCA(欧洲数据中心协会)《2026年欧洲数据中心状况》报告时,正好和我手里几个客户遇到的瓶颈对上了。这份报告不是简单的增长数据罗列,它把电力供应、液冷渗透率、数…

作者头像 李华
网站建设 2026/9/19 1:19:10

Hermes 本地 Windows 端跑 Agent 任务:Key 用 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华