Skip to content
Vareon

Memory remembers. Skills codify. Fine-tuning retrains. Gateways route.
Duplex closes the loop.

Most AI infrastructure solves one part of the work. Duplex brings every part into one runtime intelligence that keeps getting better while it works.

Comparison current as of 16 October 2026.

Each one solves one part.

Memory platforms keep information. Skill learning turns experience into instructions. Fine-tuning changes model weights. AI gateways route requests and apply guardrails. Duplex brings all of it together, and keeps improving.

Memory platforms give an agent a past: facts, messages and episodes, retrieved for the next model call.

Step 1 of 5: Memory

Every capability, side by side.

Pick one to set beside Duplex, or see them all at once.

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.
Set beside Duplex:
CapabilityDuplexLettaCopilotKit CLiFDeeplake HivemindMemory platformsMem0, Zep, AgentCore Memory and SupermemoryFine-tuning and RFTAI gatewaysPortkey, LiteLLM and similar
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 learningA full-stack pipeline that turns trajectories into skills, evaluations and training dataShared agent memory that turns traces into skills automaticallyPersistent context, facts, episodes and knowledge graphsCustomising a model by training itModel routing, reliability, guardrails and observability
What it carries forwardContext, decisions, outcomes, rules, tasks, skills and what it has learnedAgent memory, conversations, files and skillsThreads, trajectories, insights, skills and evaluationsSessions, memories and skills scoped to a workspaceFacts, messages, summaries, episodes and graph relationshipsA new set of model weightsConfiguration, logs, routing policies and caches
What gets better with experienceIts next decisions: confidence, routing, recommendations, tool use and reusable knowledgeThe agent’s future behaviour, through updated memory and learned skillsThe agent’s instructions, through reviewed skills drawn from real workflowsThe next session’s behaviour, through distilled skillsMainly the context given to the next model callThe underlying model’s responsesRequest routing and reliability, not what the agent has learned
Knowing what happened, and learning from itNativeIt knows what happened, and learns what to change nextBoth are there, mainly through token-space memory and skillsLearning is generated from stored trajectoriesShared memory is turned into reusable skillsMainly memory; how far it learns varies by vendorLearning without lasting operational memoryOperational control without continual learning
Learning
Continual learning without retrainingNativeIt keeps learning, outside your model’s weightsNativeToken-space and skill learningNativeSkill learning; fine-tuning data is optionalNativeLearning skills from tracesImprovement through context; how deep it goes varies by platformNoTraining is how it learnsNot native
Turn-by-turn adaptationNativeEach new result can change the next decision at onceAgent-managed memory can change continuously; skill learning follows finished experienceAnalysis runs by hand or on a scheduleSkills are distilled in the background or at the end of a sessionMemories can be added continuously, but retrieving them is not adaptingWaits until a training job finishes and the new model is deployedRouting changes at once, but not from learned outcomes
Learning from correctionsNativeA correction changes what Duplex does nextCorrections can update memory or feed learned skillsUser changes and app actions feed its learningCorrections and session traces can become skillsCorrections can be stored and retrieved as contextCorrections must go into a training dataset or a reward pipelineUsually logged; learning from them is external
Learning from outcomesNativeSuccess and failure feed straight back into what it learnsPossible through reflection on trajectories and agent-managed updatesOutcomes across the stack become insights, skills, evaluations and training dataNew skills are drawn from finished sessionsEpisodes can be recalled, but learning from outcomes is generally externalNativeWhen outcomes can be turned into rewardsOutcomes show up in telemetry; learning from them is external
Learning from rewardsNativeA reward strengthens what worked and corrects what didn’tRewards aren’t its main way of learningCan produce fine-tuning data from evaluated trajectoriesRewards aren’t its main way of learningRewards aren’t a standard memory featureNativeRewards optimise the model’s weightsNot native
Credit for the steps behind a resultNativeIt works out which earlier actions led to a later resultLetta doesn’t offer this natively at runtimeAnalysing trajectories can surface useful workflow patternsAnalysing traces can find reusable proceduresNot nativeCan learn correlations from training examples, but can’t trace a live result back to its stepsNot native
How actions move the workNativeIt learns how each action moves the work from one state to the nextThe agent can infer this from contextCan turn workflows into skillsCan capture successful procedures as skillsStored episodes can serve as examplesMay absorb these patterns during trainingNot native
Predicting what an action will doNativeFrom what it observes, it predicts what an action will do, tries alternatives and plansThe model reasons over memoryExternalLeft to the agent frameworkNot nativeNot nativeImplicit inside the trained model, where you can’t edit itNot native
Better choices of actionNativeOutcomes improve which action it picks nextBehaviour improves through memory and skillsReviewed skills improve the agent’s next instructionsDistilled skills improve the next proceduresRetrieved context may shape behaviour indirectlyNativeBy optimising the modelRouting policies are configured, not learned from outcomes
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 modelNativeTrajectories become reviewed skills, backed by evidenceNativeSessions become skill.md files for the workspaceDepends on the vendor; generally not what the category is built aroundKnowledge is absorbed into weights, not packaged as portable skillsNot native
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 versionPublished after human review, delivered at a pinned versionSkills stay files you can inspect and edit, linked to the sessions they came fromUsually a lifecycle per record, not per skillEvaluation happens around training and deploymentConfiguration versions, not a lifecycle for learned skills
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 tasksSkills capture patterns across many production trajectoriesSkills capture patterns that recur across sessionsSemantic retrieval finds related information, which is not the same as generalising behaviourGeneralises through the trained weightsSemantic caches match similar requests, but don’t learn how to act
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 isDriven by evaluation, not a live measure of certaintyHow relevant retrieval and skills are, not a measure of certaintyRetrieval scores and relevance signalsThe model’s confidence must be measured separatelyProvider health, routing and guardrail scores, not certainty about the task
Answer, hand over or declineNativeDuplex answers itself, calls your model, uses a tool or declines, within your rulesThe agent usually carries on through model reasoningExternalThe host agent decides how to actExternalThe host agent decides how to actExternalThe host application decides how to actThe trained model still runs on every requestRoute, retry, block or fall back, without learning from outcomes
Answering familiar work itselfNativeIt makes familiar decisions itself, without another frontier-model callThe model still interprets memory or skillsThe model still reads the learned skillThe model still reads the learned skillThe model normally reads the retrieved contextThe customised model still runsA cache may skip a model call, but a cache doesn’t learn from outcomes
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 neededExternalThe host agent’s jobExternalThe host agent’s jobExternalThe application’s jobExternalThe application’s jobStrong routing and fallback between providers; certainty about the task stays external
Planning, simulation and recommendationsNativeIt predicts what happens next, tries alternatives, builds plans and recommends actionsMainly through model reasoning and agent toolsExternalThe host agent’s jobExternalThe host agent’s jobMemory supplies context; planning stays externalThe model may plan better, but the state of the work stays externalNot native
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 availableWorks across supported agent frameworksShares lessons across connected agentsShared memory can serve several agentsNot nativeSome route to agents and MCP tools, but don’t learn which collaboration worked
Learning which tools workIt learns which tools work, when to use them and what each one leads toSkills and memory can improve tool useFull-stack trajectories capture tool and user actions for new skillsTool traces can become reusable proceduresTool results can be rememberedTool behaviour may improve through trainingThey expose and route tools, but generally don’t learn from their outcomes
Tool actions within your rulesTools run only through your rules and permissionsAgent permissions and tool configurationControlled by the host agent frameworkControlled by the host coding agentExternalLeft to the application in memory-only systemsExternalStrong routing and guardrails; control of agent actions depends on the integration
StreamingIt streams model and tool output, with every step still within your rulesAvailable through agent and model interfacesAvailable through supported agent frameworksDepends on the host agentDepends on the vendorDepends on the model providerNativeStrong streaming
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 actionsAG-UI captures agent and user actions as full-stack trajectoriesAgent sessions and tool activity are captured automaticallySDK or harness integrations capture messages and eventsLogs or datasets must be supplied for trainingRequests, responses, cost and latency are logged
Context across sessionsNativeWork, decisions, tasks and the context that matters carry on across sessionsNativePersistent agents keep memory across conversationsDurable threads keep app interactionsNativeShared memory outlives agent sessionsNativeThis is what the category is built aroundNot nativeExternalGenerally
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 appDurable threads keep the history of interactionsSession memory helps pick work back upContext can be retrieved, but managing the state of tasks is externalNot nativeNot native
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 modelStrong: skills can be delivered across supported agent stacksStrong: skills and memory can be reused by different coding agentsGenerally strong, because memory doesn’t depend on the modelWeak: a new base model usually needs retraining or revalidationStrong for routing, but nothing learned carries over
Across apps and agentsThe same work carries on across Claude, Codex, Cursor, Hermes and your own agentsStateful agents are reachable through SDKs and hosted MCPSkills can be delivered through supported framework adaptersShared memory connects Claude Code, Codex, Cursor and other agentsPossible when apps share the same memory identityNot nativeRequests can share one gateway, but what each app knows stays external
Handing work to another agentA task and its context pass to another agent you allow, ready to continueShared agents and repositories can support a handoffShared trajectories and published skills keep behaviour consistentWorkspace skills pass lessons between agentsAnother authorised agent can retrieve the shared contextNot nativeAgent and MCP routing may be available; what the task means stays external
Keeping context compactContext stays compact, focused on the rules, tasks and decisions that matterMemory organisation, summaries and file-style context managementTrajectories are distilled into insights and skillsSessions are distilled into compact skillsSummaries, extracted memories and episodic recordsNot nativePrompt truncation or caching, not a lasting summary of what matters
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 toolsDepends on the captured app events and the agent stackFocused mainly on sessions and tool tracesDepends on the vendor and the modelSupported when the model and the training service accept the mediumMainly passes supported media through to providers
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 builtOutside CLiF’s main focusOutside Hivemind’s main focusAvailable in products that index more than textEncoded into weights when the training supports itNot native
People, teams and sharing
For each personNativeEach person gets their own private context, preferences and learningNative memory per agent and per userPossible through app threads and learning containersAvailable through personal or workspace scopeStrong memory per user or per actorUsually needs a separately trained or adapted modelKeys and budgets per user; personal behaviour is external
For each teamNativeTeams share approved learning, and private work stays privateShared memory repositories and skillsPublished skills spread team learningShared workspace memory and skillsAvailable through namespaces, graphs or shared storesUsually needs shared training data and a shared modelConfiguration and budgets per team
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 organisationReviewed skills can be spread across supported agentsWorkspace lessons can spread across connected agentsShared organisational memory is possibleA custom model can encode common behaviour for the organisationRouting and guardrails across the organisation, without learning from outcomes
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 permissionsProject and deployment permissionsWorkspace access controlsVendor-specific namespaces, IAM or graph permissionsAccess controls for datasets and modelsKey, team and role controls
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 permissionsDeveloper policy and tool restrictions outrank skillsRelies on how skills load, and on trust in the workspaceDepends on the app and the vendorTraining data needs its own controls before trainingGuardrails can inspect shared inputs, but trust in what they mean stays external
Control and trust
Your rulesYour rules are part of how Duplex works: they allow, decline or limit real actionsInstructions and permissions shape agent behaviourLearned skills can’t override developer safety rules or tool restrictionsSkills guide the agent, but enforce nothing on their ownContext can inform behaviour, but doesn’t authorise actionsBehaviour is shaped by training, not by live rulesStrong input and output guardrails, and routing policies
Rules applied before each actionNativeThe hooks check each action against your rules before it runsDepends on the Letta runtime, permissions and tool hostStays with the host app and the agent frameworkStays with the host agentMemory supplies context, but doesn’t authorise outside actionsExternalStrong for requests and responses that pass through the gateway
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 skillsA strong review before learned skills are publishedSkills can be inspected and edited before reuseSet by the appTraining review, evaluation and approval before deploymentApproval workflows vary by gateway
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 stateInsights backed by evidence, and their source trajectoriesSkills linked to sessions, and stored tracesHistory, source tracking and audit controls vary by vendorTraining jobs, datasets, reward metrics and model versionsStrong logs of requests, responses, cost and policy
Receipts you can verifyDecisions, skills and deletions can come with receipts you can verifyVersioned memories and skillsLinks to evidence and exact skill revisionsSkill files linked to their source sessionsSource tracking varies by vendorModel evaluation and training reportsLogs and guardrail results, not receipts for what was learned
Undoing what was learned, exactlyNativeOne learned change can be undone exactly, without retraining anythingSkills and memories can be edited or rolled back through versionsPublished skills can be revised or withdrawnSkill files can be edited or removedMemories can be deleted, but the behaviour built on them isn’t exactly reversedRoll back a whole model version, or retrain without the sampleConfiguration and cache entries can be removed; there is nothing learned to reverse
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 versionsMeans removing the affected insights, skills and derived assetsMeans removing the affected sessions and generated skillsUsually deletes records; derived summaries and copies elsewhere need separate handlingNeeds machine unlearning or retrainingLogs and caches follow their own retention
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-hostedIsolation per project and deploymentMemory and skills scoped to a workspaceIsolation by user, actor, namespace, graph or IAMCloud IAM and model access boundariesMature isolation by key, team, budget and role
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 inspectableInsights and skills stay linked to the trajectories they came fromSkills can link back to their source sessionsStrong in temporal graph products; varies elsewhereDataset lineage and training metadataLineage of requests and providers
Where it runs and connects
Any model providerOne intelligence across OpenAI, Anthropic, Google, AWS and compatible modelsAn agent harness that works with any modelWorks across supported agent frameworks and modelsWorks across several coding agents and their modelsGenerally independent of the modelUsually tied to the customised model and the training providerNativeProvider abstraction is what the category does best
MCPNativeThrough MCP + hooks, Duplex joins every step your agents takeHosted MCP lets other agents create and message stateful Letta agentsSkills can reach agents and MCP servers through integrationsConnects with major coding agents; how varies by clientAvailable in several products, including Supermemory and AgentCoreNot nativeIncreasingly native
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 integrationAG-UI and framework adaptersAutomatic capture of coding-agent sessionsSDK and MCP integrationsData collection must be built separatelySDK and proxy integration, not hooks that learn from agent sessions
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 serverCloud-hosted and self-hosted intelligenceLocal agent integration; deployment options varyVendor-specific; open-source and managed options existCloud training and hosted inferenceHosted and self-hosted options vary by gateway
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 dependenciesPossible with a self-hosted stack and local dependenciesDepends on the chosen deployment and model servicesDepends on the platformLimited to services that support offline training and inferenceAvailable with self-hosted gateways and local providers
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 runsBetter skills cut failures and rework, but the model still runsBetter skills cut repeated mistakes, but the model still runsBetter context cuts repetition, but adds retrieval and still calls the modelA smaller customised model may give the quality you needCaching, cheaper models, batching and provider choice
How it lowers latencyDecisions it is sure of come back fast; uncertain work still goes to your frontier modelBetter-organised context can cut wasted reasoningSkills make execution more directSkills shorten repeated discoveryFaster retrieval and smaller contextDepends on the customised modelCaching, load balancing and provider choice
Survives a model upgradeYesLearning, context, tasks and rules stay outside any one modelYesMemory and skills are deliberately independent of the modelYesSkills and trajectories stay outside the model’s weightsYesSkills survive a change of coding agent or modelYesStored context doesn’t depend on the modelThe customisation belongs to one model checkpoint, so it doesn’t carry over automaticallyRouting configuration survives, but no learned behaviour is kept
Fine-tuning neededNoFine-tuning becomes an optional step upNoNoNot for skills; CLiF can also produce fine-tuning dataNoNoYesNo
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 skillsProduct teams turning real user workflows into reviewed skills, evaluations and training assetsTeams that want coding agents to share sessions and reuse lessons automaticallyApps that mainly need durable, relevant user or business contextStable, high-volume tasks where the model itself must be specialisedTeams that mainly need provider abstraction, reliability, guardrails and cost control

