进阶 omnigent.ai 2026-10-14 06:47:13 · 26 阅读

第23章 Omnigent Web UI 第23章:会话管理、导出与项目组织

Web UI

Web UI 会在每次会话启动时自动开启。服务器启动后,终端会打印出访问地址。在任意浏览器中打开该地址即可开始使用。

会话管理

在一个页面集中查看所有会话。你可以恢复之前的对话、开启新对话,或在不同对话间自由切换。若要使用不同的 Agent 继续某次对话,请使用“克隆会话”功能复制该会话并选择新的 Agent;会话绑定的 Agent 无法原地修改。

会话在浏览器刷新或服务器重启后依然持久保存。

会话标题

新会话会根据首条消息自动生成标题。你可以随时通过会话的“…”菜单或顶部标题菜单重命名它。若要控制自动标题的格式,请在服务器端配置 `session_title_instructions`。

若要完全关闭自动命名功能,请进入“设置 → 通用 → 会话”,关闭“自动命名新会话”开关。开启此功能(默认状态)时,Omnigent 会在顶级新会话的首条消息后在后台生成简洁标题;关闭后则会保留默认会话名称,需由你自行重命名。这是一项存储在服务器端的用户偏好设置,因此会跟随你的账号跨浏览器和设备生效。

导出会话

无需离开浏览器,即可将对话保存为本地文件:打开会话的顶部标题菜单,选择“导出”。记录将下载为 `.jsonl` 文件,每行包含一条 JSON 记录:

首行为会话元数据(`record_type: "session_meta"`)。 后续每行为一条已确认的对话项(`record_type: "item"`),按时间顺序排列。各项保留原始 API 结构,因此消息、代码块和链接均按存储原样呈现。

这与 `omnigent session export` CLI 命令生成的格式相同,因此从 Web UI 导出的文件可通过 `omnigent session import` 无损往返。长对话会完整导出——UI 会在保存前分页遍历整个历史。若导出构建失败,将显示“导出失败”提示,且不下载任何文件。

隐藏未配置的 Harness

默认情况下,“新建聊天”选择器会列出所有 Harness,并对未在当前主机上设置好的 Harness 添加标记(例如,仍需 CLI 安装或登录的 Harness),方便你发现并配置它们。若你希望仅查看当前可立即启动的 Harness,请在“设置 › 外观 › 隐藏未配置的 Harness”中开启此选项。开启后,选择器将直接隐藏所选主机报告为未配置的 Harness,而非仅添加标记——包括 bundle Agent 的 brain-harness 覆盖子菜单(不过当前选中的 brain 始终可见)。

这是一项每设备独立的 UI 偏好设置,默认关闭。它仅改变当前浏览器的选择器显示内容——不涉及账号或主机状态——并且遵循“失败放行”原则:当没有主机连接或无法获取就绪状态信息时,隐藏功能不会生效。

项目

将相关的会话组织到一个命名的“项目”中。每个项目在侧边栏中是一个可折叠文件夹,将冗长的会话列表围绕当前工作主题进行分组。项目不支持嵌套,且一个会话最多属于一个项目。分组是项目唯一的要求;项目内的会话可以分别使用任意主机、Agent 和设置。

你可以随时从侧边栏创建项目,包括创建一个尚无会话的空项目,然后随着工作推进将会话移入其中。

你可以从两个地方将会话归入项目:

在已归入项目的状态下启动新会话:侧边栏中的每个项目文件夹都有一个快捷方式,可打开“新建聊天”编辑器并自动将新会话指定到该项目。 移动现有会话:打开会话的“…”菜单,选择“移动会话”,然后搜索项目、创建新项目,或将会话从当前项目中移除。

将会话从项目中移除会将其退回“会话”列表;删除项目则会归档其下的所有会话。

重新排序项目

项目默认按字母顺序排列。若要自定义顺序,请在“项目”列表中拖动项目标题上下移动。拖动时会显示一条线,指示放下后的位置。

一旦拖动项目,列表将切换为手动排序模式。新项目将出现在该顺序的末尾。

若要更改项目的排序方式,请打开“项目”部分的“…”菜单,选择“按...排序项目”:

按字母顺序——按 A→Z 排序,同时保留手动顺序以便随时切回。 手动顺序——恢复你上次排列的顺序。

项目设置与默认值

