bf231352fb
P0-2: validate_tool_name 将 tool_manager 等列为保留名,禁止
create/update/build 作用于自身,杜绝持久化后门。
P0-3: spec_yaml 忽略调用方传入的 risk_level,由 tool_manager
产出的工具一律 high risk,避免创建低风险后门绕过审批。
审计: 每次调用追加记录到 tools/.tool_audit.log
(timestamp/user_id/action/tool_name/ok|err/detail)。
构建: 用 timeout 限制 180s,失败时删除残留旧二进制,
避免 reload 后调用旧版本造成"假成功"。
33 lines
1.2 KiB
YAML
33 lines
1.2 KiB
YAML
name: tool_manager
|
|
desc: 创建、修改和构建本地能力工具。用于给助手新增或更新 tools 目录下的 stdio Rust 工具;高风险操作,执行前需要用户确认。
|
|
type: stdio
|
|
tool: tool_manager
|
|
path: /target/release/tool_manager
|
|
risk_level: high
|
|
timeout_secs: 300
|
|
params:
|
|
- name: action
|
|
required: true
|
|
desc: 操作类型:create_tool、update_tool 或 build_tool
|
|
- name: tool_name
|
|
required: true
|
|
desc: 工具名称,只允许字母、数字、下划线和短横线
|
|
- name: description
|
|
required: false
|
|
desc: 工具说明,创建或更新 spec 时使用
|
|
- name: rust_code
|
|
required: false
|
|
desc: 完整的 src/main.rs Rust 源码;省略时 create_tool 会生成默认模板
|
|
- name: params
|
|
required: false
|
|
desc: 参数列表数组,每项包含 name、required、desc
|
|
- name: risk_level
|
|
required: false
|
|
desc: 已弃用,tool_manager 创建/更新的工具一律强制 high risk,传入值将被忽略
|
|
- name: timeout_secs
|
|
required: false
|
|
desc: 新工具超时时间秒数,默认 30
|
|
- name: overwrite
|
|
required: false
|
|
desc: create_tool 目标已存在时是否覆盖,默认 false
|