oceanbase/powercontext

powercontext

Not only memory but a full story

待分类agenticai-agentscontext

PowerContext

Context that stays with the work — across sessions, agents, and people.

*English · 中文 · 日本語*

Website · Quickstart · Manual startup · Integrations · Benchmarks · Interfaces

What is PowerContext?

PowerContext is an open-source context service for AI agents. It keeps the durable part of your work — decisions, constraints, evidence, progress — outside any single conversation, so the next session, the next agent, or the next person can pick up from the current state instead of rereading the transcript.

You can use it as a ready-to-run Server or embed the same contracts in another application:

Layer · What it owns · Use it when Core protocol · Source, Artifact, and Trigger contracts · Embedding PowerContext or adding a component Builtin runtime · Memory, Handoff, Experience, and Skill services, scheduling, inference, and supported storage backends · Running the standard local Server Server and integrations · HTTP/MCP, Python Client, CLI, Dashboard, and Agent plugins · Connecting an Agent or application

Work rarely ends with whoever starts it. You hand a task to an agent, the agent gets part of the way, and later you or someone else takes over. The reasoning and current state often stay behind in that conversation. PowerContext moves them out of the conversation and into revisioned artifacts you can inspect:

Everything belongs to a Scope — one isolated Source journal, Memory lifecycle, review inbox, and Handoff history. A Scope ID selects data; it does not prove user identity, grant tool access, or authorize execution.

Scope
├── Source journal    # evidence: prompts, documents, work contracts, task outcomes
├── Memory            # atomic-memory/ARTIFACT_ID@REVISION — decisions, constraints, next steps
├── Review Inbox      # pending Experience and Skill candidates awaiting a decision
├── Handoff history   # handoff/ARTIFACT_ID@REVISION — work continuity across sessions
└── Topic Memory      # extracted in the background from eligible Sources

*The Dashboard screenshots below use synthetic demonstration records.*

Memory — decisions and constraints that outlive a session

Memory is a revisioned Artifact family for reusable decisions, constraints, facts, state, and next steps. An entry is active, forgotten, merged, or retired. Forgetting one through POST /v1/atomic-memory/lifecycle takes it out of active recall while its content and history stay available and restorable, without advancing the content revision. Explicit Memory writes need no model at all; extraction from captured Sources needs a configured generation pipeline.

"Don't refactor the old auth module — mobile is still using it."
Context this expensive shouldn't depend on someone repeating it in every session.

Handoff — the current state, not the whole transcript

Handoff records work continuity as a four-step loop:

Work Contract → Prepared Handoff → Acknowledgement → Task Outcome

handoff_current_work captures an inspected boundary and returns a temporary Prepared Handoff. Committing it creates a durable Revision only when the user wants a milestone. The receiver resolves the Handoff and records an Acknowledgement; a Task Outcome preserves the final status and checks as Source evidence. The Handoff Report projects the latest Revision in each selected Scope — read-only, and it never rewrites Memory.

Experience — what worked, reviewed before it is reused

An Experience records a situation, an action, an observed outcome, and a reusable lesson. It enters a scope-local Review Inbox as a pending Candidate. Review writes use expected_version, so a decision cannot silently apply after another writer changes the proposal. Approval writes an immutable Revision; rejection records a reason. Both are terminal, and only the approved current head takes part in recall — pending, rejected, and historical Revisions are excluded.

Skill — a reviewed procedure, exported on purpose

A managed Skill holds a name, a discovery description, instructions, validation checks, and lineage. Approval does not install or execute it: an exact approved Revision must be exported explicitly before an Agent host can discover the host-local projection.

Operational metrics expose dependency observations, processing freshness, and attempt latency, including a protected metrics-only endpoint for standalone background deployments.

Why PowerContext?

  • Context lives outside the conversation. Memory, Handoff, Experience, and Skill are server-side artifacts, not

files inside one agent's home directory. Switch from Codex to Claude Code — or hand the work to a teammate — and the work travels with you.

  • Everything is revisioned and traceable. Each Artifact is addressed as FAMILY/ARTIFACT_ID@REVISION. The Artifact

ID stays stable while approved replacements create later Revisions, and reading an exact reference returns that historical snapshot even after the family head advances.

  • Generation, review, and execution are separate steps. A model proposes content, review approves a Revision, and

export creates a host-local copy. None of those steps grants an Agent permission to execute instructions. See Interfaces for what each surface exposes today.

  • Recall is bounded, not dumped. PreparedContext selects configured sections from active Memory and approved

Experience, with optional Profile snapshots and Topic Memory, then applies a shared byte budget and returns ready content or empty. Recalled content is history, not an instruction authority: the receiving Agent still follows current instructions and checks live workspace state.

  • Review before reuse. Experience and Skill pass through a review decision that is terminal either way, and

approval writes an immutable Revision. With access control enforced, approval requires scope.review. An authorized Agent can approve its own Candidate; with distinct identities and permissions when a person must decide.

  • One Server, several views of the same contract. HTTP is the complete remote application contract. The Python Client

gives typed access, MCP is a curated Agent-facing projection, and Core protocols let an application assemble its own Source, Artifact, and Trigger implementations.

How it compares

The comparison assumes typical single-agent or host-local setups; exact behavior depends on how each system is deployed.

· Re-reading chat history · RAG over transcripts · Host-local memory files · PowerContext Survives a new session · manual · yes · yes · yes Survives switching agents · no · no · no · yes Handing work to a person · manual · manual · manual · Handoff, first-class Reusable procedure · no · no · prose only · Experience / Skill Earlier revisions kept · no · depends on the index · only via git · immutable Revisions Review before reuse · n/a · no · no · Review Inbox Bounded recall for one turn · no · partial · no · PreparedContext byte budget Inspectable outside the Agent · no · no · yes · yes

