Hasty Briefsbeta

双语

How AI tool calling works (40 lines of vanilla JavaScript)

9 hours ago
  • 工具调用通过让聊天模型以结构化文本请求函数调用,将其转变为智能代理,而不是让模型运行代码本身。
  • 核心循环包括四个步骤:模型生成工具调用请求,您的程序执行该函数,返回工具结果,并重复此过程,直到模型给出文本回答。
  • 不存在隐藏的记忆或规划;对话数组是整个状态,而循环就是程序。
  • 工具描述是JSON Schema中的提示;编写良好的描述可防止模型误用工具。
  • 工具结果以“用户”角色追加,而且回应必须完整追加,保留所有内容块以保证质量。
  • 随着对话重新发送此前所有消息,成本呈二次方增长;修剪工具结果和使用前缀缓存(cache_control)可节省大量令牌和资金。
  • 四条规则:始终回应用户的工具调用(包括错误),在一个消息中返回所有结果,完整地追加答复,并设置循环迭代上限以避免成本失控。
  • 虽然软件开发工具包提供了内置的工具执行器(例如Python/TS中的toolRunner),但自己编写一次循环对于理解和调试至关重要。
  • 练习:使用包含21个工具和虚拟文件系统的测试套件进行实践,并故意制造问题来学习,同时采用如/wipe和/undo等安全措施。
  • 下一步:完善工具描述(课程2的后续),探索循环与目标(课程3),并学习上下文管理(课程5)。