你可能会说:
- “AI 是怎么"查数据库""读文件"的?它不是只会说话吗?”
- “怎么防止 Agent 执行危险的操作?”
它是什么
你先向模型声明有哪些工具、各自需要什么参数。模型在回答过程中决定要用哪个工具,你的程序真正去执行,然后把结果喂回给模型,它再继续往下写。
因为执行权在你的程序手里,这里就是加限制的地方:只开放必需的工具;每次调用前检查工具名和参数,比如读文件只允许读某个目录;危险操作一律拒绝。
拦截要放在代码里,不能只靠提示词。提示词里写"不要读其他目录"只是请求,工具调用前的检查才是限制。
打个比方
像老板打电话吩咐秘书:"帮我查一下张三的电话。"老板不碰通讯录,查不查、能查哪本,由秘书那边决定。
在这个网站里
兄弟项目 E2E Review 的导师只开放了读取、搜索和查词条之类的工具,执行命令、写文件、上网都被禁止;每次调用前,一个钩子函数会再核对一遍工具名。页面上的"正在查词条"提示,就是收到工具调用事件时显示的(第 18 课)。
容易搞混的地方
常见误解
在提示词里说清楚"不要做什么",模型就不会做
正确理解
提示词只是请求。真正的限制,要在工具执行之前用代码检查并拒绝。
你可以这样告诉 AI
复制下面这段,贴给你的 AI
列出这个 Agent 能调用的每个工具:做什么、参数是什么、能访问的范围、会不会写数据。哪些调用在执行前会被代码拦下来?给我一个测试,证明越界的调用确实被拒绝了。
接下来去哪
先知道
- 智能体——一个会自己决定下一步做什么的程序:大模型负责思考,工具负责动手,循环往复直到完成任务。
接着看
- MCP——一套给 AI 接工具的通用约定:按它的格式把工具包装好,支持它的 AI 程序就都能调用。
- 钩子——在 Agent 的某个动作之前或之后自动执行的一段代码;插在工具调用之前,就能拦下不该做的事。
在这些课里出现
相关的真实事故