当项目内的会话倾向于以相同方式运行时,项目可以存储其自身的默认会话设置,避免每次重复选择。打开项目文件夹的“…”菜单,选择“项目设置”,然后可配置以下任意选项:

新会话运行的主机。 Agent 启动时的工作目录。 会话的默认 Agent。 默认模型,仅当默认 Agent 是支持模型选择的原生编码 Harness(Claude Code 或 Codex)时显示。它会将新会话启动时使用的模型固定下来——例如“在此仓库使用 Opus”——方式与项目固定 Agent 相同。预填的模型仍可在编辑器中修改,且你在编辑器中明确选择的模型优先级高于项目默认值。 随机 worktree,为每个新会话分支独立的 git worktree。此设置可在两个方向上覆盖“设置 › Git”中的全局默认值:开启则强制该项目使用 worktree,关闭则即使全局默认开启也选择退出。若未设置,项目将继承全局默认值。

在该项目中新创建的会话将根据这些默认值预填编辑器内容。没有锁定任何内容:发送前所有字段仍可编辑,未设置的默认值将回退到你常用的设置,而不再适用的默认值(如离线主机、未安装的 Agent)会被跳过而非阻碍会话。保持设置为空,项目就仅作为纯粹的组织工具。

Worktree 分支

在“新建聊天”编辑器中,输入分支名称即可让 Agent 在独立的 git worktree 中运行。

输入分支名称后会显示“基础分支”字段,即 worktree 的切割来源。留空则从工作区当前分支切出。

为避免重复输入相同的基础分支,请在“设置 › Git”下设置“默认基础分支”。编辑器随后在每次命名新 worktree 分支时自动填充该值;留空此设置即可关闭自动填充。

若要始终在新的会话中启用新的 worktree,请在“设置 › Git”下开启“始终使用随机 worktree”。开启后,编辑器会为进入 git 工作区的任何新会话生成一个随机命名的 worktree 分支,无需每次手动命名分支。此选项默认关闭。

项目自身的“随机 worktree”设置可在两个方向上覆盖此全局默认值——项目可强制开启 worktree,或即使全局默认开启也选择退出。仅未设置该选项的项目才继承全局默认值。

选择启动模型

原生编码 Agent 会话在启动配置中带有每会话的“模型”选择器,位于 Harness 的其他启动参数旁边。Claude Code (claude-native) 和 Codex (codex-native) 均支持此功能:在“新建聊天”编辑器中打开 Agent 配置,即可选择 Harness 启动时使用的底层 LLM。

选项来自所选主机解析后的模型目录,因此列表反映了该机器上配置的提供商和凭证。首个选项为“默认”——若主机报告了默认模型,则显示为“默认 ()”——这将让 Harness 使用其自身配置或默认模型。

将选择器保留在“默认”选项上时,将完全省略覆盖参数。

你的选择按 Harness 单独记忆,因此为 Codex 选择的模型不会改变 Claude Code 的记住模型(反之亦然)。启动会话时,所选模型将作为启动覆盖参数随会话传递,Runner 在启动时使用它。在沙盒启动(未解析主机目录)的情况下,选择器为空,并使用 Harness 默认值。

项目存储的“默认模型”(参见“项目设置与默认值”)在编辑器停留在项目默认 Agent 时,优先级高于按 Harness 记住的选择,因此项目可以固定其自身的启动模型。此设置仅在存储的模型对该 Harness 仍为有效选项时适用;已退役或未知的 ID 将回退到你记住的选择。你在编辑器中明确选择的模型始终对该会话有效。

设置 Agent 无需询问即可执行的操作

原生编码 Agent 会话从编辑器的“权限”下拉菜单(输入框旁的手形图标)选择权限或审批模式,而非从选择器的“编辑”菜单选择。“编辑”菜单保留模型和投入度选择;“高级设置”现仅对具有可配置底层 Harness 的 Agent(可覆盖其 brain harness 的 bundle Agent)显示。下拉菜单中的选项取决于所选 Harness:

