96SEO 2026-08-06 20:01 2
InferToolNewToolmcp.GetToolsUser Pain Point:Lack of a concrete example makes it hard for developers to understand how to define and use a tool.
讲接口之前,先看工具实际长什么样。下面这段,是 Eino 官方示例里一个完整的工具,去掉了周边配置:
userInfoTool := utils.NewTool(
&schema.ToolInfo{
从Name来看,"user_info",Desc: "根据使用者的姓名和邮箱,查询使用者的公司、职位、薪酬信息",ParamsOneOf: schema.NewParamsOneOfByParams(map*schema.ParameterInfo{
至于"name",{Type: "string",Desc: "使用者的姓名"},"email": {Type: "string",Desc: "使用者的邮箱"}。}),},func {
return &userInfoResponse{
从Name来看,input.Name,Email: input.Email,Company: "Awesome company",Position:"CEO",Salary: "",},nil
})
# 分两半:
ToolInfo: 工具名为 user_info,用途描述还有所需参数。模型只看到这一段,
Eino 自动把模型输出的 JSON 参数解码为 Go 类型(*userInfoRequest),调用函数后再把返回值编码回 JSON 给模型。话说回来,
You only need to write “what parameters are required + how to compute”. The framework handles all JSON marshaling/unmarshaling for you.
User Pain Point:The proliferation of different tool types leads to confusion about what interface each tool should implement.
生成的是类型为 tool.InvokableTool 的对象。它是一个极简接口:
type BaseTool interface {
Info
}
type InvokableTool interface {
BaseTool
InvokableRun
}
| 方法 | 谁来调 | 干什么 | 比喻 |
|---|---|---|---|
Info | 模型或图谱建立阶段 | 返回工具说明书 | 招聘启事:我会干啥,需要哪些材料 |
InvokableRun | 框架在收到 LLM 填好的 JSON 后调用 | 执行真实业务并返回字符串结果 | 真去干活 |
`InvokableRun` 接收的是 **JSON 字符串** 而不是结构体,这是刻意设计——所有模型只会输出字符串,框架统一在此层做一次“入口”。老实说,真正把 JSON 转成 Go 类型。 由 `utils` 包内部完成。
`InvokableTool` 有一系列兄弟接口:
*绝大多数场景使用 `InvokableTool` 即可;只有需要实时流式输出或非文本结果时才考虑其他接口。*
`ParamsOneOf` 是对 JSON Schema 的封装,它支持两种写法。「二选一」:
schema.NewParamsOneOfByParams(map*schema.ParameterInfo{
说到"name",{
从Type来看,"string",Desc: "使用者的姓名",Required: true,},"email": {
至于Type,"string",Desc: "使用者的邮箱",Required: true,},})
`ParameterInfo` 能覆盖标量、数组 、嵌套对象 、枚举 等常见需求。
js := &jsonschema.Schema{
说到Type。string,Required: string{"title"},Properties:
/*…一棵完整 JSON Schema 树…*/,}
schema.NewParamsOneOfByJSONSchema
json/jsonschema tag。即可交给框架自动生成对应 JSON Schema。不过,这正是下一节 InferTool 所做的事。
Eino 的 `utils` 包提供了三个构造器,对应典型场景。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback