Skip to content

Release Notes: v0.8.0

Release Date: 2026-05-03

Overview

OmniAgent v0.8.0 introduces OpenAPI remote skill support, enabling agents to connect to any API with an OpenAPI 3.x specification. Operations from the spec are automatically exposed as agent tools.

Highlights

  • OpenAPI Skills - Parse OpenAPI 3.x specs and expose API operations as agent tools
  • Multiple Auth Methods - Support for API key, Bearer token, and Basic authentication
  • Operation Filtering - Include/exclude specific operations by ID or tag

New Features

OpenAPI Skill Support

Register OpenAPI specifications to expose API operations as tools:

import (
    "github.com/plexusone/omniagent/agent"
    openapi "github.com/plexusone/omniagent/skills/remote/openapi"
)

agent, err := agent.New(config,
    agent.WithOpenAPISkill(openapi.Config{
        Name:    "petstore",
        SpecURL: "https://petstore3.swagger.io/api/v3/openapi.json",
        Auth: openapi.AuthConfig{
            Type:   openapi.AuthBearer,
            Token:  os.Getenv("API_TOKEN"),
        },
    }),
)

Authentication Options

Multiple authentication methods are supported:

// API Key (header or query)
Auth: openapi.AuthConfig{
    Type:       openapi.AuthAPIKey,
    APIKey:     "your-api-key",
    APIKeyName: "X-API-Key",  // default
    APIKeyIn:   "header",     // or "query"
}

// Bearer Token
Auth: openapi.AuthConfig{
    Type:  openapi.AuthBearer,
    Token: "your-bearer-token",
}

// Basic Auth
Auth: openapi.AuthConfig{
    Type:     openapi.AuthBasic,
    Username: "user",
    Password: "pass",
}

Operation Filtering

Control which operations are exposed as tools:

// Include only specific operations
agent.WithOpenAPISkill(openapi.Config{
    Name:              "api",
    SpecURL:           "https://api.example.com/openapi.json",
    IncludeOperations: []string{"getUser", "listUsers"},
})

// Filter by tags
agent.WithOpenAPISkill(openapi.Config{
    Name:        "api",
    SpecURL:     "https://api.example.com/openapi.json",
    IncludeTags: []string{"users", "accounts"},
})

// Exclude specific operations
agent.WithOpenAPISkill(openapi.Config{
    Name:              "api",
    SpecURL:           "https://api.example.com/openapi.json",
    ExcludeOperations: []string{"deleteUser", "adminEndpoint"},
})

New Agent Options

Option Description
WithOpenAPISkill(Config) Register an OpenAPI spec as agent tools

OpenAPI Configuration

Field Description
Name Skill identifier (must be unique)
Description Human-readable description
SpecURL URL to fetch OpenAPI spec
SpecFile Path to local OpenAPI spec file
BaseURL Override the server URL from spec
Auth Authentication configuration
IncludeOperations Filter to specific operation IDs
ExcludeOperations Exclude specific operation IDs
IncludeTags Filter to operations with tags
LazyLoad Defer spec loading until first use
RequestTimeout Timeout for API requests (seconds)

Dependency Upgrades

Package From To
omnichat v0.6.0 v0.6.1
omnivoice v0.7.2 v0.8.0
omniserp v0.8.0 v0.8.1
go-sdk v1.5.0 v1.6.0
kin-openapi - v0.137.0 (new)

Upgrade Guide

From v0.7.0

  1. Update your dependency:
go get github.com/plexusone/omniagent@v0.8.0
go mod tidy
  1. (Optional) Add OpenAPI skills:
import openapi "github.com/plexusone/omniagent/skills/remote/openapi"

agent, err := agent.New(config,
    agent.WithOpenAPISkill(openapi.Config{
        Name:    "myapi",
        SpecURL: "https://api.example.com/openapi.json",
    }),
)

Full Changelog

See CHANGELOG.md for the complete list of changes.