> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openkova.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 对话工作区

> 多线程会话、附件与 @ 提及、提示词排队、检查点回溯、模型选择器与语音输入。

会话工作区是扣瓦的主界面：左侧会话列表，中间是流式会话流，
右侧按需展开文件树、终端与工具详情。

## 多线程与标题总结

多个会话并行存在，互不干扰。标题不用你手写——
sidecar 会在对话进行到一定阶段时自动总结出一个标题，
把「帮我看下这个报错」变成「修复 TypeScript 类型收窄错误」。

## 提示词排队

这是被低估但很关键的一个设计。

<Columns cols={2}>
  <Column title="普通做法">
    agent 正在跑的时候输入框是锁死的。你只能等它跑完，
    或者强行打断——而打断会丢掉这一轮已经产生的中间状态。
  </Column>

  <Column title="扣瓦的做法">
    输入框一直可用。你把后续要求写进去，它进入一个队列，
    在当前回合结束后按序送达。中途还可以调整队列内容。
  </Column>
</Columns>

排队设计详见仓库内的 `docs/prompt-queue-design.md`。

## 附件与 @ 提及

* 拖入图片、文档，或从工作区文件树里挑文件送进上下文；
* 用 `@` 提及具体文件、目录或子代理，让上下文指向明确的位置，
  而不是把整个项目塞进去；
* 图像走多模态 part 传入，sidecar 侧有专门的 image part 处理与镜像逻辑。

## 检查点回溯

每一步工具调用与文件改动都会被记录成检查点。改动跑偏了，
可以回到任意一步重来，而不是靠回忆"我刚才让它改了什么"。

检查点和会话一起持久化，重启应用后依然可用。

## 斜杠命令

输入框里以 `/` 开头会拉出命令面板，常用的包括切换会话模式、切换权限档位、
新建会话、插入检查点等。命令面板由 [cmdk](https://cmdk.paco.me) 驱动，
支持模糊匹配和键盘导航。

## 模型选择器

模型下拉在输入框附近，随时可换。切换只影响后续回合的模型，
不影响已经在跑的工具调用。会话模式与权限档位是**另外两个独立的下拉**——
这一点在介绍里经常被混为一谈：

<Note>
  扣瓦应用里有五个常被叫作"模式"的东西，实际互不相干：
  会话模式（能不能改）、权限档位（问不问）、工作模式（面向谁）、
  自动化权限档（无人值守专用），以及模型提供商选择。
  界面上它们是分开的入口，详见 [Agent 引擎](/features/agent-engine)。
</Note>

## 流式渲染

会话流基于 [Streamdown](https://streamdown.ai) 做流式 Markdown 渲染，
并启用 CJK、数学公式与 Mermaid 插件。代码块、表格、图表在增量 token 到达时
不会被反复重排——流式消息渲染做过专门的性能优化。

## Agent 在这些机制里做什么

会话工作区看着是 UI 设计，实际上好几个机制正是为了让 agent 能稳定工作而设计的。

<AccordionGroup>
  <Accordion title="@ 提及与附件：进入上下文的东西由你决定">
    决定模型看到什么是**你的选择**，不是它的猜测。
    `@` 指向具体文件或目录时，agent 拿到的是一个明确入口，按需读取，
    而不是一次吞掉整个项目；图片走独立的多模态通道
    （见 `docs/image-part-design.md` 与 `docs/user-image-attachment-plan.md`）。
    这比"把仓库塞进去让模型自己找"既省 token，也更不容易找错文件。
  </Accordion>

  <Accordion title="提示词排队：把回合边界变成显式的">
    队列对 agent 的意义是**回合边界清晰**。它知道你补的话要接在哪一轮之后，
    于是按顺序注入，而不是打断当前回合、丢掉已经产生的中间状态。
    agent 因此可以安全地跑长任务，你同时把后续要求写完。
    设计见 `docs/prompt-queue-design.md`。
  </Accordion>

  <Accordion title="检查点：回滚的是世界状态，不只是文本">
    检查点记录的是工具调用与文件改动。回滚之后 agent 从那个状态重新出发，
    不会带着"刚才那次运行失败"的错误假设继续推理。
    对长任务来说，这比让它自我纠错更省 token，也更可预测。
  </Accordion>

  <Accordion title="流式渲染：agent 侧是事件流，不是整段文本">
    sidecar 与前端之间是 NDJSON 事件流：模型增量、工具开始 / 结束、审批请求、
    子代理活动各自是独立事件。前端只是把它们渲染成对话流里的不同形态，
    所以工具调用能折叠、检查点能点开——这些是事件结构天然带来的。
  </Accordion>

  <Accordion title="斜杠命令与模型选择器：这些是用户侧控制">
    这两个是**你**在控制 agent，不是 agent 在使用的能力。
    模式 / 权限 / 模型三个下拉在回合之间生效，不影响正在跑的工具调用。
  </Accordion>
</AccordionGroup>

## 设置面一览

设置页按能力分成若干分区，以下模块都是真实存在的界面：

<CardGroup cols={3}>
  <Card title="通用与外观">通用、外观、代码主题、快捷键、无障碍</Card>
  <Card title="模型与密钥">模型供应商、凭据与环境变量、额度补充字段</Card>
  <Card title="能力开关">MCP 服务器、技能、子代理、电脑控制</Card>
  <Card title="数据">备份与恢复、归档、会话记忆历史</Card>
  <Card title="远程">远程网关、配对设备管理</Card>
  <Card title="观测">可观测性接入、用量统计与热力图</Card>
</CardGroup>

<Card title="下一步" icon="arrow-right" href="/features/agent-engine">
  看看 agent 本身怎么工作，以及它什么时候会停下来问你。
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.