当前位置: 首页 > news >正文

Eino Tool 开发:三种姿势,我踩过的坑

Eino Tool 开发:三种姿势,我踩过的坑

最近在用 Eino 做 Agent 开发,发现创建 Tool 有三种方式。踩了一些坑,记录一下。

为什么需要 Tool?

LLM 本身只能处理文本,想让它查数据库、调 API、操作文件?这些都需要 Tool。

简单说:Tool 就是给 LLM 装上的"手",让它能干实事。

Eino 里创建 Tool 有三种方式,各有优劣,选对了事半功倍。

先说结论

不想看长文的直接看这里:

  • 赶时间/写 demoInferTool,一行搞定
  • 要控制参数描述NewTool,手动定义
  • 正经项目:实现接口,别偷懒

下面详细说。


方式一:InferTool

这个最省事,从函数签名自动推断工具定义。

// 定义参数结构体,tag 里写描述typeUserUpdateParamsstruct{UserIDstring`json:"user_id" jsonschema_description:"用户ID"`Name*string`json:"name,omitempty" jsonschema_description:"用户名"`Email*string`json:"email,omitempty" jsonschema_description:"邮箱地址"`}// 处理函数funcUpdateUserFunc(_context.Context,params*UserUpdateParams)(string,error){// 业务逻辑return`{"msg": "ok"}`,nil}// 一行创建工具updateTool,_:=utils.InferTool("update_user","更新用户信息",UpdateUserFunc)

优缺点

优点缺点
代码最简洁,一行创建依赖jsonschema_descriptiontag,容易遗漏
自动生成 JSON Schema,类型安全参数描述分散在 struct 中,不便于集中管理
函数签名改了自动同步无法注入外部依赖(db、cache 等)
编译期检查参数类型不支持枚举值(Enum)

适用场景:写 demo、快速原型、参数结构简单且无外部依赖的工具。


方式二:NewTool

手动定义 ToolInfo,然后挂个函数上去。

// 参数结构体typeUserCreateParamsstruct{Namestring`json:"name"`Rolestring`json:"role"`}// 处理函数funcCreateUserFunc(_context.Context,params*UserCreateParams)(string,error
http://www.jsqmd.com/news/544731/

相关文章:

  • 公司网站建设流程 - 码云数智
  • Akagi雀魂AI助手:5分钟快速搭建你的智能麻将教练系统
  • 闲置大润发购物卡别吃灰,浅谈保姆级提现攻略 - 淘淘收小程序
  • Nunchaku-flux-1-dev多模态协同架构:未来支持‘语音描述→文字转译→图像生成’端到端链路
  • 避坑指南:Selenium爬取动态网页时遇到的5个典型问题及解决方案
  • 2026年防火铝塑板厂家推荐:大型工程采购高性价比与稳定供应靠谱供应商分析 - 十大品牌推荐
  • 别再踩坑了!MinGW、LLVM、Clang、GCC… 这些编译工具到底是啥?一篇大白话讲透
  • 2025-2026年低温锂电池厂家推荐:工业特种车辆低温启动高性价比方案分析 - 十大品牌推荐
  • iText7中文渲染完全指南:从乱码到多语言排版的技术突破
  • 2026年新疆钢模板/塑料模板/塑钢模板选购指南:行业趋势、优质品牌推荐及采购全攻略 - 2026年企业推荐榜
  • VSCode界面美化指南:使用vscode-background打造个性化编辑器环境
  • 2026年HIPS板材厂家推荐:常州顺唯尔材料科技,多领域应用HIPS板材全系解决方案 - 品牌推荐官
  • Odoo登录白名单限制
  • 【人形机器人】软件级能量效率优化与软驱动方法研究综述
  • 从CPU到GPU:手把手教你用CUDA在Jetson Nano上加速矩阵乘法(附完整代码)
  • 终极指南:5分钟掌握LangGPT结构化提示词框架,让AI真正听懂你说话
  • Python切片全解析:从基础到高阶的完整指南
  • ncmdump:解锁音乐自由的开源技术方案
  • 常用 Linux Debug 命令总结
  • Qwen2.5-7B-Instruct开源大模型实战:Streamlit本地化部署完整指南
  • Linux文件权限系统详解与实战应用
  • 2026年推拉/电动/移动/遮阳/伸缩雨棚厂家推荐:安阳锦旺钢结构有限公司全系产品解析 - 品牌推荐官
  • VSCode+PlatformIO环境下,用Gui Guider 1.9.0给ESP32驱动ST7789屏幕(附中文显示避坑指南)
  • 基于C#.NET编写的FTP客户端,界面是WPF框架,支持遍历FTP服务器目录,文件下载,上传...
  • 多家实测,选机不纠结:2026茶饮连锁商用咖啡机推荐 - 品牌2026
  • OpenClaw私有化部署:Qwen3-VL:30B+飞书智能助手搭建
  • OpenClaw定时任务实战:Qwen3-32B私有镜像实现24/7监控
  • 抖音批量下载器终极指南:3分钟学会无水印批量下载
  • 2026年过滤器厂家实力推荐:河南纵达过滤设备,碳钢/不锈钢/气体/液体过滤器全系供应 - 品牌推荐官
  • WinEdt 6.0 零基础入门:从安装到第一个LaTeX文档的完整指南