Skip to content

Release Notes: v0.5.0

Release Date: 2026-04-19

Overview

OmniAgent v0.5.0 introduces a compiled skills system, storage abstraction layer, and functional options pattern for more flexible agent configuration.

Highlights

  • Compiled Skills - Register Go functions directly as tools without YAML/SKILL.md parsing
  • Storage Abstraction - Pluggable storage backends (SQLite, in-memory) for agent state
  • Functional Options - Clean configuration API with WithCompiledSkills, WithStorage, etc.

New Features

Compiled Skills System

Register Go functions as tools that the agent can invoke:

import "github.com/plexusone/omniagent/skills"

// Define a compiled skill
weatherSkill := skills.CompiledSkill{
    Name:        "get_weather",
    Description: "Get current weather for a location",
    Parameters: map[string]any{
        "type": "object",
        "properties": map[string]any{
            "location": map[string]any{"type": "string"},
        },
        "required": []string{"location"},
    },
    Handler: func(ctx context.Context, args map[string]any) (string, error) {
        location := args["location"].(string)
        return fetchWeather(location)
    },
}

// Register with the skills registry
skills.RegisterCompiled(weatherSkill)

Storage Interface

Pluggable storage backends for agent state persistence:

import "github.com/plexusone/omniagent/storage"

// SQLite backend (default)
sqliteStore, _ := storage.NewSQLiteBackend("./omniagent.db")

// In-memory backend (for testing)
memStore := storage.NewMemoryBackend()

// Use with agent
agent, _ := omniagent.NewAgent(
    omniagent.WithStorage(sqliteStore),
)

Functional Options

Clean API for agent configuration:

agent, err := omniagent.NewAgent(
    omniagent.WithModel("gpt-4o"),
    omniagent.WithCompiledSkills(weatherSkill, searchSkill),
    omniagent.WithStorage(sqliteStore),
    omniagent.WithObservability(observeHook),
)

Bug Fixes

  • Fixed Docker container timeout handling in sandbox executor
  • Fixed linting errors for errcheck and gofmt compliance

Build Changes

  • Switched to pure-Go SQLite driver (modernc.org/sqlite) for better cross-platform support
  • No CGO required for SQLite functionality

Dependency Upgrades

Package From To
omnillm v0.13.0 v0.15.2
omnivoice v0.5.1 v0.7.2
omnichat v0.3.0 v0.6.0
omniobserve v0.7.0 v0.8.0

Provider Consolidation

The OpenAI and Twilio providers have been consolidated:

  • omnillm-openaiomni-openai/omnillm
  • omnivoice-openaiomni-openai/omnivoice
  • omnivoice-twiliotwilio-go/omnivoice

This is an internal change with no impact on the OmniAgent API.

Upgrade Guide

From v0.4.0

  1. Update your dependency:
go get github.com/plexusone/omniagent@v0.5.0
go mod tidy
  1. (Optional) Migrate to functional options:
// Old style
agent := &omniagent.Agent{
    Model: "gpt-4o",
}

// New style (recommended)
agent, _ := omniagent.NewAgent(
    omniagent.WithModel("gpt-4o"),
)
  1. (Optional) Add compiled skills for better performance:
// Instead of parsing SKILL.md files at runtime
skills.RegisterCompiled(myGoSkill)

Full Changelog

See CHANGELOG.md for the complete list of changes.