Reasonix 命令使用手册
Reasonix — 一个配置驱动、插件化的 AI 编程代理(多模型支持),DeepSeek 原生,终端优先。
仓库:esengine/DeepSeek-Reasonix | Discord: https://discord.gg/XF78rEME2D
版本:v1.0+ (Go 重写版)
目录
- 1. CLI 命令
- 2. Chat 模式下的斜杠命令
- 3. 内置技能 (Skills)
- 4. 内置工具 (Tools)
- 5. CodeGraph 智能代码分析工具
- 6. LSP 语言服务器工具
- 7. 配置文件 reference
- 8. 自定义斜杠命令
- 9. MCP 插件
- 10. 权限系统
- 11. 沙箱
- 12. 双模型协作
- 13. @ 引用
- 14. 安装方式
1. CLI 命令
reasonix chat
启动交互式会话(多轮对话,TUI 界面)。
reasonix chat # 新会话
reasonix chat --continue # 恢复最近一次会话
reasonix chat --resume # 从保存的会话中选择恢复
reasonix chat --model deepseek-pro # 指定模型
reasonix run
执行单次任务并退出,结果流到 stdout。适合脚本/自动化。
reasonix run "implement the TODOs in main.go"
reasonix run --model mimo-pro "add unit tests for this function"
reasonix run --max-steps 20 "复杂的重构任务"
echo "explain this code" | reasonix run # 管道输入
reasonix serve
通过 HTTP+SSE 提供会话服务,浏览器客户端在 /。
reasonix serve --addr 127.0.0.1:8080
reasonix acp
通过 stdio 提供 Agent Client Protocol 服务。
reasonix acp
# 或
reasonix --acp
reasonix setup
交互式配置向导,引导生成 reasonix.toml(和 .env)。
reasonix setup # 在当前目录生成
reasonix setup /path/dir # 在指定目录生成
reasonix config
管理配置项(当前支持 auto-plan)。
reasonix config auto-plan off # 关闭自动计划模式
reasonix config auto-plan on # 开启自动计划模式
reasonix mcp
管理 MCP 服务器(在 reasonix.toml 中增、删、查)。
reasonix mcp list # 列出所有 MCP 服务器
reasonix mcp add ... # 添加服务器
reasonix mcp remove <name> # 移除服务器
reasonix doctor
打印本地诊断信息(已自动脱敏)。
reasonix doctor # 文本格式
reasonix doctor --json # JSON 格式
reasonix bot
多通道 IM 机器人网关。
reasonix bot start
reasonix bot doctor
reasonix bot weixin-login
reasonix version
显示当前版本号。
reasonix help
显示帮助总览。
2. Chat 模式下的斜杠命令
在 reasonix chat 交互式 TUI 中可用:
| 命令 | 功能 |
|---|---|
/help |
显示帮助信息 |
/new |
开始新会话(保存当前会话为历史,可恢复) |
/clear |
确认后丢弃当前会话上下文(不保存) |
/compact |
压缩当前上下文以释放 token |
/rewind |
回退到之前的某个状态 |
/tree |
查看保存的会话分支树 |
/branch [name] |
从当前会话顶部创建新分支 |
/branch <turn> [name] |
从指定 checkpoint 点创建分支 |
/switch <id\|name> |
切换到另一个分支 |
/todo |
查看/管理结构化任务列表 |
/model |
切换当前使用的模型 |
/effort |
调整推理努力程度 |
/mcp |
查看/管理 MCP 服务器连接状态 |
/memory |
查看/管理持久化记忆 |
/auto-plan off\|on |
切换自动计划模式 |
/init |
生成/刷新项目 AGENTS.md 记忆文件 |
/explore |
探索代码库(子代理只读调查) |
/research |
研究问题(web 检索 + 代码阅读) |
/review |
审查当前分支 pending 变更 |
/security-review |
安全专项审查当前分支变更 |
/test |
运行测试套件并诊断修复 |
/install-capability |
安装/卸载 MCP 服务器和技能 |
自定义斜杠命令
在 .reasonix/commands/(项目级)或 ~/.config/reasonix/commands/(用户级)放置 Markdown 文件即可创建自定义命令。
示例 .reasonix/commands/review.md:
---
description: 审查暂存区 diff
argument-hint: [focus-area]
---
Review the staged diff. Focus on $ARGUMENTS, list bugs with file:line.
- 文件名
review.md→ 命令/review - 子目录
git/commit.md→ 命令/git:commit $ARGUMENTS展开为所有参数,$1…$N展开为位置参数
3. 内置技能 (Skills)
技能是可复用的剧本。调用方式:run_skill({ name: "<name>", arguments: "<task>" })。
3.1 explore [🧬 subagent]
子代理模式 — 隔离子代理中探索代码库,返回一个精炼答案。
- 适用:「找出所有 X 的地方」「Y 在项目中如何工作」「调查 Z 的代码」
- 只读,不修改文件
3.2 init [inline]
内联模式 — 分析代码库(结构、构建/测试命令、架构、约定),生成 AGENTS.md。
- 生成的文件会在每次会话加载
- 如已存在则原地改进(不覆盖)
3.3 install-capability [inline]
内联模式 — 从 URL、GitHub raw、本地路径、.mcp.json、可执行文件或 npm 包名安装/卸载 MCP 服务器和技能。
- 两步操作:先
apply=false出计划(含风险等级),再apply=true执行 - 风险等级:low(自动应用)/ medium(提及即可)/ high(需用户确认)
3.4 research [🧬 subagent]
子代理模式 — 结合 web_fetch 和本地代码阅读研究问题。
- 适用:「库 Y 支不支持 X」「Z 的规范写法」「对比实现和官方 spec」
3.5 review [🧬 subagent]
子代理模式 — 审查当前分支 diff,标记:正确性、安全、缺失测试、隐藏行为变更。
- 只读,返回
file:line级问题列表
3.6 security-review [🧬 subagent]
子代理模式 — 安全专项审查,标记注入/认证/密钥泄露/反序列化/路径穿越/加密问题,附严重等级。
3.7 test [inline]
内联模式 — 运行测试套件 → 诊断失败 → 修复 → 重新运行 → 直到绿色(同一失败最多修 2 次)。
- 自动检测 Go / npm / pnpm / yarn / pytest / cargo
- 不会跳过/删除测试来强制绿色
4. 内置工具 (Tools)
代理在任务执行中可调用的全部工具:
4.1 文件系统工具
| 工具 | 功能 |
|---|---|
read_file |
读取文件(支持偏移量和行数限制) |
write_file |
写入文件(覆盖,自动创建父目录) |
edit_file |
精确替换文件中唯一匹配的字符串 |
multi_edit |
原子性批量编辑:所有编辑在内存中依次应用,任一步失败则原文件不变 |
delete_range |
通过首尾锚点定位,删除一段文本 |
delete_symbol |
删除 Go 源文件中的命名符号(函数/方法/类型/接口/常量/变量) |
ls |
列出目录内容(支持递归) |
glob |
glob 模式查找文件(支持 ** 递归,遵循 .gitignore) |
grep |
正则搜索文件内容(跳过隐藏文件和 .gitignore 文件) |
4.2 Shell 工具
| 工具 | 功能 |
|---|---|
bash |
执行 shell 命令(Windows 下为 PowerShell),支持 run_in_background 后台运行 |
bash_output |
读取后台任务的新输出 |
kill_shell |
终止指定的后台任务 |
wait |
阻塞等待后台任务完成 |
4.3 工作流工具
| 工具 | 功能 |
|---|---|
task |
生成子代理执行独立子任务(隔离会话,只返回最终答案);支持后台运行 |
todo_write |
记录和更新结构化任务列表(支持 phase/sub-step 两级) |
complete_step |
完成计划中的步骤(需附验证证据) |
ask |
向用户弹出多选问题(用于真正的决策分叉点) |
4.4 网络与资源工具
| 工具 | 功能 |
|---|---|
web_fetch |
抓取 HTTPS URL 内容(HTML 转为可读文本,JSON/纯文本原样返回) |
remember |
保存持久化记忆(类型:user/feedback/project/reference) |
forget |
删除指定记忆 |
4.5 技能与配置工具
| 工具 | 功能 |
|---|---|
run_skill |
调用指定技能(子代理型在隔离环境执行) |
read_skill |
只读加载技能内容(不执行) |
install_skill |
编写并保存新技能(项目级或全局) |
install_source |
安装/卸载 MCP 服务器或技能(先计划后执行) |
slash_command |
调用项目自定义斜杠命令 |
4.6 Notebook 工具
| 工具 | 功能 |
|---|---|
notebook_edit |
编辑 Jupyter Notebook (.ipynb) 单元格(replace/insert/delete) |
5. CodeGraph 智能代码分析工具
在 reasonix.toml 中配置 [codegraph].enabled = true 开启。对于「X 如何工作」/架构/调用链问题应优先使用。
| 工具 | 功能 | 使用场景 |
|---|---|---|
mcp__codegraph__context |
首选工具 — 一次性返回入口点 + 相关符号 + 关键代码 | 理解某功能如何工作 |
mcp__codegraph__search |
按名称搜索符号(可按 kind 过滤) | 查找某个函数/类/接口 |
mcp__codegraph__node |
获取单个符号的位置、签名、调用者/被调用者链路 | 查看具体符号细节 |
mcp__codegraph__trace |
两个符号之间的完整静态调用路径 | 追踪数据流/调用链 |
mcp__codegraph__explore |
按文件分组获取多个相关符号的源码 | 批量查看一组符号 |
mcp__codegraph__callers |
获取调用指定符号的所有位置 | 影响分析 |
mcp__codegraph__callees |
获取指定符号调用的所有符号 | 理解依赖 |
mcp__codegraph__impact |
分析修改某符号会影响到什么 | 重构前评估 |
mcp__codegraph__files |
项目文件树及每个文件的符号数量 | 项目结构概览 |
6. LSP 语言服务器工具
在 reasonix.toml 中配置 [lsp].enabled = true 开启。服务器按需延迟启动。
| 工具 | 功能 |
|---|---|
lsp_definition |
跳转到符号的定义位置 |
lsp_hover |
显示符号的类型签名和文档 |
lsp_references |
列出工作区中所有引用位置 |
lsp_diagnostics |
获取编译器/linter 的诊断信息(错误/警告) |
支持为不同语言配置 LSP 服务器,例如 Go:
[lsp.servers.go]
command = "gopls"
extensions = [".go"]
7. 配置文件 reference
配置文件解析优先级:CLI flag > ./reasonix.toml > ~/.config/reasonix/config.toml > 内置默认值
密钥必须通过环境变量(api_key_env)传入,不得写入配置文件。
7.1 完整配置示例
config_version = 2
default_model = "deepseek-flash"
# language = "zh" # UI 语言;空 = 从 $LANG / $REASONIX_LANG 自动检测
[agent]
max_steps = 0 # executor 工具调用轮数上限;0 = 无限制
planner_max_steps = 12 # planner 只读工具调用轮数;0 = 无限制
temperature = 0.0
auto_plan = "off" # off | on;off 保持手动计划模式
soft_compact_ratio = 0.5 # 仅通知,保持缓存优先前缀完整
compact_ratio = 0.8 # prompt 达到此比例时尝试压缩
compact_force_ratio = 0.9 # 强制压缩高水位线
# planner_model = "mimo" # 启用双模型协作(planner + executor)
# auto_plan_classifier = "deepseek-flash" # 仅对边界任务调用
# subagent_model = "deepseek-pro" # 子代理默认模型
# subagent_models = { review = "deepseek-pro", security_review = "deepseek-pro" }
# subagent_effort = "high"
# subagent_efforts = { review = "max", task = "high" }
# output_style = "explanatory" # explanatory | learning | concise | custom
[[providers]]
name = "deepseek-flash"
kind = "openai"
base_url = "https://api.deepseek.com"
model = "deepseek-v4-flash"
api_key_env = "DEEPSEEK_API_KEY"
# 预置 provider:deepseek-pro, mimo-pro (mimo-v2.5-pro), mimo-flash (mimo-v2-flash)
[tools]
enabled = [] # 空 = 全部启用;可指定列表
bash_timeout_seconds = 120 # 前台命令安全上限;0 = 无上限
[codegraph]
enabled = true # 代码智能分析;首次运行默认关闭
auto_install = true # 自动拉取运行时
[lsp]
enabled = true # 语言服务器;按需延迟启动
[skills]
# paths = ["~/my-skills"] # 额外自定义技能路径
# excluded_paths = ["~/.agents/skills"] # 隐藏约定路径
# max_depth = 3 # 嵌套扫描深度
# disabled_skills = ["review"] # 禁用指定技能
[permissions]
mode = "ask" # writer 回退策略:ask | allow | deny
# deny = ["Bash(rm -rf*)", "Bash(git push*)"] # 所有模式硬阻止
allow = ["Bash(go test:*)"] # 从不提示,直接放行
# ask = ["Edit(src/**)"] # 强制提示
[sandbox]
bash = "enforce" # shell 沙箱(macOS Seatbelt;其他平台渐近回退)
network = true # 允许网络出口
[[plugins]]
name = "example"
command = "reasonix-plugin-example"
7.2 配置项速查
| 节 | 关键字段 | 说明 |
|---|---|---|
default_model |
模型名 | executor 默认模型 |
[agent] |
max_steps, planner_model, auto_plan |
代理行为控制 |
[[providers]] |
name, kind, base_url, model, api_key_env |
模型提供商定义 |
[tools] |
enabled, bash_timeout_seconds |
工具开启和限制 |
[codegraph] |
enabled, auto_install |
CodeGraph 代码分析引擎 |
[lsp] |
enabled |
语言服务器配置 |
[skills] |
paths, disabled_skills |
自定义技能路径和黑名单 |
[permissions] |
mode, deny, allow, ask |
权限策略规则 |
[sandbox] |
bash, network, workspace_root, allow_write |
沙箱约束 |
[[plugins]] |
name, command/url, type, headers |
MCP 插件定义 |
8. MCP 插件
Reasonix 是原生 MCP 客户端,支持三种传输方式:
stdio(本地子进程,默认)
[[plugins]]
name = "example"
command = "reasonix-plugin-example"
args = []
env = { KEY = "value" }
http(Streamable HTTP)
[[plugins]]
name = "stripe"
type = "http"
url = "https://mcp.stripe.com"
headers = { Authorization = "Bearer ${STRIPE_KEY}" }
sse(Server-Sent Events)
[[plugins]]
name = "my-server"
type = "sse"
url = "https://example.com/mcp/sse"
- 工具以
mcp__<server>__<tool>名称暴露给模型 - MCP prompt 以
/mcp__<server>__<prompt>斜杠命令出现 - 资源通过
@<server>:<uri>引用 - 声明
readOnlyHint: true的工具会参与并行调度且走 reader 默认权限 - 服务器后台自动连接,用
/mcp查看状态
.mcp.json 兼容
在项目根目录放置 .mcp.json,Reasonix 直接读取。与 [[plugins]] 合并;名称冲突时 reasonix.toml 优先。
{
"mcpServers": {
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"] },
"stripe": { "type": "http", "url": "https://mcp.stripe.com", "headers": { "Authorization": "Bearer ${STRIPE_KEY}" } }
}
}
9. 权限系统
基于规则的工具调用门控。优先级:deny > ask > allow > fallback。
| 配置 | 含义 |
|---|---|
mode = "ask" |
无匹配规则时,writer 工具需用户确认 |
deny |
硬阻止(所有模式生效) |
allow |
从不提示 |
ask |
强制提示(即使默认 allow) |
规则格式:Tool 或 Tool(specifier),例如:
Bash(go test:*)— 匹配go test ./...、go test -run TestX等Edit(src/**)— 匹配src/下所有路径的编辑Bash(rm -rf*)— 阻止所有rm -rf命令
10. 沙箱
沙箱是强制执行层(权限是策略层):
- 文件写入器(
write_file/edit_file/multi_edit)拒绝写入workspace_root之外的路径 - 自动解析符号链接和
..防止逃逸 - 读取不受限制
bash沙箱(macOS Seatbelt):命令只在项目根和临时目录写入,仅在network = true时允许网络- 其他平台当前回退为不限制
11. 双模型协作
设置 planner_model 启用 planner + executor 双模型模式:
[agent]
planner_model = "deepseek-pro" # 低频 planner
planner_max_steps = 12 # planner 只读工具调用轮数
- Planner 加载 AGENTS.md 记忆,使用只读工具研究代码
- Executor 拥有全部 writer 和工作流工具
- 两者各自独立会话,缓存稳定
- 计划模式下 planner 先起草方案,等待用户批准后再执行
12. @ 引用
在消息中使用 @ 引用,Reasonix 在发送前解析为带标签的上下文块:
@path/to/file— 注入本地文件内容@path/to/dir— 注入目录列表@<server>:<uri>— 注入 MCP 资源- 只有实际存在的路径才被视作引用,普通
@mention保持原样 - 输入
/或@触发自动补全菜单
13. 安装方式
# npm(推荐,跨平台;自动拉取原生二进制)
npm i -g reasonix
# Homebrew(macOS)
brew install esengine/reasonix/reasonix
# 从源码构建
make build # → bin/reasonix(.exe)
make cross # → dist/ (darwin|linux|windows × amd64|arm64)
每个 GitHub Release 提供预构建压缩包。
快速上手
reasonix setup # 配置向导 → ./reasonix.toml
export DEEPSEEK_API_KEY=sk-... # 或写入 .env
reasonix chat # 启动聊天,然后执行 /init 生成 AGENTS.md
reasonix run "implement the TODOs in main.go"
更多资源:
- GitHub 仓库
- 官方网站
- Discord 社区
- SPEC.md 完整规格(仓库
docs/SPEC.md)