工具执行框架

toolexec是一个为ApertureStack工具框架提供工具运行、代码编排和运行时隔离的执行层。

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

使用说明

toolexec

执行层提供工具运行、代码编排和运行时 ApertureStack工具框架的隔离。

安装

go get github.com/jonwraymond/toolexec@latest

包裹

包装 描述
exec 结合发现与执行的统一外观
run 具有验证和链接的核心执行管道
code 具有工具访问权限的基于代码的编排
runtime 沙盒运行时和安全配置文件
backend 后端注册表和解析

快速开始

import (
    "github.com/jonwraymond/toolexec/exec"
    "github.com/jonwraymond/tooldiscovery/index"
    "github.com/jonwraymond/tooldiscovery/tooldoc"
)

idx := index.NewInMemoryIndex()
docs := tooldoc.NewInMemoryStore(tooldoc.StoreOptions{Index: idx})

executor, err := exec.New(exec.Options{
    Index: idx,
    Docs:  docs,
    LocalHandlers: map[string]exec.Handler{
        "math-add": func(ctx context.Context, args map[string]any) (any, error) {
            a, b := args["a"].(float64), args["b"].(float64)
            return a + b, nil
        },
    },
})

result, err := executor.RunTool(ctx, "math:add", map[string]any{"a": 5, "b": 3})
fmt.Println(result.Value) // 8

特性

  • 统一立面:用于发现、执行和文档编制的单个API
  • 模式验证:根据工具模式验证输入/输出
  • 后端抽象:本地、提供者或MCP服务器执行
  • 工具链:具有显式数据传递的顺序链
  • 运行时隔离:Docker、gVisor和WASM运行时

文档

例子

go run ./examples/basic
go run ./examples/chain
go run ./examples/discovery
go run ./examples/streaming
go run ./examples/runtime
go run ./examples/full

许可证

MIT许可证-请参阅 许可证