Release Notes: v0.6.0¶
Release Date: 2026-04-26
Overview¶
OmniAgent v0.6.0 introduces major infrastructure improvements including persistent sessions, context management, event hooks, scheduled jobs, and platform abstractions. Storage has been migrated to the unified omnistorage-core package.
Highlights¶
- Sessions - Persistent conversation history with automatic loading/saving
- Context Engine - Token-aware context management with sliding windows
- Event Hooks - React to agent lifecycle events (session created, message processed, etc.)
- Cron Scheduler - Schedule periodic tasks with cron expressions, intervals, or one-time execution
- Platform Abstraction - Deploy agents to different environments (standalone, serverless)
- Storage Migration - Unified storage via
omnistorage-core/kvs
New Features¶
Persistent Sessions¶
Maintain conversation history across agent restarts:
agent, _ := omniagent.NewAgent(
omniagent.WithSessionStore(sessionStore),
)
// Process with session history
response, err := agent.ProcessWithSession(ctx, "session-123", "Hello!")
Sessions automatically load history on start and save after each exchange.
Context Management¶
Token-aware context compilation with sliding window support:
import "github.com/plexusone/omniagent/context"
engine := context.NewEngine(context.Config{
MaxTokens: 4096,
WindowPolicy: context.SlidingWindow,
})
// Compile context within token budget
messages := engine.Compile(ctx, history, systemPrompt)
Event Hooks¶
React to agent events for logging, analytics, or custom behavior:
import "github.com/plexusone/omniagent/hooks"
registry := hooks.NewRegistry()
registry.On(hooks.EventSessionCreated, func(ctx context.Context, event hooks.Event) {
log.Printf("New session: %s", event.SessionID)
})
registry.On(hooks.EventMessageProcessed, func(ctx context.Context, event hooks.Event) {
log.Printf("Processed message in %v", event.Duration)
})
agent, _ := omniagent.NewAgent(
omniagent.WithHooks(registry),
)
Cron Scheduler¶
Schedule periodic agent tasks:
import "github.com/plexusone/omniagent/cron"
scheduler := cron.NewScheduler()
// Cron expression
scheduler.Schedule("daily-report", "0 9 * * *", func(ctx context.Context) error {
return agent.Process(ctx, "system", "Generate daily report")
})
// Interval-based
scheduler.Every("health-check", 5*time.Minute, healthCheckFunc)
// One-time
scheduler.Once("reminder", time.Now().Add(1*time.Hour), reminderFunc)
scheduler.Start()
Platform Abstraction¶
Deploy agents to different environments:
import "github.com/plexusone/omniagent/platform/standalone"
platform := standalone.New(standalone.Config{
Addr: ":8080",
})
// Run agent on platform
platform.Run(ctx, agent)
Breaking Changes¶
Storage Migration¶
The local storage/ package has been removed in favor of omnistorage-core/kvs:
// Old (v0.5.0)
import "github.com/plexusone/omniagent/storage"
store := storage.NewSQLiteBackend("./data.db")
// New (v0.6.0)
import "github.com/plexusone/omnistorage-core/kvs/backend/sqlite"
store, _ := sqlite.New(sqlite.Config{Path: "./data.db"})
Dependency Changes¶
| Package | Change |
|---|---|
omnistorage-core |
Added v0.3.0 |
robfig/cron/v3 |
Added for scheduling |
modernc.org/sqlite |
Now indirect (via omnistorage-core) |
Upgrade Guide¶
From v0.5.0¶
- Update your dependency:
- Migrate storage imports:
// Replace
import "github.com/plexusone/omniagent/storage"
// With
import "github.com/plexusone/omnistorage-core/kvs"
- (Optional) Add session support:
agent, _ := omniagent.NewAgent(
omniagent.WithSessionStore(store),
)
// Use ProcessWithSession for stateful conversations
response, _ := agent.ProcessWithSession(ctx, sessionID, message)
Documentation¶
New guides added:
Planning Documents¶
Historical planning documents for this release:
Full Changelog¶
See CHANGELOG.md for the complete list of changes.