CherryHQ / CherryHQ/cherry-studio

[功能]: 助手作为对话参与者而非话题容器

Open
#3,922 11 comments 3 reactions 0 assignees View on GitHub
blocked-v2 Dev Team feature
Dominant language
TypeScript
Stars
51.8k
Forks
5k
Avg merge
2d 7h
Merged PRs (30d)
603

Description

### 提交前检查

- [x] 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决。
- [x] 我已经查看了置顶 Issue 并搜索了现有的 [开放Issue](https://github.com/CherryHQ/cherry-studio/issues)和[已关闭Issue](https://github.com/CherryHQ/cherry-studio/issues?q=is%3Aissue%20state%3Aclosed%20),没有找到类似的建议。
- [x] 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等。
- [x] 最新的 Cherry Studio 版本没有实现我所提出的功能。

### 平台

Windows

### 版本

v1.1.10

### 您的功能建议是否与某个问题/issue相关?

目前,助手、话题、消息的职责有点不清楚,也不好实现多助手协同。

- 助手作为顶层结构,管理话题和其中的消息。
- 用户发送消息时,又可以直接调整助手(顶层结构)的属性,比如 enableGenerateImage。
- 我没理解错的话:启用一些能力是通过设置助手相应属性完成的,比如 enableGenerateImage, enableWebSearch;启用另一些功能是通过当次对话(相当于由话题和消息负责)完成的,比如 vision;还有一些需要它们共同完成,比如 mcp。
- 模型提及(mention, @)功能无法提及助手。

一旦实现目录结构,助手和话题这两个 tab 看起来更加复杂了:#2499

### 请描述您希望实现的解决方案

概念转变:助手作为对话的参与者,而非话题的容器。

助手可以和话题解耦,让话题作为顶层结构,让几种重要结构的概念更加清晰。

- 顶层是话题管理。加上导航条(增加按助手分类,兼容旧 UI 习惯),加上目录结构,管理更加方便。
- #3640
- #292
- 助手独立管理。助手作为对话参与者,是助手模板(目前的“智能体”)+特定模型构成的具有预定知识、能力、风格的助手。它可以在话题中随意切换、提及,也可以设定默认启用的能力(可以增加选项,强制启用或者根据模型决定)。
- #3926
- #3834
- #3760
- #3486
- 具体到一条消息,用户可以覆写目前由助手启用的能力、知识等(可以默认设定为临时覆写,把永久覆写做成开关,或者只允许在助手编辑页面完成)。
- 助手目前的“预设消息”可以调整触发时机,比如说允许用户选择:在新话题第一轮对话时启用,或者在切换助手时启用。

UI 考虑:
- 现在侧边栏里面设置中的“模型设置”可以自然过渡到“助手设置”。
- 话题分组和助手分组已经有了,只是根据概念的变化调整一下结构。#2499
- 助手在对话界面的显示也有了。#3446

![Image](https://github.com/user-attachments/assets/875d992a-e49b-436a-a5b2-cdd7975f2418)

### 请描述您考虑过的其他方案

_No response_

### 其他补充信息

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the current assistant, topic, and message concepts, along with the related discussions in #2499, #3640, #292, #3926, #3834, #3760, #3486, and #3446. The proposal is done only when topics can serve as the top-level structure, assistants can participate and be switched or mentioned, and assistant-level capabilities can be overridden for individual messages.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.