会话与对话体验
在会话中,可以围绕知识库或上传的附件提问,查看回答来源,并预览智能体生成的文件。回答生成期间可以继续补充要求;对已有对话可以从任意一条消息分叉或回滚。提问目录和历史搜索用于回顾对话,复制为 Markdown 用于保存完整问答记录。
查看回答与来源
提问后,进度条显示附件解析、检索、工具调用和回答生成等阶段。智能推理模式还会展示可折叠的思考过程、命令输出和文件写入进度。
回答正文中的引用角标用于定位原文分块,右侧引用面板列出本轮使用的检索来源,包括 Wiki 工具返回的内容。关闭智能体的引用角标设置后,仍可通过引用面板查看来源。回答结束时,系统可提供追问建议,详见 Agent 引擎。
展示一轮带引用的回答、展开的引用面板(含来源标题与片段),以及顶部会话操作栏。
website-docs/public/screenshots/chat-references-drawer.png快速问答完成检索后,等待模型返回内容的阶段显示“正在连接模型并生成回答…”;没有执行检索的问答显示“正在准备回答…”。等待超过 60 秒时,提示变为“模型响应较慢,仍在等待…”。这一提示反映当前等待状态,回答和工具执行结果以实际返回内容为准。
回答达到模型单次输出上限而被截断时,回答工具栏会出现提示图标,说明以上为截断前已生成的内容。需要完整回答时,可缩小问题范围,或在智能体配置中调大最大输出长度。
调整思考强度
所选模型支持分档思考时,输入框底部模型选择旁会显示「思考强度」,可在关闭、自动、极低、低、中、高、极高、最大中选择该模型支持的档位。默认沿用智能体配置;改选后只对当前会话生效,不修改智能体,重新打开会话时会恢复上次的选择。切换到不支持该档位的模型时,选择自动失效。
在回答过程中补充要求
智能推理模式生成回答时,可以直接在输入框继续输入:
| 操作 | 效果 |
|---|---|
| Enter 或点击发送 | 排队,当前回答结束后作为下一轮问题发送 |
| ⌘ Enter(Mac)或 Alt + Enter | 立即补充到当前任务,智能体在下一步读取并调整 |
排队中的消息显示在输入框上方,可点击「补充当前任务」改为立即补充,或点击「移除」撤回;已被智能体接收的消息无法撤回。输入为空时,发送按钮用于停止生成;停止后,排队中的消息会一并丢弃。追加消息不能带附件或图片,可以使用 @ 提及。每轮最多排队 10 条。快速问答不支持追加,回答结束前需要等待。
智能推理回答进行中,输入框上方显示一至两条排队消息,每条带「补充当前任务」和「移除」按钮;输入框内有正在输入的文字,发送按钮提示“完成后发送 · Enter”。
website-docs/public/screenshots/chat-steer-queue.png分叉与回滚
用户消息下方和回答工具栏提供两个操作,回答生成期间均不可用:
- 分叉:以当前对话为基础新建会话,原会话保持不变。从用户消息分叉时,复制该问题之前的对话,并把问题填回输入框,可修改后重新发送;从回答分叉时,复制到这条回答为止的对话。新会话标题为“原标题(分支)”,侧栏以分叉图标标记。
- 回滚:在当前会话中删除所选消息之后的对话,操作不可撤销。从用户消息回滚时,该问题本身也会删除并填回输入框。被删除轮次生成的文件、追问建议和历史搜索索引同时清理。
智能体绑定沙箱时,系统在每轮回答结束后记录工作区检查点。分叉会带上分叉点对应的工作区文件;无法带上时(如沙箱已回收或更换),分叉仍会成功,新会话使用全新的沙箱。回滚会把工作区一并退回到保留的最后一轮;当前沙箱找不到对应检查点时,为避免文件与对话不一致,回滚会被拒绝。没有沙箱,或使用桌面版本机目录作为工作区时,只回滚对话,不改动文件。
使用临时附件提问
在对话中上传文件,即可围绕文件内容提问。附件仅供当前会话使用,不进入知识库列表或向量索引。需要长期检索、共享的资料应上传到知识库。
上传后,系统异步解析文件,并显示上传、处理中和就绪状态。发问时尚未完成解析的附件会继续等待,默认等待上限为 60 秒。扫描件和图片型文档可通过视觉模型识别文字。
临时附件从上传时起计算保留期限,默认 24 小时,到期后由后台任务清理。管理员可调整保留期限、解析等待时间及 OCR 参数,具体配置见文末的“配置与接口参考”。
智能体可配置允许上传的文件类型、图片理解开关,以及按文件类型选择的解析引擎。相关说明见 Agent 引擎。
预览和下载生成文件
绑定沙箱的智能体可以处理附件并生成文件。回答完成后,点击回答工具栏的「查看本次生成的文件」,或对话页右上角的沙箱按钮,在「沙箱可视化」面板的「产物」页签中查看;该页签可切换本轮或全部文件,并按文件名搜索。支持的文件类型可以直接预览,其余文件可下载后打开。
侧栏的「产物」页汇总当前用户各网页会话中生成的文件,可按文档、表格、演示文稿、图片、网页、数据分类筛选或按文件名搜索,并可预览、下载、跳转到所在会话。同一会话中同名路径的文件多次生成时只显示最新一版,并标出版本数。部署未启用沙箱能力时不显示该页。
侧栏选中「产物」,页面顶部为类型页签(全部/文档/表格/演示文稿/图片/网页/数据)和文件名搜索框,列表按今天/昨天/最近 7 天分组,至少一行显示“N 个版本”,行内可见预览、下载、删除操作。
website-docs/public/screenshots/artifacts-library.png需要让智能体生成可下载文件时,产物应保存到 /workspace/output,系统会在回答结束时收集并持久化。上传的附件暂存于 /workspace/input,脚本和中间文件可放在 /workspace 的其他目录。输入附件和输出文件分别管理,删除输入附件不会自动删除已收集的输出文件。
不再需要的文件可以在「产物」页签或「产物」页删除。删除会回收存储中的字节,无法恢复,因此会先确认;只有会话归属人能删除,通过共享智能体获得的只读访问只能下载。「产物」页签按每次生成分别列出,删除的是点击的那一版;「产物」页一行代表一个文件,删除会连同该文件在这个会话中的所有历史版本。同一份文件如果已被存入知识库、被后续回答重新引用或随会话分叉复制,那些位置不受影响。删除后沙箱里的同名文件也不会被重新收录。
文件读取、脚本执行和目录约定见技能与沙箱;列表、下载与删除接口见会话与聊天 API。
把回答存入知识库
回答工具栏的「添加到知识库」会在右侧抽屉打开 Markdown 编辑器,预填问题与回答,引用的文档统一列在末尾的“参考来源”下。选择目标知识库(仅文档型知识库)后,可暂存草稿或发布入库;发布后开始索引。编辑器支持编辑、分屏、预览三种视图和全屏,工具栏提供常用格式与插入表格、代码块、图片等操作,Cmd/Ctrl + S 暂存,Cmd/Ctrl + Enter 发布。
对话页右侧抽屉处于分屏视图:顶部为标题输入框与目标知识库选择器,中部左侧 Markdown 源码、右侧预览,底部显示“当前状态:草稿”、字数统计和「暂存草稿」「发布入库」按钮。
website-docs/public/screenshots/chat-save-answer-editor.png回顾和导出对话
长对话右侧的提问目录可直接定位到某次提问,悬停时显示轮次、问题和回答摘要。消息之间在日期变化或间隔 5 分钟以上时插入时间分隔;用户消息下方显示发送时间,今天的消息只显示时刻,更早的消息带日期。侧栏以旋转图标标记本浏览器中仍在生成的会话,并为 API 会话标出调用方。
会话操作菜单的「复制为 Markdown」把完整对话复制到剪贴板,内容包括会话标题、ID、导出时间和逐轮问答(含附件与引用列表)。复制在浏览器中完成,可用于归档或分享对话记录。
侧栏「搜索」可跨会话查找历史消息。空间管理员在「系统设置 → 空间 → 消息管理」启用消息索引并选择 Embedding 模型后,搜索会同时使用语义匹配;未启用时按关键词匹配。
查看渠道会话
IM、网页嵌入和 API 调用产生的会话,分别按 IM 身份、访客或 API Key 隔离。普通会话列表默认只展示当前调用者自己的会话。
空间 Admin 或 Owner 可以通过 IM、嵌入和 API 分组查看对应渠道会话;分组在存在会话时显示。管理员通过这一入口进行只读查看,用于检查渠道中的问答记录。API Key 会话的写操作继续受原会话归属限制。
使用跨会话记忆
空间管理员在「系统设置 → 空间 → 长期记忆」启用后,成员可以在「系统设置 → 账户 → 我的记忆」维护表达偏好、确认待确认条目,并在后续会话中使用。记忆按空间和调用者身份隔离。
关闭个人记忆会暂停使用,删除或清空则用于移除数据。自动提取、主题管理和立即整理的说明见长期记忆。
配置与接口参考
以下参数供管理员和集成开发者查询。日常对话操作使用前述界面入口即可。
附件配置
| 配置项 | 默认值 | 作用 |
|---|---|---|
WEKNORA_CHAT_ATTACHMENT_WAIT_TIMEOUT_SEC | 60 秒 | 发问时等待附件完成解析的上限 |
WEKNORA_CHAT_ATTACHMENT_TTL_HOURS | 24 小时 | 从上传时起计算的附件保留期限 |
WEKNORA_CHAT_ATTACHMENT_OCR_CONCURRENCY | 8 | OCR 并发数 |
WEKNORA_CHAT_ATTACHMENT_OCR_MAX_PAGES | 8 | OCR 页数上限 |
智能体配置中的 supported_file_types 限定允许上传的类型,attachment_image_understanding 控制图片理解,chat_parser_engine_rules 指定附件解析引擎。
附件 API 使用 /api/v1/sessions 前缀:
| 操作 | 方法与路径 |
|---|---|
| 上传 | POST /:session_id/attachments |
| 列表 | GET /:id/attachments |
| 详情 | GET /:id/attachments/:attachment_id |
| 预览 | GET /:id/attachments/:attachment_id/preview |
| 删除 | DELETE /:id/attachments/:attachment_id |
完整参数和权限见会话与聊天 API。
会话操作接口
| 操作 | 方法与路径 |
|---|---|
| 分叉 | POST /api/v1/sessions/:session_id/fork |
| 回滚 | POST /api/v1/sessions/:session_id/rewind |
| 运行中追加消息 | POST /api/v1/sessions/:session_id/steer,另有列出、撤回、改为立即补充 |
| 本轮思考强度 | 聊天请求的 reasoning_effort 字段 |
请求体、返回码与限制见会话与聊天 API。
引用和历史查询
智能体的 citation_enabled 控制回答正文中的引用角标,省略时默认开启;引用面板不受该字段影响。
历史搜索使用 POST /api/v1/messages/search,索引统计使用 GET /api/v1/messages/chat-history-stats,两者要求 Viewer+,API Key 需 message_history 能力或 full-access。读取会话历史使用 GET /api/v1/messages/:session_id/load,要求 Viewer+;API Key 需 chat 能力,并受会话归属校验。
会话列表的 source 为空或 web 时查询自己的会话;显式查询 api、im 或 embed 的空间视图要求 Admin+,权限不足返回 403。
实现参考
frontend/src/views/chat/components/:回答、进度与工具过程展示。frontend/src/utils/sessionMarkdown.ts:复制为 Markdown。internal/application/service/session.go:会话列表与渠道访问规则。internal/application/service/session_fork.go、session_rewind.go、workspace_checkpointer.go:分叉、回滚与工作区检查点。internal/handler/session/steer.go:运行中追加消息。internal/application/service/temporary_document.go:临时附件解析、到期与清理。- 临时附件存储在
temporary_documents表,表结构见数据库与迁移。