Claude Code (claude-native) 提供其权限模式(例如“接受编辑”或“绕过权限”)。选择将作为 `--permission-mode` 传递。 Codex (codex-native) 提供其审批预设——“默认”、“完全访问”和“仅读取”——以及权限最高的“绕过审批与沙盒”选项。“完全访问”将以 `--sandbox danger-full-access --ask-for-approval never` 启动 Codex;“绕过”选项对应 Codex 的 `--dangerously-bypass-approvals-and-sandbox` 立场,且仅在创建时有效(正在运行的 Codex 会话通过其自身的 /permissions 弹窗切换审批,该弹窗没有绕过选项行)。 Cursor (cursor-native) 提供其执行模式,例如“计划”。 Antigravity (antigravity-native) 提供“每次询问”或“跳过权限”。“跳过权限”是危险的绕过操作,将禁用所有工具提示运行会话;选中此项时,编辑器顶部会显示红色警告横幅。

你的选择将被记住并作为下一个新会话的初始值,与模型选择器的记忆机制相同。

共享会话

在多用户服务器上,侧边栏将你的会话列表分为两个标签页:

我的会话——你拥有的会话。此标签页保留完整的侧边栏结构:固定区、项目文件夹和会话列表。 共享给我——其他用户共享给你的会话的平面列表。

以浏览器为主的模式

若你更喜欢在浏览器而非终端 UI 中工作,一条命令即可启动并返回: omni host --background # 启动本地服务器 + 主机守护进程,然后返回

`--background` 参数将主机守护进程作为分离进程启动,而非在前台运行。在本地模式(无服务器 URL)下,该守护进程也拥有本地 Omnigent 服务器,因此此单条命令即“启动所有”的全部步骤:它启动(或复用)本地服务器,等待其就绪,并打印服务器 URL 以及守护进程的 PID 和日志路径。若已有健康守护进程运行,则直接复用而非重复注册机器。

打开打印出的 URL(默认 http://localhost:6767),完全在浏览器中驱动 Agent;无需进一步的终端交互。之后可用打印出的 `omni host stop` 命令停止守护进程。

登录仍在分离之前于前台进行:将 `--background` 指向已认证的远程服务器(例如 `omni host --background --server https://your-server.databricksapps.com`)时,先在终端执行浏览器登录,因为分离的守护进程没有终端可供提示。

键盘快捷键

Web UI 附带一组全局键盘快捷键。随时按下 ⌘/(Windows/Linux 上为 Ctrl+/)打开应用内快捷键覆盖层,其中列出当前平台的绑定。许多控件还内联显示其快捷键:悬停在侧边栏的折叠、搜索或设置按钮、工作区标签页,或打开工作区栏的“+”菜单,按键图标会出现在工具提示或菜单行中。

平台感知的修饰键

每个全局快捷键在每平台上绑定单个命令修饰键,且仅该修饰键可触发:

在 macOS 上,快捷键使用 ⌘,且仅 ⌘ 可触发。Ctrl 变体——以及组合的 ⌘+Ctrl 和弦——是惰性的,因此基于 Ctrl 的 readline/emacs 编辑键(Ctrl+A, Ctrl+K, ...)在编辑器和终端中保持有效。 在 Windows/Linux 上,快捷键使用 Ctrl,且仅 Ctrl 可触发。

例外:Ctrl+Shift+M(模型选择器)、Ctrl+Shift+L(聚焦聊天输入)和 Ctrl+Tab(桌面最近会话)在所有平台上均使用 Control。

快捷键覆盖层中显示什么就是什么触发的:覆盖层在 macOS 上显示 ⌘,在其他地方显示 Ctrl。

切换会话

无需离开编辑器即可在侧边栏会话间移动:

上一个会话 — ⌘[(Ctrl+[) 下一个会话 — ⌘](Ctrl+])

选择在列表两端时循环。括号和弦没有文本编辑含义,因此即使编辑器获得焦点时也会触发;在终端或代码编辑器内部——它们自身绑定 ⌘[ / ⌘](缩进/反缩进,或转发到 PTY)——快捷键让位于该表面。

在桌面应用中,Ctrl+Tab 额外打开一个切换器,覆盖最近的五个会话。

按名称查找会话

按下 ⌘⌥S(Windows/Linux 上为 Ctrl+Alt+S)直接跳转到“切换会话”选择器——对会话名称进行纯文本搜索。输入会话标题的一部分,列表将进行模糊匹配(例如,fxprs 找到“Fix the parser”);按 Enter 打开最高匹配项。此和弦在编辑器获得焦点时也会触发,且按 Escape 退出时不会触碰未发送的草稿;在终端内部则让位于该表面。

此选择器仅列出会话——不包含命令或操作。它与命令面板(⌘K)互补,后者搜索会话并执行命令。搜索会在查询收窄时加载更多会话;当匹配项超出显示范围时,“搜索更早的会话”控件会拉入更早的页面。

工作区侧边栏和标签页

⌘⌥](Windows/Linux 上为 Ctrl+Alt+])是进入右侧工作区栏的键盘路径,而非简单的切换:

