LearningMachine. Three agents in the demo use it.
The shape
LearningMode.ALWAYS runs the extractor on every turn. LearningMode.AGENTIC gives the agent tools to write learnings when it judges them worth keeping. See Learning Modes.
Why this beats vanilla memory
Vanillaenable_agentic_memory=True gives you one bucket. The agent dumps facts into it. Useful, but flat.
LearningMachine separates concerns:
- User profile is “this is who I’m talking to” (one record, updated in place).
- Entity memory is “this is who/what they’re talking about” (graph of nodes and edges).
- Session context is “this is the plan for this conversation” (scoped to one session).
- Learned knowledge is “this is something I want to remember for next time” (general patterns).
Dash’s learning loop
Dash uses learning differently. The Engineer agent runs SQL, hits errors, diagnoses them, and saves the fix as learned knowledge:save_learning(title, learning) and search_learnings(query) tools. Once. The next time the same error pattern shows up, it pulls the fix from learnings instead of rediscovering it.
This is what makes the Dash team self-improving. After a few weeks of use, the same questions take fewer iterations because the right-shaped learnings are already in the store.
See it in action
Source:
agents/contacts/, agents/dash/, Learning docs