设计哲学
这一组文档是 ETOS LLM Studio 的产品设计说明书,不是宣传册。它讲:
- 第一次接触 ETOS 的人,不看 Swift 代码也能理解整个产品怎么运作
- 已经在用的人,知道哪些能力是显式设计,哪些只是默认策略
- 外部协作者能理解 Daily Pulse、记忆、世界书、MCP、快捷指令之间的模块边界
ETOS 不是聊天壳
业界绝大多数 LLM 客户端的产品定位是「把模型 API 包成可用 App」。ETOS 的定位不一样——它要把下面几件事塞进同一个原生客户端:
| 子系统 | 责任 |
|---|---|
| 聊天 | 多提供商、多模型、多模态、请求参数细调 |
| 上下文系统 | 全局提示词、话题提示词、增强提示词、长期记忆、跨会话摘要、用户画像、世界书 |
| 主动能力 | Daily Pulse 在你还没开口之前先给出"今天值得聊什么" |
| 工具能力 | 内置工具、MCP、快捷指令、Skills、沙盒文件工具统一进入同一套治理 |
| 双端体验 | iPhone 完整配置 + 管理;Apple Watch 快速访问 + 提醒 + 轻量继续聊 |
这意味着它的复杂度远高于"接 API 显示文本"。也意味着它需要明确的设计原则——否则功能堆到一定程度就会自己撕裂。
四个设计原则
1. 可解释
ETOS 尽量避免「模型突然变聪明了,但你不知道它看了什么」。
上下文被拆成明确层次:
| 层 | 责任 |
|---|---|
| 全局提示词 | 长期身份与总规则("你是助手 X") |
| 话题提示词 | 当前会话的主题约束 |
| 增强提示词 | 本轮自动化附加 instruction |
| 记忆 / 会话摘要 / 用户画像 | 长期与跨会话背景 |
| 世界书 | 规则化、可触发的定向注入 |
每一层都可以逐层开关——你可以全开,也可以剥到只剩裸模型,而不是被动接受一个黑箱。
完整顺序详见 提示词与上下文拼装。
2. 主动,但低打扰
Daily Pulse 的目的不是"替代聊天",而是解决一个真实问题:很多人每天打开 App 根本不知道该问什么。
因此它采用:
- 每天一组卡片,不是无限滚动信息流
- 反馈驱动(点赞 / 降权 / 隐藏 / 保存),不是强制推荐
- 本地持久化 + 本地提醒,不是云端账号推送
- Best-effort 晨间送达,不是承诺必达的服务器任务
详见 Daily Pulse 设计原理。
3. 工具可控,不是越多越好
ETOS 不把"工具数量"当卖点。它把「当前会话到底暴露了哪些工具」当成更重要的事。
工具中心至少有两层状态:
- 配置上是否启用
- 这个会话里是否真的可用
这两个状态经常不同,因为还会受到这些因素影响:
| 因素 | 影响 |
|---|---|
| 审批策略 | 「始终拒绝」直接屏蔽 |
| 世界书隔离发送 | 整个会话工具被禁用 |
| 服务器是否选中用于聊天 | 没选中的 MCP 服务器的工具不参与 |
| 单个工具是否被禁用 | 同上 |
详见 世界书与工具治理。
4. 双端分工,不是单端移植
iPhone 和 Apple Watch 不是同一个界面缩放一下。
| 设备 | 职责 |
|---|---|
| iPhone | 提供商配置、工具治理、世界书编辑、记忆管理、导入导出、调试与反馈 |
| Apple Watch | 查看提醒、快速发起会话、继续 Daily Pulse、语音或短文本输入 |
这也是为什么 ETOS 把很多复杂策略下沉到共享层(Shared/Shared/),而不是写死在某个页面里——共享层在两端各取所需。
数据流总览
text
用户输入 / Daily Pulse 卡片 / 外部工具结果
│
▼
ChatService 请求编排
│
┌─────────┼─────────┐
│ │ │
▼ ▼ ▼
提示词层 记忆层 世界书层
│ │ │
└─────────┴─────────┘
│
▼
工具暴露与审批
│
▼
模型请求发送
│
▼
响应、摘要、画像、反馈回写任何一条进入模型的请求,都会过这条管道。
该按什么顺序读
| 你的问题 | 读这一页 |
|---|---|
| 一条消息发出去前到底拼了哪些东西? | 提示词与上下文拼装 |
| Daily Pulse 为什么能"主动"推荐?信号源在哪? | Daily Pulse 设计原理 |
| 记忆、会话摘要、用户画像各自负责什么? | 记忆、摘要与画像 |
| 世界书为什么会影响工具可用性? | 世界书与工具治理 |
一个总判断
如果你只把 ETOS 当聊天壳来理解,很多入口看起来很分散。
但如果把它理解成一个原生 AI 工作台,这些设计就会顺很多:
| 模块 | 责任 |
|---|---|
| 聊天页 | 执行 |
| 设置页 | 治理 |
| Daily Pulse | 主动发现 |
| 记忆 + 世界书 | 长期上下文 |
| 工具中心 | 能力暴露 + 风险控制 |
设置页之所以这么长,是因为它承担了整套 AI 系统的治理控制台——不是"功能太多堆不下",而是"治理本身就需要这么多面板"。