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