Acontext
Turn agent-run learnings into readable, editable skill files.
- Source repo
- memodb-io/Acontext
- Stars
- ★ 3.7k
- Last updated
- 13d ago
- License
- Apache-2.0
- Primary language
- JavaScript
- FA score
- 44/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformOpenAI API · Claude APIClaude Code (Partial support)
- Cost
- Free tier plus a paid hosted plan
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- An OpenAI Agent SDK developer building a support or task agent who wants successful task practices captured as reviewable Markdown skills.
- Not a fit if
- Teams that must run fully offline without any cloud LLM calls
- Users who want zero-config memory and won't define a SKILL.md schema
- Self-hosters without Docker or an OpenAI API key
- Source review
- 44/100 · Major gaps 2 safety controls not found
What does this agent do, and when should you use it?
Acontext is an open-source skill-memory layer for AI agents that stores learned knowledge as Markdown skill files. It exposes Python and TypeScript SDKs, a REST API, a web dashboard, and a self-hosted backend. Its learning flow extracts tasks from session messages and optional tool calls or artifacts, then distills outcomes after a task completes or fails and updates skills according to a SKILL.md schema. On later runs, an agent retrieves content through list_skills, get_skill, and get_skill_file rather than vector search. Skill files can be exported as ZIP archives for reuse with other agents, LLMs, and runtimes.
An application creates a learning space and session, then connects them with client.learning_spaces.learn(space.id, session_id=session.id). During an agent run, it records user and assistant messages with client.sessions.store_message(session.id, blob=...); after a task completes or fails, Acontext extracts tasks, distills successful and failed approaches plus user preferences, and has its Skill Agent create or update Markdown skill files. After client.learning_spaces.wait_for_learning, the application can enumerate learned files with client.learning_spaces.list_skills(space.id) and download them with client.skills.download(skill_id=..., path=...). On a later run, the agent calls get_skill and get_skill_file to retrieve needed content. For local deployment, acontext server up starts the local API, dashboard, and persistent data directory.
- An OpenAI Agent SDK developer building a support or task agent who wants successful task practices captured as reviewable Markdown skills.
- A team using Claude Agent SDK that wants failures as well as completed tasks to contribute reusable operational knowledge.
- An engineering team maintaining LangGraph, Claude, or AI SDK agents that needs to share skill files across frameworks instead of migrating a vector index.
- A developer evaluating agent memory locally who can start the backend and dashboard with Docker and acontext server up.
- A team building agents with code execution that wants skills mounted in a sandbox alongside disk, sandbox, and skill tools.
How do you install or deploy this agent?
Cloud setup: complete onboarding at Acontext.io to obtain an API key beginning with sk-ac, then run:
pip install acontextFor a self-hosted proof of concept, install Docker and have an OpenAI API Key, then run:
curl -fsSL https://install.acontext.io | sh
mkdir acontext_server && cd acontext_server
acontext server upThe command creates or uses .env and config.yaml and persists data in db. The local API is http://localhost:8029/api/v1 and the dashboard is http://localhost:3000/.
How do you use this agent?
A first Python flow is:
from acontext import AcontextClient
import osclient = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))
space = client.learning_spaces.create()
session = client.sessions.create()
client.learning_spaces.learn(space.id, session_id=session.id)
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?"})
client.learning_spaces.wait_for_learning(space.id, session_id=session.id)
skills = client.learning_spaces.list_skills(space.id)For the self-hosted API, initialize instead with:
client = AcontextClient(base_url="http://localhost:8029/api/v1", api_key="sk-ac-your-root-api-bearer-token")What are this agent's strengths and limitations?
- Memory is stored as readable, editable Markdown skill files that can be managed with Git or grep and mounted in a sandbox.
- Both completed and failed tasks trigger learning through an explicit extraction, distillation, routing, and skill-update flow.
- Agents retrieve content progressively with get_skill and get_skill_file instead of semantic top-k retrieval.
- It provides Python and TypeScript SDKs, Docker-based self-hosting, and ZIP export.
- The documented self-hosted quick start requires Docker and an OpenAI API Key, and defaults to gpt-4.1.
- Learning runs in the background; wait_for_learning is described as a blocking helper for demonstrations, so production integrations must accommodate asynchronous completion.
- Users must define the skill structure, naming, and file layout through SKILL.md.
- The README points to Claude Code installation and configuration instructions, but the supplied repository text does not include those full steps.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Acontext This agent | 44 · Major gaps | Library / SDKFreemium | ★ 3.7k | 13d ago | JavaScript | OpenAI API · Claude API |
| TrueForge | 67 · Some gaps | CLIFree + model costs | ★ 6.4k | 1d ago | TypeScript | OpenAI API · Claude API |
| PenguinHarness | 52 · Major gaps | Desktop appFree + model costs | ★ 3.2k | today | TypeScript | OpenAI API · Claude API |
| Letta | 47 · Major gaps | CLIFree + model costs | ★ 25k | 18d ago | — | — |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: README describes API-key-based client but lacks least privilege or user confirmation mechanisms; data flow transparency partially shown in architecture diagram but not detailed; sensitive data handling not explicitly addressed; dependency security not specified; external effects (e.g., Docker deployment) mentioned but not detailed; rollback not mentioned; source attribution only via license and copyright. Deductions: lack of concrete implementation details and explicit security measures.
Evidence shows: README and architecture diagram provide self-consistent description but no actual runtime verification; dependency availability not explicitly stated; failure messages not mentioned. Deductions: static review cannot verify runtime behavior, and documentation lacks error handling information.
Evidence shows: README provides multiple usage scenarios (Claude Code, OpenClaw, Python/TS SDK) and describes capability boundaries (e.g., skill file format); trigger precision not explicit; environment fit (self-hosted, cloud) described. Deductions: trigger mechanisms and boundaries not precisely described.
Evidence shows: README is well-structured, provides installation instructions, examples, and documentation links; naming stability not explicit; known limitations not mentioned; license is Apache-2.0; versioning and changelog mentioned (via GitHub Actions); maintenance responsibility not explicit. Deductions: missing known limitations and explicit maintenance responsibility statement.
Evidence shows: Output is Markdown skill files, usable; marginal value in automatic skill learning; cost-benefit not detailed. Deductions: insufficient cost-benefit analysis.
Evidence shows: README claims partially supported by documentation links, but no independent verification; cross-source corroboration insufficient; facts and inferences not clearly separated. Deductions: lack of verifiable evidence and sources.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Static review cannot verify actual runtime behavior; all conclusions about functionality, security, and reliability are inferred.
- Cloud services, API keys, and self-hosted deployment mentioned in README involve external dependencies; carefully assess security and privacy implications.
- Known limitations and explicit maintenance responsibility are not provided; users should assess long-term support risks themselves.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
TypeScript SDK v0.1.21 What's Changed Other - chore: bump sdk-ts to v0.1.21 - chore(deps): batch dependency updates (#547) Full Changelog: https://github.com/memodb-io/Acontext/compare/sdk-ts/v0.1.20...sdk-ts/v0.1.21 --- Published to npm as @acontext/[email protected]View on GitHub ↗ -
Release notes excerpt
UI v0.1.14 What's Changed Other - chore(deps): batch dependency updates (#547) Full Changelog: https://github.com/memodb-io/Acontext/compare/ui/v0.1.13...ui/v0.1.14 --- Published to https://github.com/memodb-io/Acontext/pkgs/container/acontext-uiView on GitHub ↗ -
Release notes excerpt
API v0.1.41 What's Changed Other - chore(deps): batch dependency updates (#547) Full Changelog: https://github.com/memodb-io/Acontext/compare/api/v0.1.40...api/v0.1.41 --- Published to https://github.com/memodb-io/Acontext/pkgs/container/acontext-apiView on GitHub ↗