Portal Community

What It Persists

Agent Configurations

System prompt, LLM model, memory settings, tool assignments, area memberships. The source of truth for all agent behaviour.

Episodic Memory

Conversation episodes and individual messages — the long-term conversation history recalled into context on each turn.

Procedural Memory

Named skill sequences that guide agents through multi-step processes. Matched by intent and injected as system instructions.

AI Functions

JavaScript snippets stored in the database and exposed to agents as MCP tools. Editable at runtime without deployment.

Areas

Logical deployment boundaries grouping agents, knowledge, and users. Each area is a row with its routing and isolation config.

In-Memory vs SQL Server

AspectIn-Memory (default)SqlServerPlugin
Data survives restartNoYes
Multi-instance deploymentNo (per-process state)Yes (shared DB)
Production useDev/test onlyRequired
EF Core migrationsNot applicableRun on each startup
Tenant isolationNot enforcedTenantId on every row

Plugin Registration

// Program.cs — SqlServerPlugin must be the first plugin registered
builder.Services.AddOctopus(config =>
{
    config.AddPlugin<SqlServerPlugin>();   // Must be first

    config.AddPlugin<SemanticKernelPlugin>();
    config.AddPlugin<ChatbotUIPlugin>();
    // ... other plugins
});

Services Provided to Other Plugins

Service InterfaceImplementationConsumers
OctopusDbContextEF Core DbContextAll plugins that access Octopus tables
IEpisodicMemoryStoreSqlEpisodicMemoryStoreMemoryOrchestrator, conversation engine
IProceduralMemoryStoreSqlProceduralMemoryStoreMemoryOrchestrator, agent reasoning loop
IAgentStoreSqlAgentStoreAll agent resolution paths
IAIFunctionStoreSqlAIFunctionStoreAI Function runtime, tool registry
IAreaStoreSqlAreaStoreArea routing, user access checks
Required for production. Never deploy Octopus to production without SqlServerPlugin. The in-memory fallback is intentionally limited and loses all data on restart.