从栏外任何位置按下,若栏已折叠(或被终端面板隐藏)则打开栏,并将焦点移至栏的标签条,落在当前选中的标签上。若栏已打开,则仅将焦点移至该处。重新打开会恢复你上次选中的文件。 若焦点已在标签条内,再次按下同一和弦将关闭栏——因此连续按两次会先打开后关闭。

一旦标签条获得焦点,按单个数字键可跳转到固定标签:1–4 依次选择文件、更改、GitHub 和 Agent。你的“默认工作区标签”可用时排在首位,会话中不可用的标签(如非编码 Agent 会话中的 GitHub、无磁盘工作区时的文件/更改)会被跳过,以保持数字连续。悬停标签可在工具提示中看到其编号。

数字键仅在标签条获得焦点时有效,因此在编辑器、编辑器或终端中输入数字不受影响。

其他全局快捷键

操作 快捷键 打开命令面板 ⌘K(Ctrl+K) 按名称查找会话 ⌘⌥S(Ctrl+Alt+S) 新会话 ⌘⌥N(Ctrl+Alt+N) 打开设置 ⌘⌥,(Ctrl+Alt+,) 打开模型选择器 ⌃⇧M(所有平台均为 Ctrl+Shift+M) 聚焦聊天输入 ⌃⇧L(所有平台均为 Ctrl+Shift+L) 切换左侧(对话)侧边栏 ⌘⌥[(Ctrl+Alt+[) 聚焦或关闭右侧(工作区)侧边栏 ⌘⌥](Ctrl+Alt+]) 选择工作区标签 先按 ⌘⌥] 再按 1–4(先按 Ctrl+Alt+] 再按 1–4) 打开新浏览器标签(仅限桌面应用) ⌘⌥B(Ctrl+Alt+B) 打开新 Shell ⌘⌥T(Ctrl+Alt+T) 切换语音听写 ⌘⌥V(Ctrl+Alt+V) 批准待处理请求 ⌘↵(Ctrl+Enter) 显示快捷键覆盖层 ⌘/(Ctrl+/)

⌘⌥N 从任何页面打开一个干净、聚焦的新会话编辑器——与命令面板的“新会话”操作目标相同。⌘⌥, 从应用中任何位置直接跳转到“设置”。⌘⌥B 仅在桌面应用中可用,因为嵌入式浏览器存在于其中;快捷键覆盖层也仅在那里列出它。

Ctrl+Shift+M 是编辑器中输入 /model 的键盘等效操作:它打开模型选择器而不必离开键盘。它在现有会话的编辑器和新建聊天界面中均有效,在新建聊天界面中会打开 Agent/模型选择器并直接钻入所选 Harness 的模型子菜单。此和弦仅在模型选择器可用时触发(编辑器只读、会话不可达或配置忙碌时保持惰性),并且让位于拥有自身按键的表面,如终端和代码编辑器。

使用命令修饰键加数字直接跳转到固定会话(1–9 对应前九个,0 对应第十个)。在浏览器标签页——普通 ⌘/Ctrl+数字保留给原生标签切换——绑定中额外添加 Alt(⌘⌥1...,Ctrl+Alt+1...);已安装的桌面应用使用普通的 ⌘1... 和弦。

画布

画布页面为你提供工作的空间视图:不再是线性的侧边栏列表,你的顶级会话呈现为可拖动卡片,可在无限画布上自由排列。会话按项目分组,每个项目一个画布,因此每个项目保留其自身布局。

画布默认关闭。它是一个门控发布功能:操作员通过在服务器发布功能中包含 canvas 来全局启用(OMNIGENT_FEATURES=canvas,或在 Databricks 部署时使用 --features canvas——与其他功能如 usage_page、harness_install 逗号分隔组合)。

