Context Storage
Messages, files, and skills — all the storage your AI agents need in one platform
Multi-provider message formats, S3-backed disk storage with search, and reusable skill packages that agents can discover and use.
Core Capabilities
Three storage pillars for complete agent state management — messages, files, and learned skills.
Messages
Multi-Provider Format
Store messages once, retrieve in OpenAI, Anthropic, or Gemini format. Switch providers without rewriting serialization logic.
# Store in any format
session.store_message(blob={...})
# Retrieve in OpenAI format
get_messages(format="openai")
# Retrieve in Anthropic format
get_messages(format="anthropic")Edit Strategies
Manage context window size with composable edit strategies. Remove old tool results, trim by token limit, or apply custom rules.
edit_strategies=[
{"type": "remove_tool_result",
"params": {"keep_recent_n": 3}},
{"type": "token_limit",
"params": {"limit_tokens": 30000}}
]Session Summaries
Get token-efficient summaries of any session for prompt injection. Maintain context without blowing up your token budget.
# Summarize recent turns
summary = client.sessions
.get_session_summary(
session.id, limit=5)
# Inject into new prompt
system_msg = f"Context: {summary}"Disk Storage
File Upload & Download
Upload any file with paths and metadata. Generate secure, time-limited download URLs for sharing artifacts.
artifact = client.disks.artifacts
.upsert(disk.id,
file=FileUpload(
filename="report.md",
content=b"# Report"),
file_path="/docs/")Grep & Glob Search
Search file contents with regex via grep, or find files by path patterns with glob. Full codebase-style search for your agent's files.
# Regex search in contents
client.disks.artifacts
.grep_artifacts(disk.id,
query="TODO.*")
# Glob pattern matching
.glob_artifacts(disk.id,
pattern="**/*.md")Agent Tools
Pre-built LLM function-calling tools (DISK_TOOLS) let your agents read, write, and search files autonomously.
from acontext.tools import ( DISK_TOOLS) # Give agent file access tools = DISK_TOOLS(disk.id) # read_file, write_file, # search_files, list_files
Skill Storage
Skill Packages
Upload reusable skill packages as ZIP files with a SKILL.md, scripts, and resources. Agents discover and use them at runtime.
skill = client.skills.create(
file=FileUpload(
filename="my-skill.zip",
content=f.read()),
meta={"version": "1.0"})
print(skill.name, skill.id)Catalog & File Access
Browse the skill catalog, inspect file indexes, and read any file — text content returned inline, binary files via presigned URLs.
catalog = client.skills
.list_catalog()
skill = client.skills.get(skill_id)
for f in skill.file_index:
result = client.skills
.get_file(skill.id, f.path)
print(result.content.raw)Skill Tools for Agents
Pre-built SKILL_TOOLS let LLMs read skill content via function calling, or mount skills in a sandbox to execute scripts directly.
from acontext.agent.skill \ import SKILL_TOOLS ctx = SKILL_TOOLS.format_context( client, skill_ids) tools = SKILL_TOOLS .to_openai_tool_schema()
Context Storage Platform
How It Compares
See how Acontext Context Storage compares to building it yourself or using other frameworks.
| Acontext | DIY | LangChain Memory | |
|---|---|---|---|
Messages|Multi-provider format | |||
Token-aware retrieval | |||
Edit strategies | |||
Session summaries | |||
Per-user isolation | Manual | Manual | |
Cloud-native / API-first | |||
Disk|S3-backed file storage | Manual | ||
Grep & glob file search | Manual | ||
Pre-built agent file tools | |||
Skills|Skill package storage (ZIP) | |||
Skill catalog & file access | |||
Pre-built agent skill tools |
How It Works
Pick a storage type to see the workflow and code examples.
from acontext import AcontextClient
client = AcontextClient()
# Create a session
session = client.sessions.create(
project_id="my-project"
)
# Store messages (any provider format)
client.sessions.store_message(
session.id,
blob={"role": "user", "content": "Hello!"}
)
client.sessions.store_message(
session.id,
blob={"role": "assistant", "content": "Hi!"}
)# Retrieve in OpenAI format
messages = client.sessions.get_messages(
session.id, format="openai"
)
# Retrieve in Anthropic format
messages = client.sessions.get_messages(
session.id, format="anthropic"
)
# Apply edit strategies
result = client.sessions.get_messages(
session.id,
edit_strategies=[
{"type": "remove_tool_result",
"params": {"keep_recent_n_tool_results": 3}},
{"type": "token_limit",
"params": {"limit_tokens": 30000}}
]
)
print(f"Tokens used: {result.this_time_tokens}")