Proof it works

  • Long-conversation memory (LoCoMo; 1,540 scored questions across categories 1–4): 90.78% accuracy, against 87.79%

for PowerMem and 52.9% for full-context replay — +37.88 points over full context.

  • **Coding tasks (SWE-bench Pro; a paired project run on all 731 public v2 tasks, not an official submission): 86.73%

task resolution with PowerContext on, 82.35% with it off — +4.38 points** and 32 more tasks resolved.

  • Retrieval quality (LoCoMo Plus), native PowerContext against PowerContext with Jev candidate filtering after

retrieval. Each model is used for both Memory extraction and answering; embeddings use qwen3.7-text-embedding (1024 dimensions):

Model · PowerContext · PowerContext + Jev · Difference GPT-4o-mini · 40.855% · 49.78% · +8.925 points Qwen3.7-plus · 60.37% · 68.947% · +8.577 points GPT-4o · 65.082% · 69.28% · +4.198 points

Full methods, results, and limitations: benchmarks. Two caveats we would rather state than bury: the six LoCoMo Plus scores above were supplied by the project owner, and their run artifacts are not publicly available for verification — the published instructions reproduce the harness, not those scores. Windows support is experimental.

Quick start

If you want to manually configure and start PowerContext, see the manual startup guide.

PowerContext keeps durable project context outside any single chat. A first run follows this path:

Agent input → Source evidence → Memory / Topic Memory → PreparedContext → next session or Agent

PowerContext 1.4.0 includes an interactive setup wizard. You need Python 3.11+, Git, and uv; uv can provision Python when needed. To connect an Agent, also install its CLI. In the wizard, choose Basic memory for explicit saves and recall without model APIs; Full memory requires separate Generation and Embedding API credentials. For a local Server without model APIs, see Install and run. macOS and Linux are supported; Windows support is experimental.

Choose the path that matches your goal:

Goal · Choose · What you need Try explicit saves and recall · Basic memory · CLI and Server; no model API Process Sources automatically and use Topic Memory or semantic retrieval · Full memory · Separate Generation and Embedding API credentials; schedules and Scope policies still apply Learn the core workflows in Python · The first seven Jupyter tutorials · A repository checkout and uv; no model or API key

1. Install and run the wizard

uv tool install --force "powercontext[cli,server]==1.4.0"
mkdir -p powercontext-config && cd powercontext-config
powercontext config init --language en --output .env
powercontext config validate --env-file .env
powercontext server run --env-file .env      # keep this terminal open

The wizard asks about storage, local or remote usage, memory capabilities, Dashboard/access, and Agent connections. SQLite is the simplest first storage choice; choose embedded seekdb only when you need it and can approve its dependency install.

The wizard writes one .env environment file and .env.next-steps.md. These files can contain credentials; do not commit them. Keep Server running; in another terminal, return to powercontext-config, reload the generated environment file, and check the connection:

set -a
. ./.env
set +a
powercontext ready
powercontext capabilities

Continue with .env.next-steps.md to create and bind the selected Scopes. Use the real scope_id returned by the creation request; a planned codex-... title is not an ID. Changing directories does not create isolation; use the same Server and Scope in the Dashboard and Agent. Then install the matching plugins and launch a new Agent session. The complete walkthrough covers Codex and Claude Code, Dashboard login, SSH forwarding, HTTPS prerequisites, and observable acceptance checks. For example, the matching Codex installation is:

powercontext setup codex --ref powercontext-v1.4.0
powercontext doctor codex

Before sending the first message in a new Codex session, open /hooks and, when prompted, trust the PowerContext hooks. Without an enabled UserPromptSubmit hook, automatic prompt capture and recall do not run, even if MCP connects. See first-session checks and recovery. After the first check below, use the capability and trigger guide to try all seven Artifact families, Source, and Tag. Basic memory needs no separate Server model API; the Agent still uses its own model.

2. Verify the first end-to-end result

This checks the path that makes PowerContext useful: Source capture → background processing → cross-session recall. In the new Agent session bound to the same Scope, send a concrete decision such as:

We are designing the Aurora acceptance project. Use uv for Python dependencies and .env for configuration.
The first deployment runs on one Linux server, with a Mac connecting through an SSH tunnel.
Restate these constraints without changing any code.

If you enabled Dashboard, open the URL printed by the wizard; an empty Dashboard before capture is expected. Then:

  1. Confirm that the prompt appears as a Source.
  2. After the configured inspection interval and model processing, confirm that a related Topic Memory appears.
  3. Send a related update and confirm that the new Source arrives and the topic content or revision history reflects it.
  4. Start a new Agent session with the same Scope and ask for the Aurora decisions with citations.

doctor codex checks installation and connectivity only. Source capture does not by itself create Memory or Topic Memory, and processing can wait for configured schedules and model work. In Basic memory mode, explicitly ask the Agent to save a decision, then search for it in a new session; that does not test automatic extraction.

3. Explore Python first — no API key

The tutorials run from a repository checkout and take their dependencies from a uv dependency group, so they are not part of the powercontext package. From the repository root:

uv sync --locked --group notebooks
uv run --locked --group notebooks jupyter lab --notebook-dir=examples/jupyter

Start with 01 · Memory across sessions, then work through the 22 Chinese Jupyter tutorials and a complete team workflow to run Memory, context preparation, Handoff, Experience, Skill, and a real Agent step by step. The first seven tutorials need no model or API key.

Common issues

  • doctor codex verifies Codex installation and connectivity. To verify automatic memory, check that a real prompt

becomes a Source, produces a Topic, evolves after a related prompt, and can be recalled in a new session using the same Scope.

  • If Python dependency downloads are slow or fail, configure a package index for

uv and retry.