使用 omp
交互式会话的剖析
直接运行 omp 会打开一个交互式会话。屏幕有四个区域,从上到下:
Header
首次启动时显示 omp 标识;开始对话后会显示紧凑的会话标题、会话树中的当前分支,以及计划、循环、目标等已启用模式的提示条。
消息
这里显示用户提示、助手回合和工具调用卡。每个调用默认仅显示一行摘要;按 Ctrl+O 可展开完整输出、Diff 或 bash 脚本。
编辑器
多行输入区域支持文件引用、路径补全、粘贴图片、Shell 转义和调用外部编辑器。
Footer
默认显示两行状态信息(扩展发布状态时为三行):第一行是工作目录和当前 Git 分支,第二行是 Token、成本、上下文占用与当前模型。
编辑器功能
| 特点 | 如何 | 它的作用 |
|---|---|---|
| 文件参考 | @ | 模糊搜索项目文件(尊重 .gitignore)。在发送时,每个引用都会替换为提示中内嵌的文件内容。 |
| 路径补全 | Tab | 补全相对路径、../、~/ 等前缀。 |
| 多行 | Shift+Enter / Alt+Enter | 插入换行符。在Windows Terminal上使用 Alt+Enter (它不提供 Shift+Enter). |
| 图片附加 | Ctrl+V、拖放,或 @image.png | 从剪贴板粘贴、从操作系统文件管理器拖动或内联路径。活动模型必须接受图像输入,否则附件会在发送时丢弃并出现警告。 |
| Shell逃逸(可见) | ! | 提示前缀为 ! 作为 shell 命令执行并将输出包含在上下文中。实时流式传输。 Escape 取消。 |
| Shell 转义(隐藏) | !! | 与 ! 相同,但不会把输出放入 LLM 上下文;输出仍会显示在终端中。 |
| Python 转义 | $ / $$ | 在共享 Python 内核中运行;$$ 与 bash 的 !! 一样,会隐藏输出,不将其放入上下文。 |
| 外部编辑 | Ctrl+G | 打开当前草稿 $VISUAL / $EDITOR;退出时保存回编辑器。 |
| 迅速采取行动 | # | 打开当前草稿的提示操作菜单。 |
完整快捷键列表(历史搜索、行移动、复制快捷键、模型切换)请参阅 快捷键.
消息队列
智能体工作期间仍可继续输入,消息不会丢失。它们会进入队列,并按两种不同语义送达。
| 快捷键 | 类型 | 送达时机 |
|---|---|---|
| Enter | 转向消息 | 当前助手回合完成工具调用后送达,适合在执行中修正方向。 |
| Ctrl+Q / Ctrl+Enter | 跟进 | 智能体完成所有排队工作并生成回复后。用于“然后这个”。 |
| Escape | — | 中止当前回合。排队的转向和后续消息将恢复到编辑器堆栈而不是丢弃。 |
| Alt+Up | — | 将最新排队的消息出队返回编辑器。 |
以下三项设置决定队列行为,可在 /settings 的“交互”中修改,也可写入 ~/.omp/agent/config.yml:
steeringMode—all或one-at-a-time(默认)。followUpMode—all或one-at-a-time(默认)。interruptMode—immediate(默认)或wait.
模式
交互式模式是默认模式。其他非交互入口可通过 --print 或 --mode <mode> 选择。
| 模式 | 调用 | 输出 | 用于 |
|---|---|---|---|
| 交互式(默认) | omp | TUI | 日常工作。 |
| 打印 | omp -p "prompt" | 标准输出上的纯文本,没有 TUI。 | 脚本、CI、shell 管道。 |
| JSON | omp --mode json -p "prompt" | 标准输出上的 JSON Lines 事件。 | 格式稳定,适合管道和其他工具。 |
| RPC | omp --mode rpc | 通过 stdio 的 JSON-RPC。 | SDK 和编程客户端。参见 RPC 模式。 |
| ACP | omp --mode acp(或 omp acp) | 基于 stdio 的 Agent Client Protocol。 | 编辑器和其他支持 ACP 的宿主。参见 ACP。 |
--mode rpc-ui 是 RPC 的变体,会将 TUI 内的工具调用 UI 呈现请求交给 Client。完整参数列表请参阅 CLI 参考。
计划模式
当改动涉及多个文件或执行顺序不明确时,可先使用计划模式。/plan 会把规划回合隔离为只读工作,并交给独立的规划模型(仅允许写入计划文件)。批准后可选择执行并清理规划记录、保留记录,或压缩上下文。