多线程与标题总结
多个会话并行存在,互不干扰。标题不用你手写—— sidecar 会在对话进行到一定阶段时自动总结出一个标题, 把「帮我看下这个报错」变成「修复 TypeScript 类型收窄错误」。提示词排队
这是被低估但很关键的一个设计。agent 正在跑的时候输入框是锁死的。你只能等它跑完,
或者强行打断——而打断会丢掉这一轮已经产生的中间状态。
输入框一直可用。你把后续要求写进去,它进入一个队列,
在当前回合结束后按序送达。中途还可以调整队列内容。
docs/prompt-queue-design.md。
附件与 @ 提及
- 拖入图片、文档,或从工作区文件树里挑文件送进上下文;
- 用
@提及具体文件、目录或子代理,让上下文指向明确的位置, 而不是把整个项目塞进去; - 图像走多模态 part 传入,sidecar 侧有专门的 image part 处理与镜像逻辑。
检查点回溯
每一步工具调用与文件改动都会被记录成检查点。改动跑偏了, 可以回到任意一步重来,而不是靠回忆”我刚才让它改了什么”。 检查点和会话一起持久化,重启应用后依然可用。斜杠命令
输入框里以/ 开头会拉出命令面板,常用的包括切换会话模式、切换权限档位、
新建会话、插入检查点等。命令面板由 cmdk 驱动,
支持模糊匹配和键盘导航。
模型选择器
模型下拉在输入框附近,随时可换。切换只影响后续回合的模型, 不影响已经在跑的工具调用。会话模式与权限档位是另外两个独立的下拉—— 这一点在介绍里经常被混为一谈:扣瓦应用里有五个常被叫作”模式”的东西,实际互不相干:
会话模式(能不能改)、权限档位(问不问)、工作模式(面向谁)、
自动化权限档(无人值守专用),以及模型提供商选择。
界面上它们是分开的入口,详见 Agent 引擎。
流式渲染
会话流基于 Streamdown 做流式 Markdown 渲染, 并启用 CJK、数学公式与 Mermaid 插件。代码块、表格、图表在增量 token 到达时 不会被反复重排——流式消息渲染做过专门的性能优化。Agent 在这些机制里做什么
会话工作区看着是 UI 设计,实际上好几个机制正是为了让 agent 能稳定工作而设计的。@ 提及与附件:进入上下文的东西由你决定
@ 提及与附件:进入上下文的东西由你决定
决定模型看到什么是你的选择,不是它的猜测。
@ 指向具体文件或目录时,agent 拿到的是一个明确入口,按需读取,
而不是一次吞掉整个项目;图片走独立的多模态通道
(见 docs/image-part-design.md 与 docs/user-image-attachment-plan.md)。
这比”把仓库塞进去让模型自己找”既省 token,也更不容易找错文件。提示词排队:把回合边界变成显式的
提示词排队:把回合边界变成显式的
队列对 agent 的意义是回合边界清晰。它知道你补的话要接在哪一轮之后,
于是按顺序注入,而不是打断当前回合、丢掉已经产生的中间状态。
agent 因此可以安全地跑长任务,你同时把后续要求写完。
设计见
docs/prompt-queue-design.md。检查点:回滚的是世界状态,不只是文本
检查点:回滚的是世界状态,不只是文本
检查点记录的是工具调用与文件改动。回滚之后 agent 从那个状态重新出发,
不会带着”刚才那次运行失败”的错误假设继续推理。
对长任务来说,这比让它自我纠错更省 token,也更可预测。
流式渲染:agent 侧是事件流,不是整段文本
流式渲染:agent 侧是事件流,不是整段文本
sidecar 与前端之间是 NDJSON 事件流:模型增量、工具开始 / 结束、审批请求、
子代理活动各自是独立事件。前端只是把它们渲染成对话流里的不同形态,
所以工具调用能折叠、检查点能点开——这些是事件结构天然带来的。
斜杠命令与模型选择器:这些是用户侧控制
斜杠命令与模型选择器:这些是用户侧控制
这两个是你在控制 agent,不是 agent 在使用的能力。
模式 / 权限 / 模型三个下拉在回合之间生效,不影响正在跑的工具调用。
设置面一览
设置页按能力分成若干分区,以下模块都是真实存在的界面:通用与外观
通用、外观、代码主题、快捷键、无障碍
模型与密钥
模型供应商、凭据与环境变量、额度补充字段
能力开关
MCP 服务器、技能、子代理、电脑控制
数据
备份与恢复、归档、会话记忆历史
远程
远程网关、配对设备管理
观测
可观测性接入、用量统计与热力图
下一步
看看 agent 本身怎么工作,以及它什么时候会停下来问你。
