🐚 Shell 工具
# 概述
enableShellTool() 默认为 true。如果配置中的 liteflow.agent.shell.mode 不是 DISABLED,框架会注册 ManagedShellCommandTool,工具名为 execute_shell_command。
Shell 工具在当前 conversation workspace 下执行命令。
默认即开启,请务必注意
liteflow.agent.shell.mode 的默认值是 WHITELIST,叠加 enableShellTool() 默认 true,用户不做任何配置时,Shell 工具就是开启状态,且默认白名单包含 curl、wget、python3、node 等能力较强的命令。
生产环境必须显式设置 liteflow.agent.shell.mode=DISABLED,或在 WHITELIST 模式下手动收窄到业务真正需要的命令。
# 执行机制
当前实现会按空白符切分命令字符串,用 ProcessBuilder 直接执行 token 列表。不会通过系统 shell 解释管道、重定向、变量展开等语法。
# 配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
liteflow.agent.shell.mode | WHITELIST | WHITELIST / BLACKLIST / DISABLED |
liteflow.agent.shell.whitelist | ls, find, tree, ... | 白名单命令列表 |
liteflow.agent.shell.blacklist | rm, sudo, shutdown, ... | 黑名单命令列表 |
liteflow.agent.shell.timeout | 30s | 命令执行超时 |
liteflow.agent.shell.max-output-bytes | 1048576 | 最大输出字节数 |
# 默认白名单
ls, find, tree, stat, file, basename, dirname, pwd, which,
cat, head, tail, grep, sed, awk, wc, sort, uniq, cut, tr,
diff, echo, printf, expr, date, whoami, hostname, uname,
env, df, du, ps, md5sum, sha256sum, jq, curl, wget,
python3, node
安全提醒
默认白名单包含 curl、wget、python3 和 node 等能力较强的命令。即使不经过系统 shell,这些命令仍可能带来网络访问或脚本执行风险。生产环境不要直接沿用默认白名单,应收窄到业务需要的命令。
# 在组件中关闭
@Override
protected boolean enableShellTool() {
return false;
}
帮助我们改善此文档 (opens new window)
上次更新: 2026/05/26, 10:50:41


