Acontext
Features

Disk

S3-backed file storage for your agent

Disk provides persistent file storage with paths, metadata, and secure download URLs.

Agentic Disk SDK

Bring filesystem to your agent with one-line code.

Quick Start

Create a disk

import os
from acontext import AcontextClient, FileUpload

client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))
disk = client.disks.create()
import { AcontextClient, FileUpload } from '@acontext/acontext';

const client = new AcontextClient({
    apiKey: process.env.ACONTEXT_API_KEY,
});
const disk = await client.disks.create();

Upload a file

artifact = client.disks.artifacts.upsert(
    disk.id,
    file=FileUpload(filename="notes.md", content=b"# Meeting Notes"),
    file_path="/documents/",
    meta={"author": "alice"}
)
const artifact = await client.disks.artifacts.upsert(disk.id, {
    file: new FileUpload({
        filename: "notes.md",
        content: Buffer.from("# Meeting Notes"),
    }),
    filePath: "/documents/",
    meta: { author: "alice" },
});

Get file with URL

result = client.disks.artifacts.get(
    disk.id,
    file_path="/documents/",
    filename="notes.md",
    with_public_url=True,
    with_content=True
)
print(result.public_url)
print(result.content.raw)
const result = await client.disks.artifacts.get(disk.id, {
    filePath: "/documents/",
    filename: "notes.md",
    withPublicUrl: true,
    withContent: true,
});
console.log(result.publicUrl);
console.log(result.content?.raw);

List files

result = client.disks.artifacts.list(disk.id, path="/documents/")
for artifact in result.artifacts:
    print(f"{artifact.filename} - {artifact.meta}")
const listResult = await client.disks.artifacts.list(disk.id, { path: "/documents/" });
for (const artifact of listResult.artifacts) {
    console.log(`${artifact.filename} - ${JSON.stringify(artifact.meta)}`);
}

Search files

# Search content with regex
results = client.disks.artifacts.grep_artifacts(disk.id, query="TODO.*")

# Find by path pattern
results = client.disks.artifacts.glob_artifacts(disk.id, query="**/*.md")
// Search content with regex
const grepResults = await client.disks.artifacts.grepArtifacts(disk.id, { query: "TODO.*" });

// Find by path pattern
const globResults = await client.disks.artifacts.globArtifacts(disk.id, { query: "**/*.md" });

Update metadata

client.disks.artifacts.update(
    disk.id,
    file_path="/documents/",
    filename="notes.md",
    meta={"author": "alice", "reviewed": True}
)
await client.disks.artifacts.update(disk.id, {
    filePath: "/documents/",
    filename: "notes.md",
    meta: { author: "alice", reviewed: true },
});

Clean up

client.disks.artifacts.delete(disk.id, file_path="/documents/", filename="notes.md")
client.disks.delete(disk.id)
await client.disks.artifacts.delete(disk.id, { filePath: "/documents/", filename: "notes.md" });
await client.disks.delete(disk.id);

Complete Example

Next Steps

Last updated on

On this page