Experia AI
The open-source experience learning layer for AI agents.
Experia enables agents to learn from past actions, failures, and outcomes. It provides experience capture, lesson extraction, behavioral improvement, and long-term cognitive memory without replacing existing agent frameworks.
Vision
Current AI agents start from zero on every interaction. Experia adds an experience learning loop around agents. It allows agents to remember what happened, understand why it worked or failed, and improve future decisions.
Observation → Action → Result → Experience → Lesson → Memory → Better Future Action
flowchart TD
subgraph Multi-Agent Swarm
AgentA[Coder Agent]
AgentB[Researcher Agent]
Supervisor[Supervisor Agent]
end
subgraph Experia AI Cognitive Layer
Store[(Shared MemoryStore)]
Eval[LLM Evaluator\nRoot Cause Analysis]
RuleGen[Rule Generator]
Reflect[Reflection Engine\nBatch Analysis]
Ctx[Context Builder]
AgentA & AgentB -- 1. Record Action --> Store
Store -- 2. Evaluate Outcome --> Eval
Eval -- 3. Extract Lesson (agent_role) --> Store
Eval -- 4. Consolidate --> RuleGen
RuleGen -- 5. Generate RULE --> Store
Supervisor -- 6. Trigger reflect() --> Reflect
Reflect -- 7. Generate Global STRATEGY --> Store
Store -- 8. retrieve_context(agent_role) --> Ctx
end
Ctx -- 9. Inject Shared Knowledge --> AgentA & AgentB & Supervisor
Integrations
Experia acts as a cognitive plugin. It does not replace your agent frameworks (like LangChain, AutoGen, CrewAI), it enhances them by managing long-term memory, learned experiences, user knowledge, and behavioral patterns.
Getting Started
Experia uses an asynchronous and pluggable architecture. To use the advanced cognitive features (Root Cause Analysis, Rules, and Reflection), install with the llm extra. You can also install specific integration extras like langchain, langgraph, or openai:
pip install "experia[llm,langgraph]"
Note: You will need an OPENAI_API_KEY (or other litellm supported keys) exported in your environment.
For full documentation on classes, methods, and models, please see the API Reference.
Native LangGraph Integration
Experia provides native, stateful Nodes for LangGraph, the modern standard for Multi-Agent and Cyclical AI workflows.
import asyncio
from experia.core.learner import Learner
from experia.memory.store import SQLiteStore
from experia.experience.llm_evaluator import LLMEvaluator
from experia.integrations.langgraph.nodes import ExperiaContextNode, ExperiaLearningNode
from langgraph.graph import StateGraph, MessagesState
async def main():
store = SQLiteStore("my_agent.db")
await store.initialize()
agent = Learner(store=store, evaluator=LLMEvaluator(model="gpt-4o-mini"))
# Define your standard LangGraph
builder = StateGraph(MessagesState)
# 1. Add Experia Context Node (Injects learned knowledge before the agent acts)
builder.add_node("inject_context", ExperiaContextNode(agent=agent))
# 2. Add your Agent and Tool nodes
# builder.add_node("agent", ...)
# builder.add_node("tools", ...)
# 3. Add Experia Learning Node (Extracts experiences after tools run)
builder.add_node("learn", ExperiaLearningNode(agent=agent))
# Flow
builder.set_entry_point("inject_context")
# builder.add_edge("inject_context", "agent")
# builder.add_edge("agent", "tools")
# builder.add_edge("tools", "learn")
# builder.add_edge("learn", "agent")
graph = builder.compile()
# Now run your graph! Experia will automatically learn from every cycle.
# await graph.ainvoke({"messages": [...]})
if __name__ == "__main__":
asyncio.run(main())
Manual Core API
You can also use the core API manually without any frameworks:
import asyncio
from experia.core.learner import Learner
from experia.memory.store import SQLiteStore
from experia.experience.llm_evaluator import LLMEvaluator
from experia.improvement.rules import RuleGenerator
async def main():
store = SQLiteStore("my_agent.db")
await store.initialize()
agent = Learner(
store=store,
evaluator=LLMEvaluator(model="gpt-4o-mini"),
rule_generator=RuleGenerator(store=store, model="gpt-4o-mini"),
)
# Record actions explicitly
await agent.record(
task="Deploy web app",
action="Restart Nginx",
result="failed with config syntax error",
)
# Developer-controlled Nightly Reflection
await agent.reflect(model="gpt-4o-mini", batch_size=50)
if __name__ == "__main__":
asyncio.run(main())
License
This project is licensed under the MIT License. See the LICENSE file for details.
Metadata
Release files for experia 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| experia-0.6.0.tar.gz | 26.9 kB | With provenance | Details for experia-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| experia-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for experia-0.6.0-py3-none-any.whl |
Total release size: 53.0 kB
Release files / experia-0.6.0.tar.gz
| Download URL | experia-0.6.0.tar.gz |
|---|---|
| Size | 26.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4a390dfa074bff581bf0ec100961ec4567eae5f15d2636cecbdd0606d71f743
|
|
BLAKE2b-256 checksum How to use checksums |
0d8dc1721732c7ef524cc788a1b5e8c33d11d1ce8e390a1fd363b9c3af06b579
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logRelease files / experia-0.6.0-py3-none-any.whl
| Download URL | experia-0.6.0-py3-none-any.whl |
|---|---|
| Size | 26.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e96f8b556aba21776a606d7b1a1fe50e50fdc287da545a357d3a5dd8d5e0f92
|
|
BLAKE2b-256 checksum How to use checksums |
4ed65015651ffe489076e990cfc06974c669c239f375e182568262501490fa9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logSecurity for experia 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for experia-0.6.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.