Skip to content
Vareon

Duplex and Letta,
side by side.

Letta builds stateful agents around persistent memory and learned skills. Duplex is a second intelligence beside your AI: it learns from every result and acts on it at runtime, within your rules, whichever model you use.

Comparison current as of 16 October 2026.

Every capability: Duplex and Letta.

What each one does, group by group, from what it is to what it costs.

Native
Built into how the product works at its core.
External
You provide it, or assemble it, separately.
Not native
The product’s documentation doesn’t list it as a built-in feature. A custom build may still be possible.
CapabilityDuplexLetta
What each one is
What it isA runtime intelligence beside your AI: it learns and acts for your agents and assistants, within your rulesA stateful agent platform built around persistent memory and token-space learning
What it carries forwardContext, decisions, outcomes, rules, tasks, skills and what it has learnedAgent memory, conversations, files and skills
What gets better with experienceIts next decisions: confidence, routing, recommendations, tool use and reusable knowledgeThe agent’s future behaviour, through updated memory and learned skills
Knowing what happened, and learning from itNativeIt knows what happened, and learns what to change nextBoth are there, mainly through token-space memory and skills
Learning
Continual learning without retrainingNativeIt keeps learning, outside your model’s weightsNativeToken-space and skill learning
Turn-by-turn adaptationNativeEach new result can change the next decision at onceAgent-managed memory can change continuously; skill learning follows finished experience
Learning from correctionsNativeA correction changes what Duplex does nextCorrections can update memory or feed learned skills
Learning from outcomesNativeSuccess and failure feed straight back into what it learnsPossible through reflection on trajectories and agent-managed updates
Learning from rewardsNativeA reward strengthens what worked and corrects what didn’tRewards aren’t its main way of learning
Credit for the steps behind a resultNativeIt works out which earlier actions led to a later resultLetta doesn’t offer this natively at runtime
How actions move the workNativeIt learns how each action moves the work from one state to the nextThe agent can infer this from context
Predicting what an action will doNativeFrom what it observes, it predicts what an action will do, tries alternatives and plansThe model reasons over memory
Better choices of actionNativeOutcomes improve which action it picks nextBehaviour improves through memory and skills
Reusable skillsNativeExperience becomes skills that are tested before use, and can be paused, brought back or withdrawnNativeTrajectories can become lasting skills that work with any model
Testing and managing skillsA skill is tested before it is relied on, and can be paused, brought back, withdrawn or removed for goodSkills are files you can inspect, manage and version
Generalising to related casesIt carries what it learned to related cases and new wording, and into skills it can reuseToken-space skills generalise procedures across tasks
Deciding and acting
Knowing how sure it isNativeBefore every decision, it knows how familiar the case is and how sure it isMainly the model’s judgement and how relevant memory is
Answer, hand over or declineNativeDuplex answers itself, calls your model, uses a tool or declines, within your rulesThe agent usually carries on through model reasoning
Answering familiar work itselfNativeIt makes familiar decisions itself, without another frontier-model callThe model still interprets memory or skills
Handing over what is new or uncertainNew, uncertain or sensitive work goes to the right model, tool or personThe agent and model decide when more help is needed
Planning, simulation and recommendationsNativeIt predicts what happens next, tries alternatives, builds plans and recommends actionsMainly through model reasoning and agent tools
Many agents, working togetherIt sends work to the right agent, splits it within your rules, keeps each agent to its scope and brings the results togetherAgents, subagents and shared memory are available
Learning which tools workIt learns which tools work, when to use them and what each one leads toSkills and memory can improve tool use
Tool actions within your rulesTools run only through your rules and permissionsAgent permissions and tool configuration
StreamingIt streams model and tool output, with every step still within your rulesAvailable through agent and model interfaces
Work that carries on
Learning from every step, automaticallyEvery step, through MCP + hooks or the plugins, feeds one shared learning loopThe Letta runtime stores agent conversations and actions
Context across sessionsNativeWork, decisions, tasks and the context that matters carry on across sessionsNativePersistent agents keep memory across conversations
Long-running workNativeLong work stays open across sessions and agents, with safe points to go back to, until it is finished or forgottenPersistent agents can carry on work, its lifecycle set by the agent and the app
Across modelsNativeWhat it learns and your context stay outside the model, and follow the work across providersStrong: token-space memory and skills can survive a change of model
Across apps and agentsThe same work carries on across Claude, Codex, Cursor, Hermes and your own agentsStateful agents are reachable through SDKs and hosted MCP
Handing work to another agentA task and its context pass to another agent you allow, ready to continueShared agents and repositories can support a handoff
Keeping context compactContext stays compact, focused on the rules, tasks and decisions that matterMemory organisation, summaries and file-style context management
Learning from images, audio, video and PDFsIt learns from images, audio, video and PDFs, as it does from textDepends on the connected model and agent tools
Across mediaA question in words can draw on what was learned from images, audio and video, and media can shape later decisionsDepends on the model and how memory is built
People, teams and sharing
For each personNativeEach person gets their own private context, preferences and learningNative memory per agent and per user
For each teamNativeTeams share approved learning, and private work stays privateShared memory repositories and skills
Across the organisationNativeWhat works can move from one person to the team and the organisation, under your rulesSkills and memory can be shared across the organisation
Sharing between people, under controlYou choose what is shared and with whom, and can withdraw it; anything shared shows who it came fromShared repositories and collaboration permissions
Protection for shared contentWhat someone shares arrives as information, never as instructions, so it can’t steer another person’s agentRelies on agent context and permissions
Control and trust
Your rulesYour rules are part of how Duplex works: they allow, decline or limit real actionsInstructions and permissions shape agent behaviour
Rules applied before each actionNativeThe hooks check each action against your rules before it runsDepends on the Letta runtime, permissions and tool host
People in the loopA person confirms the actions you choose, and what Duplex learns can be reviewed and undoneUsers can inspect and manage memory and skills
A history you can checkA history of every decision, where it came from and what came of it, that can’t be quietly changedPersistent conversations, memory and agent state
Receipts you can verifyDecisions, skills and deletions can come with receipts you can verifyVersioned memories and skills
Undoing what was learned, exactlyNativeOne learned change can be undone exactly, without retraining anythingSkills and memories can be edited or rolled back through versions
Forgetting that reaches everything built on itRemoving something also removes what came from it: context, anything shared from it and related learningMemory and skills are cleaned up through files and versions
Keeping customers apartEvery user, team, organisation and customer is kept apart, in every integration and in everything it sharesPermissions in the cloud and when self-hosted
Where everything learned came fromFor everything it learned, you can see its source, its scope and how far it can be trustedMemory and skills stay inspectable
Where it runs and connects
Any model providerOne intelligence across OpenAI, Anthropic, Google, AWS and compatible modelsAn agent harness that works with any model
MCPNativeThrough MCP + hooks, Duplex joins every step your agents takeHosted MCP lets other agents create and message stateful Letta agents
Hooks and pluginsNativePlugins for Claude, Codex, Cursor and Hermes, and hooks that bring Duplex in at each step and check sensitive tool actionsSDK, CLI and agent-runtime integration
Your cloud, or self-hostedVareon Cloud, your cloud or no cloud: private cloud, your own account, self-hosted or air-gappedCloud, and a self-hosted app server
No cloud: air-gappedBuilt for deployments where nothing may leave, with local models, local dependencies and your own identity providerPossible with a self-hosted stack and local dependencies
Cost, speed and fit
How it lowers model costDuplex answers familiar work itself, with no repeated frontier-model callBetter context and skills improve results, but the model still runs
How it lowers latencyDecisions it is sure of come back fast; uncertain work still goes to your frontier modelBetter-organised context can cut wasted reasoning
Survives a model upgradeYesLearning, context, tasks and rules stay outside any one modelYesMemory and skills are deliberately independent of the model
Fine-tuning neededNoFine-tuning becomes an optional step upNo
Best forOrganisations that need their AI agents to learn, act within rules, carry work forward and improve across models, as one systemTeams building persistent, self-improving agents around token-space memory and skills

See Duplex on your own work.

Compare it where it counts: a pilot puts Duplex on your own work, with the measures agreed before it begins.