终端交互命令¶
echo-agent cli 默认使用保留原生 scrollback 的 inline 界面,
echo-agent cli --tui 使用全屏 Textual 界面。两种界面共用下列命令及
WebSocket 协议行为;命令名不区分大小写。
本地命令¶
本地命令在客户端执行,不需要服务端连接。
| 命令 | 说明 | 快捷键 |
|---|---|---|
/help |
显示所有可用命令 | — |
/clear |
清空当前显示,不删除服务端会话或审计缓冲 | — |
/copy [all] |
复制最近回复;all 复制整段对话 |
— |
/details |
查看或调整思考、工具和运行状态的显示程度 | — |
/save |
将当前会话导出为 Markdown / text / JSON | — |
/theme |
查看或切换 UI 主题(dark/light) | — |
/reconnect |
重新连接 WebSocket(断线后使用) | — |
/status |
查询服务端持久化的回合执行状态 | — |
/quit |
退出客户端 | Ctrl+D |
/help¶
显示所有本地命令和服务端命令。inline 界面在输入 / 时也会显示候选补全。
/clear¶
清空当前界面的消息显示。不会影响服务端会话历史。
/copy¶
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
all |
literal | — | 复制当前 CLI 运行期的整段对话 |
不带参数时复制最近一条 Agent 回复。优先使用系统剪贴板工具, 远程终端可回退到 OSC 52;不可用时会明确报错。
/details¶
无参数时显示三个分区的当前状态。默认为“思考=折叠、工具=折叠、 状态=隐藏”:工具开始时立即显示操作,结束时在下一行显示结果摘要;并行结果会 带上操作对象,避免对应关系含糊。需要更安静的输出时可将工具改为“精简”,此时 成功的只读调用会隐藏,但任何失败始终可见。设置只影响之后到达的过程信息, 不影响最终回答或 JSON 审计导出。
inline 界面的输入框下方保留一行自适应会话状态:宽终端显示连接与会话、模型、
上下文占用、整轮耗时、累计费用和记忆数;中等宽度保留模型与上下文百分比,
以及记忆数,极窄终端只保留连接和计时,不会折行挤压输入区。默认模型与上下文上限在
首次进入时
从配置预填,实际路由完成后
再以服务端统计更新。spinner 负责说明“现在正在做什么”,并与输入框、底栏由同一终端
渲染器更新;底栏只显示计时和控制提示,
避免相邻两行重复;回合结束会区分完成、出错、中断和断连。审批或澄清等待计入整轮
耗时,/clear 会一并清除上一轮摘要,/theme 会同步切换正文与底栏配色。
/save¶
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
path |
string | <workspace>/transcripts/echo-<timestamp>.<ext> |
导出文件路径 |
md(默认):当前屏幕中的用户消息与 Agent 回复。txt:同样的纯文本对话。json:本次 CLI 运行期的完整审计事件,包括被/details隐藏的工具/认知帧与/status终态;/clear不会删除这份审计缓冲。凭据字段、Bearer token、URL 密钥参数和命令行密钥 flag 会脱敏。
/theme¶
可选主题值:
| 值 | 说明 |
|---|---|
dark |
深色主题 |
light |
浅色主题 |
| 不带参数时显示当前主题。不支持的值会显示用法而不会静默忽略。 |
/reconnect¶
在断线后手动重建 WebSocket,沿用原会话键,并从持久化回合账本补显断线期间 完成的最终回复。断线期间普通消息不会被静默丢弃,客户端会要求先重连。
/status¶
不带 ID 时查询当前会话最新的主回合;带 ID 时精确查询某一回合。结果来自网关持久化账本,不依赖客户端是否在线,可区分“正在执行”、“等待审批/补充信息”、“已完成”、“输出截断而未完成”、“失败”和“已中断”。重连后会自动查询一次。
/quit¶
退出客户端。Ctrl+D 直接退出;Ctrl+C 优先拒绝待审批操作或停止正在运行的
回合,空闲时需在 2 秒内再按一次才退出。
服务端命令¶
服务端命令通过 WebSocket 发送到 Echo Agent 后端执行。需要活跃的服务端连接。
| 命令 | 说明 | 权限要求 |
|---|---|---|
/approve |
批准待审工具调用 | 会话所有者 |
/deny |
拒绝待审工具调用 | 会话所有者 |
/approvals |
查看所有待审项 | 会话所有者 |
/clarify |
向 Agent 发送澄清信息 | 会话所有者 |
/approve¶
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
request_id |
string | 必填 | 批准指定的工具调用请求 |
session / always |
literal | — | 在对应范围内允许同类操作 |
inline 界面收到审批请求时会直接显示脱敏后的参数:输入 y 批准、n
拒绝、a 在本会话允许。
/deny¶
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
request_id |
string | 必填 | 拒绝指定的工具调用请求 |
reason |
string | — | 拒绝原因(可选,会记录到日志) |
/approvals¶
显示当前会话中所有等待审批的工具调用,包含:
- 请求 ID
- 工具名称
- 参数摘要
- 等待时间
/clarify¶
回答 Agent 发出的指定澄清请求。inline 界面会展示编号选项,可直接输入序号 或自由文本,无需手工拼接命令。
命令执行流程¶
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ 用户输入 │────▶│ 命令解析器 │────▶│ 本地执行 │
│ /command │ │ │ │ 或 WS 发送 │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────┐
│ 未知命令回退 │ │ 服务端处理 │
│ 作为消息发送 │ │ 返回结果 │
└──────────────┘ └─────────────┘
未识别的斜杠命令会作为消息发送
未命中本地命令表的输入按普通消息发往 Agent,不报错。因此 /helpp 这类拼写错误会变成一句发给模型的话,而不是提示「未知命令」。
命令名的匹配不区分大小写(/HELP 与 /help 等价),参数保持原始大小写——路径和主题名是用户自己的文本。
补全面板会随输入过滤候选命令,用它确认命令拼写比事后从回复里发现更快。