--- excalidraw-plugin: parsed tags: [excalidraw] --- ==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' # command是啥 **✅ 简单直接回答你的问题:** 在图片里的 `AGENTS.md` 规则中,**“Command” 指的就是 AI Coding Agent(Codex CLI)在终端里执行的 shell 命令**。 它不是你手动敲的命令,而是 **AI 自己决定要执行的命令**,用来感知项目、读取代码、构建、测试、git 操作等。 --- ### 在 Vibe Coding(AI 辅助编码)场景里,Command 具体是什么? Codex(以及 Cursor、Aider、Windsurf、Hermes 等 agent)的工作模式是: > **AI 不是直接改代码**,而是先通过执行各种终端命令来“看”你的项目,然后再决定怎么修改。 所以 **Command = AI 主动调用的 shell 指令**。 #### 常见 Command 分类举例(以你正在开发的 **Apptag** macOS App 为例): | 类型 | 典型 Command 示例 | 输出特点 | 是否需要 byte cap? | 说明 | |------|------------------|----------|---------------------|------| | **探索项目结构** | `find . -name "*.swift"`, `ls -la Sources/`, `tree` | 可能非常大 | **强烈需要** | 大项目里文件成百上千 | | **读取代码** | `cat Sources/Apptag/AppDelegate.swift`, `cat Package.swift` | 文件越大输出越大 | **需要**(除非很确定文件很小) | 这是最常见的触发 token 消耗的操作 | | **Git 操作** | `git log --oneline`, `git diff`, `git show HEAD` | 历史越多越大 | **需要** | `git log` 不加限制很容易几万行 | | **构建 / 编译** | `swift build`, `xcodebuild -scheme Apptag build`, `swift package resolve` | 日志经常很 verbose | **需要** | 构建日志经常有几千行 | | **依赖 / 环境检查** | `swift package show-dependencies`, `which swift`, `xcodebuild -list` | 中等大小 | 建议 cap | 保险起见 | | **测试 / 运行** | `swift test`, `xcodebuild test` | 输出可能很大 | **需要** | 测试失败日志特别长 | | **安全小命令** | `pwd`, `git status`, `echo "test"`, `ls`(小目录) | 输出很小 | **不需要** | 可以直接执行 | --- ### 为什么这条规则这么重要?(图片里强调的点) 图片里的核心规则是: > **Any command with unknown or potentially large output must be byte-capped.** 意思是:**凡是输出未知或可能很大的命令,必须先做字节截断**。 默认写法: ```bash COMMAND 2>&1 | head -c 4000 ``` **关键点解析:** 1. **`2>&1`**:把错误输出(stderr)也一起捕获,不然错误信息可能会漏掉或单独爆炸。 2. **`head -c 4000`**:按**字节**截断前 4000 字节(约 4KB),而不是按行数。 - 为什么用字节而不是行?因为一行可能有几千个字符(比如 minified 的 JS、长日志行),按行截断不靠谱。 3. **不是简单限制行数**,而是给“未知命令”做**默认 byte cap**,写进 `AGENTS.md` 让 AI 自动遵守。 这正是标题说的「只靠 AGENTS.md 一条规则就能省 40%-50% token」的原因——很多时候 AI 其实不需要看完整输出,前面一小部分就已经够它判断了。 --- ### 实际使用建议(给你当前 Codex + Apptag 项目) **推荐做法:** 1. 在你 `Apptag` 项目根目录创建一个 `AGENTS.md` 文件(如果还没有的话)。 2. 把图片里的规则放进去,并可以适当调大一点(比如 `6000` 或 `8000`),因为你做 macOS App,有时候想多看一点构建日志或 Swift 文件内容。 3. 可以再补充一些针对 Swift/macOS 的规则,比如: - 优先使用 `swift build` / `xcodebuild` 而不是直接操作 `.xcodeproj` - 修改代码前先 `git status` 和 `git diff` - 大文件读取必须加 `head -c` **示例(你可以直接复制使用):** ```markdown ## Command Output Protect context usage. **Any command with unknown or potentially large output must be byte-capped.** Default pattern: ```bash COMMAND 2>&1 | head -c 6000 ``` ## Project Specific Rules (Apptag - macOS Swift App) - 这是 macOS App 项目,主要使用 Swift + SwiftUI / AppKit - 构建命令优先使用 `swift build` 或 `xcodebuild` - 查看 Swift 文件时,如果文件较大,必须使用 byte cap - 提交前必须检查 `git status` 和 `git diff` ``` --- **总结:** - **Command** = AI 在终端里自己执行的 shell 命令(不是你手动敲的)。 - 这条规则的核心就是**防止 AI 把大输出全塞进 context**,从而大幅节省 token。 - 把这个规则写进 `AGENTS.md` 后,Codex 就会**自动**给危险命令加 `| head -c xxxx`。 需要我帮你写一个**完整版、适合你 Apptag 项目的 AGENTS.md**(包含 byte cap + Swift/macOS 专用规则 + git 工作流规则)吗?可以直接给你一个优化后的版本。 # 这个例子要照抄吗 # 这个例子要照抄吗 # 例子要照抄吗 # Excalidraw Data ## Text Elements 这里说的命令是啥? ^MVIaYBfC ## Element Links rIEDYU1Q: [[DS/AI-vibe-coding/Agent.md/Drawing 26.0525.excalidraw.md#command是啥]] ## Embedded Files 576efc5c49a904d7fda09f7d439cd31d3e879fdd: [[Pasted Image 20260525061319_361.png]] %% ## Drawing ```compressed-json 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 ``` %%