Chat vs Run:Reasonix 两种工作模式,你用对了吗?

上篇发了之后,有读者问:"装好了,但这个 reasonix runreasonix 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.0005

AI 自己决定用什么命令、执行、展示结果。全程没你什么事。


三、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查看所有命令
3. @ 引用本地文件

帮我看看这个文件有什么问题:@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 做深度工作 → 最佳组合
刚开始用的时候,建议你大部分时间用 Run —— 一条指令一个任务,快速感受 AI 的能力。遇到需要反复讨论的场景,再切到 Chat


🔜 下一篇预告:权限与安全——敢给 AI 写代码的权限吗?

每次 AI 想写文件之前,都会先问你"可以吗"。但这个"问"的规则其实是可以自定义的——什么命令永远放行、什么命令直接拒绝、什么情况下连问都不问就坚决不执行。下篇我们用真实场景逐一演示。
>
关注我,带你用最少的钱,薅最狠的 AI 羊毛。

📌 互动话题:你用 reasonix run 最多的场景是什么?评论区分享你的用法。