启用后,侧边栏导航中会出现“画布”入口,页面服务地址为 /canvas。

安装为应用

Web UI 是可安装的渐进式 Web 应用(PWA)。

从受支持的浏览器,你可以将 Omnigent 安装到桌面或手机主屏幕,并在独立窗口中启动——无需单独下载或应用商店。请查找浏览器的安装控件(例如 Chrome 地址栏中的安装图标,或移动端“添加到主屏幕”)。

安装是可选的:Web UI 在普通浏览器标签页中工作完全相同。由于 Omnigent 是无离线模式的云应用,安装的应用仍需连接到服务器——它不会缓存页面用于离线使用。

外观

打开“设置 → 外观”可更改 Web UI 的视觉效果。两个控件并排:

模式——浅色或深色。 颜色主题——重新美化整个 UI 的调色板下拉菜单:

Omnigent——默认品牌外观。 Dracula GitHub Catppuccin Gruvbox Nord——极地夜晚中性色之上的北极霜蓝。

你的模式和调色板选择会在浏览器中记住并在下次访问时重新应用。选择 Omnigent 将清除任何调色板覆盖并恢复到默认外观。

工作区面板默认值

新建聊天默认以右侧工作区栏折叠状态开始,以便在 Runner 和工作区水合期间保持会话视觉稳定。随时可通过标题的“展开右侧面板”控件扩展它,或按 ⌘⌥] / Ctrl+Alt+],这会打开栏并聚焦其标签条(参见“工作区侧边栏和标签页”)。

若要使新建聊天自动打开栏,请将“设置 → 外观”下的“工作区面板默认值”设为“打开”。两个选项为“打开”和“折叠”。这是一项每设备浏览器偏好设置,仅为无保存打开状态的会话播种——一旦你在特定会话中展开或折叠栏,该会话将保留其自身记住的状态,无论默认值如何。

默认工作区标签

选择右侧工作区栏首次打开时显示的标签。在“设置 → 外观 → 默认工作区标签”下,选择一个:

文件——默认。 更改 GitHub Agent

你选择的标签将在栏中显示在首位;剩余标签保持相对顺序。更改此默认值也会在重新打开或刷新现有聊天时更新,而不会关闭其打开的文件标签或更改栏布局。你此后在会话中手动选择的标签将被记住并优先于默认值,且文件链接无论设置如何仍会打开链接文件。

这是一项存储在浏览器中的每设备 UI 偏好设置。若选择的默认标签在特定会话中不可用(例如 GitHub 仅出现在编码 Agent 会话中,文件/更改需要磁盘工作区),栏将回退到第一个可用标签。

文件编辑器

完整的 Markdown 编辑器,带有语法高亮,用于浏览和编辑你的 Omnigent 触及的所有文件。

你的 Omnigent 起草文档页面。你在编辑器中打开它,正确格式化阅读,并直接编辑。你的 Omnigent 生成配置文件。你通过完整语法高亮审查它。

用例:更新文档站点、审查 Omnigent 生成的计划、编辑配置。

代码查看器和差异

在接受前审查你的 Omnigent 所做的更改。语法高亮的差异精确显示添加了什么、修改了什么、删除了什么。

将选区附加到 Agent

在编码 Agent 会话中,在代码查看器或差异中选中若干行,“附加到 Agent”按钮将出现在“添加评论”旁边。点击它会将选定的行范围作为芯片(显示为 @path:start-end)放入编辑器,这样你就可以询问 Agent 确切的范围,而无需将内容复制到聊天中。

芯片在发送时作为路径引用传递给 Agent——Agent 直接读取磁盘文件(无需上传)。此按钮仅对原生编码 Agent 会话显示,因为这些 Harness 在工作区运行并自行解析引用文件。

GitHub

编码 Agent 会话在右侧工作区栏中带有 GitHub 标签。它跟踪与会话相关的拉取请求,并显示所选请求的摘要(PR 描述和评论)、CI 检查以及带文件树导航器的堆叠差异。不会推送或变异任何内容——记录关联从不触及远程 PR。

跟踪的拉取请求

Omnigent 通过观察 Agent 完成的 GitHub 工作来自动发现会话的拉取请求——gh CLI 命令和创建、编辑、审查、合并或评论 PR 的 GitHub MCP 工具调用。每个关联都标记其发现方式:

