NeoAgent

Integrations and messaging architecture

Official integrations and messaging channels are separate service families. They can expose the same external product while using different credentials and data paths.

Integration registry

The integration registry loads provider implementations. A provider describes its applications, environment readiness, connection flow, tool definitions, access modes, and optional memory-ingestion support.

OAuth state is short-lived and server-stored. Connection credentials are encrypted before they are written to SQLite. Refresh responses are merged with existing credentials so providers that omit a new refresh token do not erase the durable token.

Connections are scoped by user, agent, provider, and account. Read-only access is enforced when the integration tool is executed, not through prompt wording.

Tool execution

Integration tools join the agent tool catalog when the owning agent has a usable connection. The integration manager resolves the connection, refreshes credentials when required, enforces access mode, invokes the provider, and persists updated credentials.

Memory ingestion

Providers that support background memory expose source collectors. The ingestion service creates durable jobs, fetches changed source objects, stores source documents, chunks content, and links extracted memory back to those chunks.

Provider snapshots shown in the client are decorated with ingestion coverage and status.

NeoRecall is intentionally queried on demand instead of being copied into NeoAgent memory. Its integration uses a dynamic public OAuth client with PKCE, rotating refresh tokens, and read-only scopes. The available tools call NeoRecall’s local hybrid search and evidence APIs; they cannot access audio or trigger NeoRecall’s Ask endpoint.

Messaging

Messaging providers are long-running channel adapters managed separately from official integrations. They normalize inbound messages, enforce chat and sender allowlists, create agent runs, send typing state, and deliver outbound messages.

Webhook-backed channels enter through shared HTTP routes. Native adapters can maintain sockets, polling loops, or provider-specific sessions. Personal WhatsApp integration credentials remain separate from the WhatsApp messaging bridge.