CLI 是 Harness 通过终端/Shell 与本地环境交互的能力:跑测试、git、包管理器、构建、脚本等。
在 Cursor 等 IDE Agent 中,CLI 常通过 Shell 工具实现,是连接 Model 推理 与 真实仓库状态 的主通道。
Model ──► Shell tool ──► Sandbox/OS ──► stdout/stderr ──► Context ──► Model
| 能力 | Harness 职责 |
|---|---|
| cwd | 默认工作区根,可指定 |
| 超时 | block_until_ms,防挂死 |
| 权限 | network/git_write/all 等沙箱级别 |
| 输出 | 终端文件、截断、后台 poll |
- 非交互:禁止需 TTY 的命令(
git rebase -i)。 - 可重复:文档化安装与测试命令(见 AGENTS.md)。
- 失败即证据:保留 exit code 与 stderr 供 Model 修复。
- 并行:独立只读命令可 batch。
- CLI:通用、灵活、副作用大
- 专用 Tool:参数安全、行为固定(如
gh pr create封装) - MCP:远程系统,不一定经过本地 shell
- cli-safety.md — 安全与沙箱