一切从「能做什么」开始

做一个 AI Agent,最令人兴奋的时刻通常是它第一次自己调用工具。但在把工具列表交给模型前,我会先写下来:它能做什么、不能做什么,以及什么时候必须请人确认。

一个有用的 Agent 并不需要一开始就拥有无限权限。相反,权限越清晰,实验往往越容易复现。

先缩小工具集合

先做一个只读的工具箱:搜索知识库、读取公开文档、查询任务状态。等到流程稳定,再考虑创建文件、发送消息这样的写入操作。

# 演示:工具白名单,真实项目还需权限隔离与参数验证
ALLOWED_TOOLS = {"search_docs", "read_article", "list_tasks"}

def can_call(tool_name: str) -> bool:
    return tool_name in ALLOWED_TOOLS

assert can_call("search_docs")
assert not can_call("delete_all_files")

小建议:不要把「模型说它会小心」当作安全边界。真正的边界应该由模型之外的代码来执行。

把动作分成三个等级

动作等级 例子 建议
只读 查询文档、计算 可以自动执行
可撤销写入 新建草稿、更新测试记录 记录日志并限制范围
高风险操作 删除数据、发正式邮件 人工确认后再执行

做好观察,再谈智能

至少保留三类记录:用户要求、模型选择的工具、工具实际返回的结果。遇到异常时,才能定位是规划错误、参数错误,还是工具本身出错。

最后

Agent 的魅力不在于「替你点击了多少次」,而在于在可控范围内完成了多少真正有用的事。从小任务开始,持续验证,比堆一排工具更靠谱。