创见博客
rtk不会代理哪些命令
七崽爱吃小饼干2026/07/07阅读 0专栏 工程效率

rtk 会跳过和不会跳过的命令区别

**核心判断:**rtk 只代理“读输出、可压缩、不会改变语义”的命令;会跳过“写操作、shell 控制、结构化输出、语义不兼容或高风险改写”的命令。

一、不会跳过:适合被 rtk 代理的命令

这些命令的共同点是:主要价值在 stdout / stderr 输出,输出通常很长但存在明显噪声,并且 rtk 有对应的解析规则。

判断维度说明示例
主要价值在输出命令的目的主要是把信息展示给用户或 LLM,而不是修改环境或文件系统。git status、cargo test、pytest
输出存在噪声包含大量进度条、通过项、提示文案、重复日志或 ANSI 控制字符。tsc、docker logs app、pnpm install
有专用规则rtk 已经知道如何解析该命令,并能保留关键信息。git diff → rtk git diff,npx tsc → rtk tsc
改写不改变意图改写后仍然执行原命令,只是过滤返回给 Agent 的输出。git status → rtk git status
bash
git status
cargo test
pytest
tsc
rg foo .
docker logs app

二、会跳过:不适合被 rtk 自动代理的命令

这些命令通常不是为了给 LLM 阅读,或者改写后可能破坏 shell 语义、文件写入、机器可读结构或管道兼容性。

1. Shell 内建 / 环境控制

这类命令会改变当前 shell 状态,或者本身不是“产生可压缩输出”的命令,改写没有收益且可能破坏行为。

bash
cd
export
source
set
unset
pwd

2. 文件写入 / 副作用命令

这类命令的重点是副作用,不是输出内容。rtk 会跳过,避免改变执行语义。

bash
rm
mv
cp
mkdir
chmod
chown
touch

3. 文本处理管道组件

这些命令经常作为管道中间步骤,输出需要被后续程序精确消费。压缩会破坏后续命令。

bash
sed
awk
cut
sort
uniq
tr

4. 明确请求结构化输出

如果用户显式要求 JSON、JQ 或 template,说明输出是机器可读结构,rtk 不应压缩。

bash
gh pr view 1 --json title,body
gh pr list --jq ".[]"

5. 语义不兼容的 flags

某些 flag 的语义无法由 rtk 的替代命令完整复刻,因此会跳过。

bash
cat -A file
cat -v file
tail -f app.log

6. 写重定向

这类命令是在写文件,不是把内容读给 LLM 看。如果改成 rtk read,会改变行为。

bash
cat file > out.txt
head -10 file > out.txt

7. 管道兼容性风险

例如 find 的输出经常被 xargs 等命令消费。rtk 的压缩格式更适合人或 LLM 阅读,不一定适合下游程序。

bash
find . -name "*.rs" | xargs grep foo

8. 用户显式禁用

如果命令前带有 RTK_DISABLED=1,rtk 会尊重用户意图并跳过 rewrite。

bash
RTK_DISABLED=1 git status

三、快速判断表

问题倾向原因
输出是给 LLM / 人看的?代理可以通过过滤减少 token
输出是给另一个程序消费的?跳过压缩可能破坏格式
命令主要是修改文件或环境?跳过重点是副作用,不是输出
命令有 rtk 专用过滤规则?代理能保留关键信息并减少噪声
用户显式要求 JSON / template?跳过应保持机器可读结构

一句话总结:如果命令的输出是“给 LLM 看”的,rtk 倾向代理;如果命令的输出是“给 shell / 另一个程序消费”的,或者命令的重点是副作用,rtk 倾向跳过。

评论
0/100