Chat vs Run:Reasonix 两种工作模式,你用对了吗?
上篇发了之后,有读者问:"装好了,但这个reasonix run和reasonix chat到底有什么区别?感觉都能用,不知道什么时候该用哪个。"
今天就把这个问题彻底讲清楚。
一、先讲核心区别:一句话
reasonix run "一句话任务" → AI 自己干完,输出结果,退出
reasonix chat → 进入对话界面,你一句 AI 一句,多轮交互Run 是「派活」,Chat 是「聊天」。
就这么简单。但这个区别背后,藏着两种完全不同的工作方式。
二、Run 模式:派活就走,适合确定的单次任务
reasonix run "帮我把这个目录下的所有 .log 文件压缩归档"Run 的行为模式:
| 特点 | 说明 | |
|---|---|---|
| 一次性 | AI 执行完任务就退出,不留会话 | |
| 自动执行 | 不问你就干——适合确定性的任务 | |
| 可管道 | `echo "解释这段代码" \ | reasonix run` |
| 输出到 stdout | 结果直接打印到终端,可以重定向到文件 | |
| 适合脚本化 | 可以写进 shell 脚本、定时任务、CI/CD |
什么时候用 Run?
✅ 适合的场景:
- 明确的单次任务:"把这个 Python 脚本里的所有 TODO 列出来"
- 批量处理:写个 shell 循环,对多个文件跑同一个指令
- 管道操作:
cat error.log | reasonix run "分析这些错误日志,按频率排序" - CI/CD 集成:在构建脚本里让 AI 自动审查代码变更
- 快速验证:想测试某个模型会不会写某段代码
- 需要多轮讨论的复杂问题
- 不确定任务该怎么拆解,需要 AI 引导
- 想边看结果边调整方向
Run 的三种用法
用法一:直接传参
reasonix run "写一个 bash 函数,递归查找超过 100MB 的文件"用法二:管道输入
cat server.log | reasonix run "分析这些日志,找出 5xx 错误,按时间排序"用法三:echo 传参
echo "解释一下 git rebase 和 git merge 的区别" | reasonix run三种写法效果一样——AI 拿到任务,干完,退出。
实测一个 Run 任务
reasonix run "找出当前目录下最大的 3 个文件"输出:
▎ thinking...
→ bash {"command": "find . -type f -exec ls -lh {} \\; | sort -k5 -rh | head -3"}
1. bigfile.bin 10 MB
2. print_largest.py 858 B
3. file3.txt 37 B
· 8911 tok · in 8834 (8704 cached / 130 new) · out 77 · ¥0.0005AI 自己决定用什么命令、执行、展示结果。全程没你什么事。
三、Chat 模式:坐下来聊,适合复杂多轮任务
reasonix chat你会进入一个全屏交互界面(TUI),像 ChatGPT 但跑在终端里。
Chat 的行为模式:
| 特点 | 说明 |
|---|---|
| 多轮对话 | 你一句 AI 一句,上下文一直保留 |
| 可交互确认 | 每次写文件/跑命令前会先问你"可以吗?" |
| 斜杠命令 | /compact /new /model /todo /help …… |
| @ 引用文件 | @src/main.go 直接把文件内容喂给 AI |
| 会话可恢复 | reasonix chat -c 回到上次的对话 |
| 分支管理 | /branch 从某轮对话分叉,对比不同方案 |
什么时候用 Chat?
✅ 适合的场景:
- 复杂重构:"帮我把这个模块从 MVC 架构改成 DDD 架构"
- 需要讨论的需求:"我想加一个搜索功能,你觉得怎么设计比较好?"
- 分步调试:给 AI 看报错 → AI 分析 → 修改代码 → 再跑 → 再调
- 代码审查:"帮我 review 这个 PR 的改动,逐文件指出问题"
- 学习新东西:"解释一下 Go 的 goroutine 和 channel,给我几个例子"
Chat 的杀手锏
1. 写文件前会问你
→ write_file src/main.go
? 允许 AI 写入 src/main.go?
[1] 允许本次 [2] 本会话都允许 [3] 拒绝不怕 AI 乱改东西。你点头了才动。
2. 斜杠命令控制会话
| 命令 | 作用 |
|---|---|
/new 或 /clear | 清空上下文重新开始(旧会话自动保存) |
/model | 切换模型(比如从 flash 切到 pro) |
/compact | 手动压缩上下文(清理早期对话节省 token) |
/tree / /branch | 查看/创建对话分支——从某轮分叉出去 |
/todo | 让 AI 列出当前任务清单 |
/help | 查看所有命令 |
帮我看看这个文件有什么问题:@src/main.go发送前 AI 会自动读取文件内容,不用你手动复制粘贴。
4. 会话可以存、可以恢复、可以分叉
reasonix chat -c # 续上最近一次对话
reasonix chat --resume # 从列表选一个对话恢复在 Chat 里还能用 /branch 从某轮对话分出一个分支——比如你让 AI 写了两个方案,想对比一下。
四、核心对比:一张表看懂
| 维度 | `reasonix run` | `reasonix chat` | |
|---|---|---|---|
| 交互方式 | 一句话指令 → 自动执行 | 多轮对话,边聊边改 | |
| 权限模式 | 不问直接干(deny 规则仍生效) | 写文件/跑命令前会问你 | |
| 会话持久化 | 不保存 | 自动保存,可恢复 | |
| 斜杠命令 | 不支持 | /compact /new /todo …… | |
| @ 引用文件 | 不支持 | 支持 | |
| 分支管理 | 不适用 | /branch /tree | |
| 适用场景 | 确定的单次任务 | 复杂、不确定、需要讨论的任务 | |
| 管道输入 | `\ | reasonix run` | 不支持 |
| 适合脚本化 | ✅ 可以写进 shell 脚本 | ❌ 交互式,不适合自动化 |
五、实践建议:先 Run 后 Chat
我自己用的工作流,分享给你参考:
简单任务 → Run
reasonix run "统计这个项目有多少行代码"15 秒出结果,搞定。
中等任务 → 先用 Run 探路,再切 Chat 细化
# 第一步:让 AI 先看看项目结构
reasonix run "分析这个项目的目录结构,给出模块划分建议"
# 第二步:看完建议后,切到 Chat 深入
reasonix chat复杂任务 → 直接 Chat
遇到需要多次往返的,直接进 Chat:
reasonix chat
你:帮我重构这个模块,我想把数据处理逻辑抽出来
AI:好的,我先看一下现有的代码结构……
AI:我建议这样拆分……
你:可以,但那个接口我想保留……
AI:修改好了,你看看写在最后
Run 和 Chat 不是竞争关系,是互补的两种武器。
- 想快速解决一个确定问题 → Run
- 想深入探讨一个复杂问题 → Chat
- 先用 Run 做调查,再用 Chat 做深度工作 → 最佳组合
🔜 下一篇预告:权限与安全——敢给 AI 写代码的权限吗?
每次 AI 想写文件之前,都会先问你"可以吗"。但这个"问"的规则其实是可以自定义的——什么命令永远放行、什么命令直接拒绝、什么情况下连问都不问就坚决不执行。下篇我们用真实场景逐一演示。>
关注我,带你用最少的钱,薅最狠的 AI 羊毛。
📌 互动话题:你用 reasonix run 最多的场景是什么?评论区分享你的用法。