created——会话打开了该 PR。 worked_on——会话编辑、审查、合并或以其他方式操作了该 PR。 attached——你手动链接了它(见下文)。 inferred——当会话尚无记录 PR 时,从当前分支匹配;在选择器中显示为(来自分支)。

关联存储在主机上,独立于当前签出,因此即使分支或 worktree 变化,它们仍与会话保持。

当会话跟踪多个 PR 时,标签顶部的选择器可在它们之间切换;每个条目读取为 owner/repo #number(GitHub Enterprise 前缀主机名)。下方的详情、更改的文件和差异始终是所选 PR 的,从 GitHub 获取——包括 fork PR 和重命名的文件——因此它们与 PR 的“更改的文件”完全匹配。

若文件差异从本地签出计算,Omnigent 将 HEAD 与基础分支的合并基础进行差异对比。在浅克隆或单分支克隆(例如在管理员 sandbox.git_clone 策略下创建的)中,缺失的合并基础或未获取的基础分支会产生错误,命名应运行的 git fetch 命令,而非误导性的分支尖端比较。

无法读取的文件内容也报告为错误,绝不会被显示为添加或删除的文件。

链接或取消链接 PR

使用“+(链接 PR)”按钮通过 URL 附加拉取请求——粘贴 https://github.com/owner/repo/pull/123 链接(GitHub Enterprise 主机也适用)。链接的 PR 成为 attached 关联并被选中。垃圾桶图标(取消链接 PR)按钮移除所选关联;取消链接的 PR 保持不在列表中,直到你再次链接它,即使 Agent 继续触及它。当会话尚未跟踪任何 PR 时,标签的空状态提供相同的“链接 PR”操作。

编辑器状态行镜像此信息:单个跟踪 PR 显示为 #123,多个显示为 N 个 PR,点击它打开 GitHub 标签。

提及工作区文件

在编码 Agent 会话中,在编辑器中输入 @ 以浏览和附加工作区文件和文件夹。附加的路径显示为输入框上方的芯片,可单独移除;Agent 在发送时直接从磁盘读取每个文件。

外观设置

打开“设置 → 外观”可调整代码渲染方式。独立于界面(UI)字体,两个控件共同设置代码编辑器(Monaco)和终端(xterm)的大小和样式:

代码字体大小——步进器(− / 值 / +,或直接输入值)。范围 10 到 24 px,默认 13 px。 代码字体族——自由文本字段:输入设备上安装的任何等宽字体名称。留空(或使用重置)使用编辑器默认值,该默认值回退到应用的共享单线字体堆栈。未安装的自定义名称将降级到该单线字体堆栈,而非衬线回退。

两个设置实时应用于任何打开的编辑器或终端——无需重新加载或重连——并在刷新和重启期间在浏览器中持久化。

内联评论和寻址

而非在聊天中输入“将第三段改得更简洁”,你点击该段落下方留下评论:“太冗长,收紧一下”。Omnigent 精确看到你所指的内容并修改它。

寻址形成闭环:解决评论后 Omnigent 根据反馈行动。工作流是:Omnigent 提议,你注释,Omnigent 修订。

此功能最重要的场景:

执行前审查计划。在 Omnigent 开始构建前注释你希望更改的步骤。 编辑起草的文档。留下行级反馈而非在聊天中重写。 迭代配置。标记需要调整的字段。

多模态输入

直接将图像、屏幕截图、图表和模型粘贴到对话中。Omnigent 将其与你的文本并排查看。对于前端工作,用文字描述布局问题比截图更慢,因此截图很有用。

附加存档、Office 文档和数据库

除图像、PDF 和文本/代码文件外,编辑器接受 ZIP 存档(.zip)、Office 文档(.docx, .xlsx, .pptx)和 SQLite 数据库(.db, .sqlite, .sqlite3)。将它们拖到编辑器或用附加按钮选择——文件选择器过滤器包含这些扩展名。它们显示为普通文件卡片,显示图标、文件名、类型和大小;图像保留其缩略图和预览。

这些格式按文件扩展名分类,而非按浏览器报告的 MIME 类型,因此浏览器标记为 ZIP 的 .docx 仍正确附加。支持范围外的任何内容(音频、视频、无法识别的二进制文件)将以内联错误拒绝。

