CLI 智能体
启动、监督并审阅你的外部 CLI 编码智能体——预设、状态推断、diff 与通知。
Cordy 编排你已经在用的外部 CLI 编码智能体。它把它们启动进工作区终端,从终端输出或受支持的提供商 hook 推断状态,显示文件改动,并在它们需要你关注时通知你。AI 本身的工作由各智能体在自己的进程中、用自己的凭据与提供商完成。Cordy 会为渲染、恢复历史与监督处理终端输出,但不会把这些内容代理到模型服务。
自带你的智能体
Cordy 不捆绑也不安装任何智能体。请完全按照各智能体自身文档的说明来安装并认证它——用它自己的账户、提供商、模型与密钥——使得在终端里运行它的命令本就可行。然后 Cordy 便能替你启动它。
Cordy 开箱内置六个智能体的预设:
| 智能体 | 预设命令 |
|---|---|
| Claude Code | claude |
| Codex CLI | codex |
| Cursor Agent | cursor-agent |
| Gemini CLI | gemini |
| Copilot | copilot |
| OpenCode | opencode |
每个预设都在工作区的 CodeTarget 中运行。Claude Code 与 Codex 启动时不带绕过审批的参数,各 CLI 保留自己的权限流程。Copilot 内置预设当前带有 --allow-tool=write。如果命令不在 PATH 上,启动会像在普通 Shell 中一样失败——请先安装或登录该 CLI。
启动一个智能体
智能体预设会经过 Cordy 的运行时监督器,因此运行会获得状态徽章、活动面板与通知。可从以下任一入口发起:
- 工作区标题栏中的 Agent 按钮,它会打开预设选择器;
- 命令面板(
Cmd/Ctrl+K)→ Agent 分组 → "Launch <智能体>"。
终端预设栏使用同一条受监督启动路径。右键预设可选择向右拆分并运行……或向下拆分并运行……;新窗格拥有与普通智能体标签相同的运行状态与关闭确认。
智能体运行在工作区终端中,工作目录为该工作区代码路径。项目根工作区共享文件;只有已有的 worktree 代码目标提供独立工作目录。见核心概念。
实时状态
对于受监督的启动,Cordy 通过监视智能体终端输出中的模式来推断其状态,并以徽章形式展示:
| 状态 | 徽章 | 含义 |
|---|---|---|
launched | Agent: launched | 进程已启动;尚未见到决定性输出。 |
running | Agent: running | 智能体正在活跃地产生输出——工作中。 |
waiting_for_input | Agent: waiting for input | 智能体正在向你提问,被你的回应所阻塞。 |
idle | Agent: idle | 仍在运行,但已安静一段时间(在预设的空闲窗口内无输出)。 |
exited | Agent: exited | 进程已结束。 |
failed | Agent: failed | 匹配到失败模式(例如认证或配额错误)。 |
在屏幕推断模式下,状态跃迁由已渲染文本匹配与超时驱动。running 模式标记成功启动;提示行上的 waiting 模式可以标记等待输入。配置了 busy 模式时,则在启动完成后,以忙碌文本消失来判断等待;busy 的优先级更高。新的非等待输出把等待或空闲状态拉回 running;超过空闲窗口的静默将 running → idle;failure 模式转为 failed;进程结束则转为 exited。CLI 可以改变界面文本,因此请把屏幕推断状态视为提示。
Claude Code 的官方 hook 集成可提供结构化的工作中、等待、会话结束与审批请求信号。Hook 信号优先于屏幕推断。当前 Desktop 构建没有远程审批控件:审批请求会触发通知,Cordy 返回“不作决定”,仍由 Claude Code 自己的终端提示接收答案。其他内置智能体只使用状态与终端监督。
活动面板
智能体活动面板会显示运行中智能体的预设、进程 id、终端会话,以及一小段证据——具体匹配到的行、启发式原因,或退出码,用以解释 Cordy 为何判定为当前状态。它还带有一个 Kill agent(终止智能体) 控件。该面板从不展示智能体的原始输出:只展示每次状态变化背后的那一小片证据,且这些证据保存在内存中、绝不写入磁盘。见 隐私。
审阅智能体的改动
智能体的工作会体现为该工作区 CodeTarget 中的 Git 改动。项目根工作区会与其他指向同一目录的工作区共享文件;已有的 worktree 工作区则使用其保存的 worktree 路径。Changes 面板用于审阅当前活动目标:
- 跨已暂存、未暂存与未跟踪文件的 +/− 汇总;
- Staged Changes(已暂存)、Changes(改动) 与 Untracked Files(未跟踪) 分区;
- 每个文件的 打开 diff、暂存 / 取消暂存 与 丢弃;
- diff 查看器内的逐块(hunk) 暂存与丢弃,以及一个内联提交表单;以及
- 针对同一 worktree 的 fetch / pull / push。
Cordy 会监视代码目标的改动并自动刷新。完整的 Git 工作流见文件、搜索、Git 与笔记。
通知
当某个智能体在你注意力不在时改变了状态,Cordy 会通知你:
| 事件 | 通知 | 级别 |
|---|---|---|
| 智能体开始等待输入 | "Agent needs input" | warning |
| Claude Code hook 报告审批请求 | "Agent needs approval" | warning |
| 智能体匹配到失败模式 | "Agent failed" | error |
| 智能体在运行至少约 30 秒后退出 | "Agent finished" | info |
| 你停止智能体 | "Agent stopped" | info |
自行运行不足约 30 秒便退出的智能体不会产生“已完成”通知,以抑制快速失败启动带来的噪声;用户主动停止仍会收到确认。针对同一智能体的通知会被限流为每隔几秒至多一条。
通知以何种方式送达,取决于 Cordy 的窗口焦点:
- 只要 Cordy 处于打开状态,每条通知都会以应用内 toast 的形式出现,无论是否聚焦。
- 只有当 Cordy 窗口未聚焦时——隐藏、最小化,或(在 Windows 上)收起到托盘——才会发送操作系统系统通知。
若操作系统拒绝通知(权限被拒),Cordy 会展示一次性的应用内警告;只要应用处于打开状态,你仍能收到应用内 toast。通知会标识对应的智能体运行,但点击通知目前并不会带你跳转到该智能体或工作区。
自定义预设
你可以为任意命令注册自己的预设——另一个智能体、一个包装脚本,或某个内置智能体的特定调用方式。从智能体选择器中打开 Register custom preset(注册自定义预设)(或在设置中新增一个),并提供:
- 一个显示名称与要运行的命令;
- 可选的默认参数(每行一条)与环境变量覆盖(键/值对);
- 可选的状态检测模式——running、waiting-for-input、busy 与 failure 模式,外加一个空闲超时;以及
- 工作目录,它始终是工作区的代码目标。
由于预设会以你的完整用户权限、在没有沙箱的情况下运行真实命令,Cordy 会把确切的命令行展示给你确认——批准文案为"I authored this preset and own the command(我编写了该预设并对该命令负责)"。自定义预设存储在你本地的用户数据目录中。
Cordy 不做什么
为把边界讲清楚:
- Cordy 不内嵌聊天机器人,也不调用任何语言模型。
- Cordy 不持有你的提供商 API 密钥——每个智能体从各自的环境或配置中读取自己的密钥。
- Cordy 不把终端内容发送给自己的 AI 服务商。它会渲染终端输出,并为恢复保留有上限的普通缓冲区历史。
- Cordy 不静默批准智能体操作。Claude Code hook 可以把审批请求通知 Cordy,但当前 Desktop 构建会返回“不作决定”,审批仍留在 Claude Code 终端。Cordy 自己的确认覆盖注册自定义命令、提交或丢弃改动、破坏性关闭等 Cordy 层操作。
相关页面
- 核心概念——定义智能体工作目录的工作区与 CodeTarget。
- 文件、搜索、Git 与笔记——Changes 面板与 diff 审阅。
- 快捷键——智能体选择器快捷键与命令面板。
- 隐私——密钥、prompt 与证据。