☰
Loushang内置工具与工具治理:read、edit、bash能力开关与策略配置技巧
2026/10/11 10:48:40 网站建设 项目流程

【免费下载链接】loushang

AI-native agent harness for coding workflows by python: multi-model LLM orchestration, stateful sessions, tool governance, traceable delivery, and provider routing for GPT, Claude, DeepSeek, Qwen, Kimi, GLM, and MiniMax.

项目地址:https://gitcode.com/gh_mirrors/lo/loushang
点击查看免费下载

Loushang 是一个用 Python 编写的 AI 原生编程 Agent 框架(agent harness),内置一套开箱即用的工作区工具:read、edit、write、bash、ls、find、grep。对新手来说,最关键的不仅是"有哪些工具",更在于工具治理——如何通过能力开关和策略配置(allow / ask / deny)决定 AI 哪些操作可以直接执行、哪些必须弹窗审批、哪些直接拦截。本文将带你快速掌握 Loushang 内置工具的启用关闭技巧与策略配置方法。

一、Loushang 内置工具全家福:7 件核心工具一览 🧰

Loushang 的内置工具集在 tool_pack.py 中统一定义,所有编程会话默认全部激活:

工具能力治理重点
read读取工作区文本文件与图片,支持 offset/limit 分段读路径策略
edit对文件做精确文本替换写入审批
write写入文本文件写入审批
bash执行 Shell 命令(Windows 上自动换成shell)命令子串策略 + 效果检测
ls/find/grep列目录、按 glob 找路径、搜文件内容只读,一般放行

这些工具对模型的描述文案同样定义在 tool_pack.py 中。想要直观感受bash工具的效果,可以直接看示例 04_builtin_bash_tool.py——它演示了"普通命令直接放行、受策略管控的命令(如git push)被拦截"的完整行为。

💡 小技巧:在 Windows 上无需任何配置,Loushang 会自动把bash替换为shell(PowerShell 方言),并注册对应的提示词,见 coding_workspace_tool_profile。

二、工具治理核心:allow / ask / deny 三级决策 🔐

Loushang 的工具治理不是简单的"开或关",而是三级决策,由策略引擎 engine.py 实现:

  1. allow(放行):默认行为,读取类操作和普通命令直接执行;
  2. ask(审批):弹出确认,用户点头才执行——适合git push、删文件这类有副作用的操作;
  3. deny(拦截):直接抛出PermissionError,命令根本不执行。

策略引擎支持 8 组配置项,可分别针对"工具名、命令子串、路径子串、能力 ID"设置 block 和 ask 两种级别:

{ "tools": { "blocked_tools": ["write"], "ask_tools": ["bash"], "ask_substrings": ["git push"], "blocked_substrings": ["rm -rf /"], "ask_path_substrings": [".env"], "blocked_path_substrings": ["~/.ssh"] } }

这 9 个可持久化字段(含approval_mode、approval_reason)的完整定义见 ToolSettings,配置读写编解码逻辑在 _settings_codec.py。官方组件接口文档对策略边界的说明见 tools.md:

全局策略引擎会传入 bash / read / write / edit / ls / find / grep。默认策略保持 allow;配置blocked_tools后,内建工具在实际执行或文件变更前抛出PermissionError;ask_tools/ ask path / ask command 则由审批 resolver 处理。

三、三档权限 Profile:新手最省心的配置方式 ⚡

如果你不想逐条写策略,Loushang 提供三档开箱即用的权限 Profile(定义见 permissions.py):

Profile行为适合场景
cautious对write/edit等工作区写入也要审批初次使用、不熟悉的项目
standard常规工作放行,删除/发布/提权/密钥/外部副作用才询问(默认档)日常开发
full_access跳过自由审批弹窗,但管理端的 deny 与沙箱限制仍然生效受控环境下的批量任务

在配置中只需一行:

{ "permissions": { "profile": "cautious" } }

注意:Profile 只是"信任上限内的用户偏好",管理端策略(Policy)的 deny 永远优先——这保证了即使选了full_access,安全边界也不会被绕过。

四、内置效果检测:哪些操作会自动触发审批?🕵️

除了显式规则,Loushang 还有一层启发式效果检测(effects_detection.py),即使你什么都没配置,以下操作也会被识别并进入 ask:

  • 破坏性操作:rm/rmdir/shred/truncate/unlink,git reset --hard、git clean -f、git branch -D
  • 发布类操作:git push、gh的写操作、docker push、twine upload
  • 提权操作:sudo、su、mount、systemctl等
  • 密钥访问:读取.ssh、.aws、.env、credentials.json等敏感路径,或暴露API_KEY、TOKEN类环境变量
  • 外部副作用:curl | sh这类"下载即执行"、ssh/scp远程操作、包管理器 install/update

这意味着新手即使零配置,git push origin main这类命令也默认会被拦下询问——正如示例 04_builtin_bash_tool.py 中演示的那样。

五、能力开关技巧:--no-tools 与 capabilities 🎛️

除了策略层,还有两个更粗粒度的"能力开关":

  • --no-tools:彻底关闭会话的工具能力(模式归一化逻辑见 bootstrap.py),适合纯问答式会话,省 token 也更安全;
  • capabilities配置:控制可选能力包(如架构分析coding.arch、LSP 语义查询coding.lsp)的激活策略,取值为on_demand(默认,按需手动激活)、always(常驻)、disabled(不注册)。命令行可用--capability coding.arch=always临时覆盖,配置写法为{"capabilities": {"coding.arch": "always"}}。

⚠️ 注意:能力常驻只是"增量加入默认工具集",不会替换内置工具,也不会绕过--no-tools、会话白名单或策略/审批边界。

六、上手路线图与延伸阅读 📚

  1. 跑一遍 examples/coding/04_builtin_bash_tool.py,观察 bash 工具的放行与拦截;
  2. 把权限 Profile 从standard调到cautious,感受 write/edit 的审批流程;
  3. 按需添加 1~2 条ask_substrings(如git push),其余交给内置效果检测兜底。

深入资料:

  • 工具组件接口文档:tools.md
  • 策略引擎源码:engine.py、效果检测:effects_detection.py
  • 权限 Profile:permissions.py
  • 策略引擎与权限行为的测试用例:test_policy_engine.py、test_permission_behavior_acceptance.py

掌握"工具集 + 三档 Profile + 策略子串"这三层开关,你就能在 Loushang 中为不同项目、不同信任级别定制出既高效又安全的 AI 编程工作台。

【免费下载链接】loushang

AI-native agent harness for coding workflows by python: multi-model LLM orchestration, stateful sessions, tool governance, traceable delivery, and provider routing for GPT, Claude, DeepSeek, Qwen, Kimi, GLM, and MiniMax.

项目地址:https://gitcode.com/gh_mirrors/lo/loushang
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询