One closed loop.

Duplex is where context, learning, skills and your rules become one loop, running while the work happens.

Duplex understands the task in hand, and brings back the context that matters.

Step 1 of 8: The task

Why it matters.

An AI model can be intelligent without ever getting experienced at your work.

A memory system shows the model what happened before, but it doesn’t decide what should change. A skill system packages a lesson, but the model still has to read it and follow it. Fine-tuning changes the model, through a slower training cycle that is hard to undo. A gateway controls traffic, but doesn’t learn which decision led to the best outcome.

Duplex turns experience into improvement while it works, within your rules.

That builds a different kind of asset. Every confirmed correction, successful workflow, useful tool result and finished task strengthens the intelligence around your model, and none of it is locked inside one model vendor.

The bottom line.

  • MemoryGives an agent a past.
  • SkillsGive an agent reusable instructions.
  • Fine-tuningGives a model different weights.
  • GatewaysGive an AI stack control over traffic.
  • DuplexGives the whole agent system the power to carry experience forward, learn from results, act within your rules and improve across models, over time.

Among the products and categories reviewed, Duplex is the only one built to combine:

  • Context across sessions
  • Continual learning from outcomes
  • Learning from corrections and rewards
  • Credit for the steps behind a result
  • Learning how actions move the work, and predicting what comes next
  • Decisions that know how sure they are
  • Handing over to the right model, tool or person
  • Long work that carries on
  • Learning for each person, team and organisation
  • Your rules, applied before each action
  • Tool actions within your rules
  • Sharing between people, under control
  • Undoing what was learned, exactly
  • Forgetting that reaches everything built on it
  • Where everything learned came from, with receipts
  • MCP + hooks, and plugins for the assistants you use
  • Continuity across models and apps
  • Your cloud, self-hosted or air-gapped
  • Fewer model calls, as familiar work is answered directly

Duplex makes your AI systems better at the work with every experience.

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.