Files
ai-agent-deep-dive/docs/02-tools-permissions-and-execution.md
2026-04-02 10:09:34 +00:00

120 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 02. 工具、权限与执行链需求文档
## 1. 为什么工具系统是产品核心
如果模型不能操作环境,它只是建议生成器。这个产品的目标是帮助用户推进真实工程任务,因此必须具备正式的工具系统。
## 2. 工具系统需求
### 2.1 基础工具能力
产品至少需要以下工具类别:
- 读文件
- 改文件
- 写文件
- 搜索文件
- 搜索内容
- shell / 命令执行
- todo / 任务管理
- 用户追问
- 启动子 agent
- 调用外部 MCP 工具
### 2.2 工具使用规范
系统必须对模型明确规定工具使用优先级,避免:
- 用 shell 替代专用文件工具
- 误删或误改文件
- 低效重复操作
## 3. 权限系统需求
### 3.1 用户控制边界
用户必须能控制哪些工具自动允许,哪些要询问,哪些禁止。
### 3.2 权限决策来源
权限决策至少可能来自:
- 当前模式
- 用户规则
- 项目规则
- Hook 决策
- 特殊工具安全策略
### 3.3 被拒后的行为要求
如果某次工具调用被拒绝,系统不能机械重试,而应:
- 理解拒绝信号
- 调整方案
- 必要时向用户澄清
## 4. 执行链路需求
工具执行不能是“模型决定 -> 直接运行”。产品需要一条正式执行链:
1. 找到工具
2. 校验输入结构
3. 做额外 validateInput
4. 执行 PreToolUse hooks
5. 做权限决策
6. 真正执行工具
7. 记录 telemetry
8. 执行 PostToolUse hooks
9. 格式化结果回流给模型
## 5. 为什么需要 Hook
Hook 的需求本质是:
- 让组织规则进入运行时
- 让系统可以插入额外检查
- 让工具调用具备动态治理能力
### Hook 至少要支持的行为
- 返回消息
- 阻断执行
- 修改输入
- 提供 allow / ask / deny 建议
- 注入额外上下文
## 6. 为什么输入校验是必需的
模型本身会生成错误参数,因此产品必须在执行层拦住:
- schema 不合法
- 参数越界
- 缺字段
- 类型错误
## 7. shell 类工具的特殊需求
shell 工具的风险高于读写文件类工具,因此需要:
- 更严格的权限策略
- 可能的前置分类器检查
- 更强的审计能力
## 8. 工具执行结果的产品要求
工具执行结果不仅要“返回成功/失败”,还要满足:
- 可读
- 可追踪
- 能被后续 Hook 处理
- 能成为 transcript 的一部分
## 9. 伪代码表达
```python
def execute_tool(tool_name, raw_input, context):
tool = find_tool(tool_name)
validated = schema_validate(tool, raw_input)
validated = run_custom_validation(tool, validated)
hook_result = run_pre_hooks(tool, validated, context)
decision = resolve_permission(hook_result, context)
if decision == 'deny':
return denied_result()
final_input = maybe_update_input(validated, hook_result)
output = tool.call(final_input)
run_post_hooks(tool, final_input, output, context)
return output
```
## 10. 产品经理视角下的总需求句
> 工具系统必须从“可调用”升级到“可治理”既要让模型拥有执行能力也要在执行前后经过校验、权限、Hook、审计与结果回流确保整个过程安全、稳定、可追踪。