Exec
exec 是 MushroomAgent 最核心的运行时工具之一,用来在本地环境执行 shell 命令。它既可以同步返回结果,也可以把任务转成后台会话,再交给 process 管理。
功能说明
- 执行单次命令
- 支持
workdir和环境变量覆盖 - 支持
timeout和输出截断 - 支持
background,长任务可立即转后台 - 和
process共用后台 session 模型
参数
| 参数 | 说明 |
|---|---|
command | 要执行的命令,必填 |
workdir | 工作目录,支持相对路径 |
env | JSON 对象形式的环境变量覆盖 |
timeout | 超时秒数,默认取 tools.exec.default_timeout |
max_output_chars | 最多返回多少字符 |
background | 设为 true 时立即转后台并返回 sessionId |
执行模型
- 没有 shell 操作符时,运行时会直接把命令解析成 argv 执行。
- 如果命令里包含管道、重定向、变量展开等 shell 语法,会退化为
/bin/sh -lc。 allowlist默认按命令名或 basename 匹配。privileged=false时,命令不在白名单里会直接返回capability_limited。
配置
tools:
exec:
enabled: true
cwd: /absolute/path/to/workspace
cwd_root: /absolute/path/to/workspace
allowlist:
- curl
- python3
- ls
- rg
- cat
- pwd
privileged: false
default_timeout: 1800
max_output_chars: 200000
mushroom-agent init 生成的模板里,exec 默认就是启用的,而且会带上一组基础 allowlist。
示例
前台执行:
{ "tool": "exec", "command": "rg TODO ." }
后台执行:
{ "tool": "exec", "command": "npm run dev", "background": true }
相关
- Process 用来查看和控制后台 session
- Read & Write 用来配合文件读写
- CLI Reference 看
mushroom-agent admin tools list