AI工具基础层

为ApertureStack AI工具生态系统提供基础层支持,包括工具模型定义、格式转换和版本管理。

  • by jonwraymond
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 jonwraymond/toolfoundation

使用说明

工具基础

基础层 孔径堆栈 人工智能工具生态系统。

安装

go get github.com/jonwraymond/toolfoundation

包裹

包装 描述
model 规范MCP工具模式定义和验证
adapter 协议无关工具格式转换(MCP、OpenAI、Anthropic)
version 语义版本控制、约束、兼容性矩阵

快速开始

定义工具

import (
    "github.com/jonwraymond/toolfoundation/model"
    "github.com/modelcontextprotocol/go-sdk/mcp"
)

tool := model.Tool{
    Namespace: "github",
    Tool: mcp.Tool{
        Name:        "list_repos",
        Description: "List repositories for a user",
        InputSchema: map[string]any{
            "type": "object",
            "properties": map[string]any{
                "username": map[string]any{"type": "string"},
            },
            "required": []string{"username"},
        },
    },
    Version: "1.0.0",
}

if err := tool.Validate(); err != nil {
    log.Fatal(err)
}

在格式之间转换

import "github.com/jonwraymond/toolfoundation/adapter"

registry := adapter.DefaultRegistry()

// Convert MCP tool to OpenAI format
result, err := registry.Convert(tool, "mcp", "openai")
if err != nil {
    log.Fatal(err)
}

// Check for feature loss warnings
for _, w := range result.Warnings {
    log.Printf("Warning: %s", w)
}

openaiTool := result.Tool.(*adapter.OpenAITool)

版本约束

import "github.com/jonwraymond/toolfoundation/version"

v := version.MustParse("1.5.0")
constraint, _ := version.ParseConstraint("^1.0.0")

if constraint.Check(v) {
    fmt.Println("Version is compatible")
}

文档

特性

  • MCP对齐:工具类型嵌入官方MCP SDK类型
  • 协议无关:在MCP、OpenAI和Anthropic格式之间转换
  • 特征丢失可见性:当目标格式缺少源功能时发出警告
  • JSON模式验证:内置模式验证(2020-12和draft-07)
  • 最小依赖性:具有最小外部依赖性的基础层

许可证

MIT许可证-请参阅 许可证