Release Notes: v0.9.0¶
Release Date: 2026-05-25
Overview¶
OmniAgent v0.9.0 introduces bootstrap profiles, policy enforcement, GPU support, and enhanced browser automation. This release focuses on security, flexibility, and resource optimization.
Highlights¶
- Bootstrap Profiles - Customize agent behavior with profiles for different use cases
- Lean Mode - Reduce memory and token usage for constrained environments
- Tool Policies - Per-sender access control with rate limiting
- Channel Policies - Message validation and content filtering
- GPU Passthrough - Run GPU-accelerated workloads in Docker sandbox
- Browser Dialogs - Handle JavaScript alerts, confirms, and prompts
- Gateway RPC - HTTP endpoint for tool invocation
- Vault Credentials - Secure credential resolution from password managers
New Features¶
Bootstrap Profiles¶
Configure agent behavior for specific use cases:
import "github.com/plexusone/omniagent/agent/profiles"
profile := &profiles.BootstrapProfile{
Name: "customer-support",
SystemPromptPrefix: "You are a customer support agent.\n",
AllowedTools: []string{"search_kb", "create_ticket"},
DeniedTools: []string{"shell", "browser"},
ToolPolicies: map[string]profiles.ToolPolicy{
"create_ticket": {RequiresConfirmation: true},
},
}
a, err := agent.New(config, agent.WithProfile(profile))
Lean Mode¶
Optimize for constrained environments:
leanMode := profiles.NewLeanMode(profiles.LeanLevelModerate)
a, err := agent.New(config, agent.WithLeanMode(leanMode))
| Level | Memory Reduction | Use Case |
|---|---|---|
Off |
None | Default |
Light |
~15% | Slightly constrained |
Moderate |
~35% | Mobile/embedded |
Aggressive |
~60% | Severely constrained |
Tool Policies¶
Per-sender tool access control:
import "github.com/plexusone/omniagent/tools/policy"
manager := policy.NewManager()
manager.SetPolicy("guest", &policy.Policy{
AllowedTools: []string{"search"},
DeniedTools: []string{"shell", "browser"},
RateLimit: &policy.RateLimit{
MaxCalls: 10,
Window: time.Minute,
},
})
Channel Policies¶
Message validation and content filtering:
import "github.com/plexusone/omniagent/channels/policy"
checker := policy.NewConformanceChecker(config)
checker.AddRule(policy.ConformanceRule{
Name: "rate-limit",
Action: policy.ActionRateLimit,
RateLimit: &policy.RateLimit{MaxMessages: 60, Window: time.Minute},
})
GPU Passthrough¶
Run GPU-accelerated workloads in Docker:
sandbox, err := sandbox.NewDockerSandbox(ctx, sandbox.DockerConfig{
Image: "nvidia/cuda:12.0-base",
GPU: &sandbox.GPUConfig{
Enabled: true,
DeviceIDs: []string{"0"},
Capabilities: []string{"compute", "utility"},
},
})
Browser Dialog Handling¶
Interact with JavaScript dialogs:
tool, err := browser.New(browser.Config{
DialogCallback: func(d browser.Dialog) {
log.Printf("Dialog: %s - %s", d.Type, d.Message)
},
})
New browser actions:
evaluate- Execute JavaScript codeget_dialogs- Retrieve dialog historydismiss_dialog- Dismiss active dialog
Gateway Tools RPC¶
HTTP endpoint for invoking tools:
handler := gateway.NewToolsRPCHandler(gateway.ToolsRPCConfig{
Agent: agent,
ObservopsProvider: provider,
})
http.Handle("/rpc/tools", handler)
Vault-Backed Credentials¶
Store credentials in password managers:
agent:
api_key: "op://MyVault/anthropic/api-key" # 1Password
channels:
telegram:
token: "bw://org-id/telegram-token" # Bitwarden
New Agent Options¶
| Option | Description |
|---|---|
WithProfile(profile) |
Set bootstrap profile |
WithProfileRegistry(registry) |
Enable dynamic profile switching |
WithLeanMode(mode) |
Enable lean mode |
WithProgressReporter(reporter) |
Track tool execution progress |
WithToolPolicyManager(manager) |
Enable per-sender tool policies |
New Packages¶
| Package | Description |
|---|---|
agent/profiles |
Bootstrap profiles and lean mode |
tools/policy |
Per-sender tool access control |
channels/policy |
Channel conformance checking |
Configuration Changes¶
New Fields¶
| Field | Type | Description |
|---|---|---|
tokens.vault_uri |
string | Vault URI for OAuth tokens |
tokens.services |
map | OAuth service configurations |
Token Management¶
tokens:
vault_uri: "op://MyVault"
services:
google:
credentials_name: "google-oauth"
scopes:
- "https://www.googleapis.com/auth/calendar"
Fixes¶
- Windows CI - Desktop vault providers (1Password, Bitwarden) now conditionally imported via build tags to avoid DLL load failures on Windows CI runners
- Lint - Resolved gosec G101 warnings in test fixtures and unparam warning in browser tool
Dependency Updates¶
| Package | From | To |
|---|---|---|
anthropic-sdk-go |
v1.44.1 | v1.45.0 |
omnillm |
v0.15.3 | v0.15.4 |
omniobserve |
v0.9.0 | v0.10.0 |
omniskill |
v0.7.0 | v0.8.0 |
omnistorage-core |
v0.3.0 | v0.4.0 |
kin-openapi |
v0.137.0 | v0.139.0 |
modelcontextprotocol/go-sdk |
v1.6.0 | v1.6.1 |
grokify/mogo |
v0.74.4 | v0.74.5 |
omnivault |
- | v0.5.0 (new) |
omnivault-desktop |
- | v0.1.0 (new) |
omnitoken |
- | v0.1.0 (new) |
invopop/jsonschema |
v0.14.0 | v0.13.0 (pinned) |
jsonschema Pin
jsonschema is pinned to v0.13.0 due to an incompatibility between
v0.14.0's use of pb33f/ordered-map and anthropic-sdk-go's use of
wk8/go-ordered-map.
Desktop Vault Providers on Windows
Desktop vault providers (1Password, Bitwarden) are excluded on Windows
via build tags because their CGO dependencies require DLLs not available
in standard CI environments. Use env:// or file:// vaults on Windows.
Upgrade Guide¶
From v0.8.0¶
- Update your dependency:
- (Optional) Add profiles for different use cases:
import "github.com/plexusone/omniagent/agent/profiles"
profile := &profiles.BootstrapProfile{
Name: "default",
DeniedTools: []string{"shell"},
}
a, err := agent.New(config, agent.WithProfile(profile))
- (Optional) Add tool policies:
import "github.com/plexusone/omniagent/tools/policy"
manager := policy.NewManager()
manager.SetPolicy("guest", &policy.Policy{
AllowedTools: []string{"search", "weather"},
})
Breaking Changes¶
None. This release is fully backward compatible with v0.8.0.
Documentation¶
New guides added:
- Agent Profiles - Bootstrap profiles and lean mode
- Access Policies - Tool and channel policies
- Browser Automation - Browser tool with dialog handling
- Vault Credentials - Password manager integration with OS compatibility
Updated guides:
- Sandboxing - GPU passthrough section
- Configuration Reference - Token management
Full Changelog¶
See CHANGELOG.md for the complete list of changes.