Harness 要求。这些文件需要一个能打开本地文件的 Harness:Claude Code (claude-native) 或 Codex (codex-native),运行在最新的主机/Runner 上。其他 Harness 上传被拒绝;服务器建议改为附加图像、PDF 或文本/代码文件,或切换到 Claude Code 或 Codex。

大小限制。Web 编辑器将此类每个文件限制在 50 MiB。服务器操作员可降低单文件限制、限制每会话此类文件的数量和总大小,或拒绝特定扩展名——参见附件限制。图像、PDF 和文本/代码文件保留其现有的独立限制。

消息队列和引导

在 Agent 仍在工作时输入后续消息,它将被保存在客户端队列中而非中断当前回合。排队的消息显示在编辑器上方的固定条中,并在会话空闲时自动清空——每次一条,按顺序。

每个排队行都有内联操作:

引导——立即发送消息,在回合中途,而非等待队列清空。 编辑——将消息拉回编辑器修改。 删除——将消息从队列中丢弃。

侧边聊天

侧边聊天让你在与对话分离的侧边询问 Agent——带有 Agent 的完整上下文——而不向主记录添加任何内容。侧边聊天在所有 Harness 上工作。每个侧边聊天作为独立标签(侧边聊天 1、侧边聊天 2...)在右侧工作区栏中打开,与仍活动的主聊天并排:你停留在主对话中,侧边聊天在旁边流式传输。侧边聊天开始时栏自动打开。

从这些地方开始侧边聊天:

在编辑器中输入 /side <问题>。/side 行在每个 Harness 的编辑器斜杠菜单中出现;菜单内联列出每个命令和技能的描述。 打开编辑器的“+”托盘,选择“开始新侧边聊天”(在会话下)。 打开工作区栏的“+(打开新)”菜单,选择“侧边聊天”。 这先打开一个空的侧边聊天标签;侧边聊天本身在你在那里发送第一条消息时创建。 在回复中选中文本,选择“在侧边聊天中询问”——引用的选区和你的问题发送到侧边聊天而非主对话。

在标签内,你获得一个作用域编辑器(包括附件和听写)。后续消息发送到侧边聊天而非主对话,Agent 在那里引发的任何审批请求也在那里回答。侧边聊天视觉上从空开始——从父级继承的历史被隐藏——但 Agent 拥有父对话的完整上下文。

侧边聊天如何创建

Codex (codex-native) 使用其原生临时 /side 分叉进行进程内分叉,因此分叉在 Codex 的提示缓存中保持热状态。由于该分叉驻留在父级 Runner 进程中,应用程序重启后恢复的 Codex 侧边聊天标签指向不再存在的线程:它以只读模式打开,显示其记录并带有通知“此侧边聊天已结束且无法继续”。

所有其他 Harness 在服务器端分叉对话(使用 "side_chat": true 的 POST /v1/sessions/{id}/fork),并在与源会话相同的主机上为分叉启动 Runner——本地或托管,无新沙盒。当源会话位于 git 分支上时,分叉在源分支上切割的 side-chat/ 分支的独立 worktree 中运行,因此永远不会触及父级的工作树;否则在源工作区中运行。若会话没有可启动的主机或工作区,或分叉失败,提示显示“无法为此会话启动侧边聊天”,你输入的问题保留在编辑器中以便重试。

侧边聊天在否则是拥有自身 Runner 和记录的普通会话,但带有 omnigent.side_chat 标记并从左侧侧边栏会话列表中隐藏——它仅作为栏标签浮现。

侧边聊天标签

侧边聊天标签存储在浏览器中,如同栏的文件和浏览器标签:它们在此设备上在重新加载和重启后保留,但不跟随你到另一台设备。切换到另一对话显示该对话自身的侧边聊天标签。用其 ✕(或中键点击)关闭标签,停止侧边聊天的 Runner 并丢弃标签。

侧边聊天与 Claude Code 的 /btw 覆盖层(下文)不同,后者内联回答一次性问题而不创建会话。

带 /side 的侧边聊天

在 Codex (codex-native) 会话中,在编辑器中输入 /side <问题> 以启动侧边聊天——当前 Codex 线程的临时分叉。编辑器斜杠菜单仅在 Codex 会话中提供 /side;选择它预填 /side 以便你在其后输入问题。

