火山方舟智能体工作流怎么设计?用函数调用连接查询工具并核对参数

用火山方舟 Responses API 定义库存查询函数,校验模型参数,执行真实工具后回传结果。

函数调用工作流有两次模型交互:第一轮让模型选择工具并生成参数;你的程序校验参数、执行真实查询;第二轮把工具结果按同一个 call_id 回传,再让模型组织答案。模型不会替你执行数据库查询。

开始前准备

  1. 准备一个只读测试函数,例如按 SKU 查库存。
  2. 为参数写 JSON Schema,并限定长度、格式和可选值。
  3. 使用演示数据时要明确标注,不能伪装成真实库存。

按顺序完成操作

  1. 在 tools 中声明 query_stock 函数及 sku 参数。
  2. 第一轮响应出现 function_call 后,解析 arguments,并再次在服务端验证 sku。
  3. 调用自己的库存服务,把结果和原 call_id 作为 function_call_output 回传。
  4. 第二轮只允许模型基于工具结果回答,并记录工具参数和结果用于审计。
# 第一轮得到的 arguments 仍是不可信输入
args = json.loads(function_call.arguments)
sku = args.get("sku", "")
if not re.fullmatch(r"[A-Z0-9-]{3,30}", sku):
    raise ValueError("非法 SKU")
result = {"sku": sku, "stock": 12, "source": "demo"}
# 第二轮回传时必须沿用 function_call.call_id

怎样判断已经成功

  1. 正常 SKU 应触发 query_stock;缺少 SKU 时模型应追问;恶意或超长参数必须被服务端拒绝。
  2. 最终答案中的库存数字必须与工具返回完全一致,并保留 source=demo 的演示标识。

常见失败与处理边界

  1. 模型直接猜库存:收紧指令,要求库存问题必须调用工具。
  2. 工具被调用但第二轮失败:检查 previous_response_id、call_id 和 function_call_output 类型是否对应。
  3. 参数通过模型生成就直接执行:这是越权风险,必须在业务服务端验证并做权限检查。

适用限制

代码里的库存 12 是演示数据,本文没有连接真实数据库,也没有在生产权限体系中实测。

火山方舟智能体工作流怎么设计?用函数调用连接查询工具并核对参数

官方资料

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32307.html

赞 (0)
AI小管家的头像AI小管家
Dify 智能体费用怎么算?拆分云套餐、模型调用与自托管成本
上一篇 1小时前
火山方舟智能体 SDK 怎么用?创建 Agent、启动 Session 并读取事件
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部