AI News

DeepSeek工具调用教程:让大模型安全执行任务

用天气示例扩展到真实业务,讲清DeepSeek Tool Calls的定义、校验、执行与审计。

DeepSeek工具调用教程:让大模型安全执行任务

Tool Calls让DeepSeek不只生成文字,还能请求应用调用天气、库存、订单或数据库工具。官方示例展示了模型选择函数、生成参数、应用执行函数,再把结果交回模型的完整循环。很多初学者把它理解成“模型直接操作系统”,其实真正执行动作的是自己的程序。模型只提出结构化调用建议,因此安全边界必须由应用控制。

一、工具定义决定调用质量

每个工具需要名称、清晰描述和JSON参数结构。名称应稳定且表达动作,例如get_order_status,不要使用含糊的process。描述要写明使用条件和限制,参数区分必填与可选,并给出类型、枚举和格式。工具过多会增加选择难度,应只把当前任务可能用到的工具交给模型。相近工具可以合并,但不要做成一个无边界的万能执行器。

二、模型参数必须再次校验

即使返回内容符合JSON,也不能直接执行。服务端必须验证字段类型、长度、范围和用户权限。例如订单查询的order_id要符合格式,并确认订单属于当前用户;日期要限制合理区间;文件路径不能允许跳出指定目录。验证失败时把明确错误作为工具结果返回,让模型询问用户补充,而不是自行猜测。

三、读工具与写工具分开

读取天气、查询库存等操作通常风险较低,创建订单、退款、删除文件则属于写操作。建议在工具命名和权限层面分开,写操作默认需要人工确认。模型可以先生成执行预览,列出对象、金额和影响,用户确认后后端再调用真实工具。不要只依靠提示词“禁止误删”,权限控制必须落在代码中。

四、完整消息循环怎么工作

第一次请求包含用户消息和工具列表。模型若需要外部数据,会返回工具名称与参数。应用执行后,把工具结果以对应消息类型加入历史,再发起第二次请求,模型据此生成最终回答。必须保留调用ID的对应关系,避免多个并行工具结果错位。工具失败时返回结构化错误,包括错误码和可否重试,不要伪造成正常结果。

五、思考模式下的注意事项

官方文档说明新版模型支持在思考模式中使用工具。应用仍应只依赖正式的工具调用字段,不要解析自然语言推理来决定动作。推理内容可能变化,也不适合作为稳定接口。真正需要记录的是用户请求、选择的工具、经过校验的参数、执行结果和最终答复,这些信息足以审计业务流程。

六、避免无限循环和重复执行

设置每次任务最多工具调用次数,并为写操作提供幂等键。网络超时后不能简单重放退款或下单请求,应先查询原操作状态。若模型连续请求同一工具且参数不变,系统应停止并报告异常。对于链式任务,可要求每一步都返回状态,但最终是否继续由程序中的规则判断。

七、从天气示例扩展到业务

可以先实现三个只读工具:查询产品、查询库存、查询订单。测试稳定后再加入创建售后草稿,但不直接提交。用户说“我的手表还没到”时,模型先请求订单号;应用验证归属后查询物流;如果符合条件,再提出售后选项。每一步都有明确数据来源和权限,比让模型凭对话自行判断可靠得多。

八、上线前如何测试

测试正常调用、缺少参数、错误类型、越权对象、工具超时、重复请求和恶意提示。检查模型没有工具时是否会诚实说明,工具失败时是否会虚构结果。为每个工具记录成功率、延迟和失败原因。Tool Calls的价值在于把语言理解与确定性程序连接起来,而不是让不确定的模型绕过程序规则。

资料来源:官方资料。本文依据官方信息独立整理与扩展,结合实际使用场景进行说明。

Next Reading

继续深入这个主题

从专题、教程和热门关键词继续阅读,帮助搜索引擎和读者理解文章之间的关系。

ChatGPT / GPT Claude Gemini DeepSeek AI Agent 大模型 AI赚钱 开发者