Acontext

RAG & Memory 💻 JavaScript ⚖️ Apache-2.0 🟡 Quiet lately
3.7k stars

Acontext is an open-source skill memory layer for AI agents that automatically captures learnings from agent runs and stores them as editable Markdown skill files. It solves the problem of opaque, hard-to-debug agent memory by making memory transparent and reusable across agents, LLMs, and frameworks. It is for developers building AI agents who want their agents to learn from mistakes and reuse successful strategies without vendor lock-in.

Acontext demo
🎞️ Demo from the project README

✨ Key features

  • Automatically distills agent runs into skill files
  • Skills are plain Markdown files, no embeddings or API lock-in
  • Progressive disclosure via get_skill and get_skill_file tools
  • Download skills as ZIP for reuse anywhere
  • Self-hostable with Docker and OpenAI API key
  • Python and TypeScript SDKs available

🎯 Use cases

  • Improve agent performance by learning from past mistakes
  • Share skills across different agents and frameworks
  • Create persistent memory for customer support agents
  • Build agents that adapt to user preferences over time
  • Export skills to run locally or in other environments

📦 Installation

🧰 Requirements: Python 3.x or Node.js for SDKs; for self-hosting, Docker and an OpenAI API key; cloud version requires an API key from Acontext.io.

pip install acontext

For self-hosting the backend:

curl -fsSL https://install.acontext.io | sh

Then start the server:

mkdir acontext_server && cd acontext_server
acontext server up

🚀 Usage

from acontext import AcontextClient

client = AcontextClient(api_key="sk-ac-...")

# Create a learning space and attach a session
space = client.learning_spaces.create()
session = client.sessions.create()
client.learning_spaces.learn(space.id, session_id=session.id)

# Store messages; learning runs automatically when tasks complete
client.sessions.store_message(session.id, blob={"role": "user", "content": "My name is Gus"})
client.sessions.store_message(session.id, blob={"role": "assistant", "content": "Hi Gus! How can I help you today?"})

# List learned skills and download them
client.learning_spaces.wait_for_learning(space.id, session_id=session.id)
skills = client.learning_spaces.list_skills(space.id)
for skill in skills:
    client.skills.download(skill_id=skill.id, path=f"./skills/{skill.name}")

⚠️ Good to know

The project is open-source under Apache License 2.0; no other limitations are stated in the README.

❓ FAQ

What are skill files?

Skill files are Markdown files that store knowledge an agent has learned. They are human-readable and can be edited, shared, and reused across different agents and frameworks.

How does Acontext avoid vendor lock-in?

Acontext stores memory as plain Markdown files that can be downloaded as ZIP and used anywhere. There are no embeddings or proprietary formats, so you can move to another agent or LLM without migration.

Can I self-host Acontext?

Yes, you can self-host the backend using the acontext-cli, which requires Docker and an OpenAI API key. The server runs locally and provides API endpoints and a dashboard.

What SDKs are available?

Acontext provides Python and TypeScript SDKs. The README shows Python examples, and TypeScript SDK is also maintained.

📊 Repository

Stars★ 3,684
Forks🍴 333
Open issues🐛 36
Last commit🕒 Jul 14, 2026
Created📅 Jul 2025
Language💻 JavaScript
License⚖️ Apache-2.0

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.