与 /btw 不同,/side 问题不在一次性覆盖层中回答。它作为独立子 Agent 聊天打开,标记为“侧边聊天”,因此你可以导航进入并多回合继续对话。它从不出现在左侧对话侧边栏中,且主 Codex 对话在此期间保持无变化运行。

分叉仅将父线程的历史继承为参考上下文——侧边聊天被告知将该历史视为背景而非活动指令——因此你可以询问目前的工作而不会引导主线程。/side 消息本身停留在父对话之外:它直接路由到分叉,不在主记录中留下气泡。

侧边聊天是临时的:什么都不写入磁盘,因此 Runner 重启后侧边聊天不可恢复。若 /side 请求无法打开,会话发布可见通知,确保问题不会静默丢失。

你也可以从选中文本开始侧边聊天。选中消息的一部分,选择“在侧边聊天中询问”:选区作为引用卡片添加,发送时作为 /side 命令转发,携带引用文本和你的问题。在不支持侧边聊天的 Harness 上,此操作降级为主聊天中的普通引用回复。

带 /side 的侧边聊天

侧边聊天在所有 Harness 上工作。侧边聊天将对话分叉到标题为“侧边聊天”的新会话中,并作为右侧工作区栏中的标签打开,因此你可以带着父对话的完整上下文询问旁支问题,而不向父级记录添加任何内容。父级停留在自身页面且其历史未受触及;侧边聊天的消息仅保存在分叉会话上。

有三种方式开始:

在编辑器中输入 /side <你的问题> 并发送。斜杠菜单在每个会话中提供 /side。 从编辑器“+”托盘中选择“开始新侧边聊天”。 在栏中,点击“打开新(+)”并选择“侧边聊天”,然后在侧边聊天窗格中输入你的问题。

侧边聊天在父级当前工作目录中运行——它共享父级工作区而非切割自己的 git worktree,父级上保存的分支(例如在另一机器上创建的 worktree)既不需要也不复用。它在哪里运行取决于父级的放置方式:

托管会话(绑定主机和工作区)在父级主机上为分叉启动独立 Runner,在父级工作区中。 具有在线 Runner 但无主机的 CLI 会话复用父级现有 Runner。 既无主机也无 Runner 的进程内会话使用普通服务器分发。

若父级在休眠的可恢复托管主机上,启动侧边聊天先唤醒主机,然后在刷新后的放置上启动。若父级主机或其 Runner 均不可达,侧边聊天不创建,编辑器显示“此会话已断开连接。在启动侧边聊天前重新连接。”

关闭侧边聊天标签仅停止分叉会话;父级保持工作,你可以继续在其中聊天。Codex 原生会话以原生方式(进程内分叉)处理 /side,而非使用此通用流程。

计划任务

按预定调度运行 Agent,而非手动启动每个会话。计划任务是保存的提示加重复规则:它自动触发,运行所选 Agent,并持续触发直到你删除它。

手动创建一个,打开“新计划任务”对话框并填写:

名称——任务标签(例如,夜间分诊)。 提示——Agent 每次运行收到的指令。 运行于——要运行的 Agent 或 Harness。计划任务使用其 Agent 的默认模型、投入度和权限设置;此对话框中没有每任务模型或投入度覆盖。 频率——四个预设之一:每小时、每天、工作日或每周。每小时每小时触发一次且仅询问小时内的分钟;每天和工作日询问时间;每周添加工作日多选(“在...天”)。时间以 15 分钟步长选择。调度在浏览器本地时区评估。 主机(可选)——将任务固定到特定连接主机,或将其设置为“触发时解析”以便任务触发时在已连接主机上运行。当服务器配置了托管沙盒时,选择器也提供“新沙盒”(标记提供商名称,如 Modal 沙盒):每次运行则供应新沙盒而非使用连接主机,且沙盒关闭遵循服务器沙盒配置。现有沙盒主机无法固定。 工作区(可选)——仅当固定连接主机时显示。选择目录以固定它;留空则默认到主机主目录。无主机不能设置工作区,且不应用于沙盒运行。

“创建任务”按钮保持禁用,直到名称、提示、有效调度和 Agent 全部设置。

协作

与会话共享队友进行实时协同驾驶。多人看到相同对话,留下评论,同时与 Omnigent 交互。

参见结对编程以了解共享、权限和多用户工作流的详情。

评论 (0)