@sisu-ai/tool-azure-blob
v12.0.0
Published
Work with Azure Blob Storage from agents using tools for read, list, write, delete, and metadata.
Maintainers
Readme
@sisu-ai/tool-azure-blob
Work with Azure Blob Storage from agents using tools for read, list, write, delete, and metadata.
Exports
azureGetBlob({ container, blobName })→{ content: string }azureListBlobs({ container, prefix? })→string[]azureListBlobsDetailed({ container, prefix? })→{ name: string; lastModified?: string }[]azureGetMetadata({ container, blobName })→Record<string, string>(user metadata)azureUploadBlob({ container, blobName, content })→{ ok: true } | { ok: false, error: string }azureSetMetadata({ container, blobName, metadata })→{ ok: true } | { ok: false, error: string }azureDeleteBlob({ container, blobName })→{ ok: true } | { ok: false, error: string }
Write operations are guarded. When writes are disabled the write tools return { ok: false, error } (they do not throw).
Configuration
- Connection:
AZURE_STORAGE_CONNECTION_STRING, orctx.state.azureBlob.connectionString, orctx.state.azureBlob.serviceClient(an instance ofBlobServiceClient).
- Write guard (default: disabled):
ctx.state.azureBlob.allowWrite = true, orAZURE_BLOB_ALLOW_WRITE=1.
Usage
import { Agent } from '@sisu-ai/core';
import { registerTools } from '@sisu-ai/mw-register-tools';
import {
azureGetBlob,
azureListBlobs,
azureListBlobsDetailed,
azureGetMetadata,
azureUploadBlob,
azureSetMetadata,
azureDeleteBlob,
} from '@sisu-ai/tool-azure-blob';
const app = new Agent().use(registerTools([
azureGetBlob,
azureListBlobs,
azureListBlobsDetailed,
azureGetMetadata,
azureUploadBlob,
azureSetMetadata,
azureDeleteBlob,
]));
// Optional runtime config
ctx.state.azureBlob = {
connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING!,
allowWrite: false, // set true to permit upload/setMetadata/delete
};Read “latest” example
// 1) List blobs with lastModified, pick the newest
const items: Array<{ name: string; lastModified?: string }> = await azureListBlobsDetailed.handler({ container: 'rag' }, ctx) as any;
const latest = items
.filter(i => i.lastModified)
.sort((a,b) => (a.lastModified! < b.lastModified! ? 1 : -1))[0]?.name;
// 2) Read its contents
if (latest) {
const { content } = await azureGetBlob.handler({ container: 'rag', blobName: latest }, ctx) as any;
// 3) Optionally delete (requires allowWrite=true)
await azureDeleteBlob.handler({ container: 'rag', blobName: latest }, ctx);
}Community & Support
Discover what you can do through examples or documentation. Check it out at https://github.com/finger-gun/sisu. Example projects live under examples/ in the repo.
Documentation
Core — Package docs · Error types
Adapters — OpenAI · Anthropic · Ollama
- @sisu-ai/mw-agent-run-api
- @sisu-ai/mw-context-compressor
- @sisu-ai/mw-control-flow
- @sisu-ai/mw-conversation-buffer
- @sisu-ai/mw-cors
- @sisu-ai/mw-error-boundary
- @sisu-ai/mw-guardrails
- @sisu-ai/mw-invariants
- @sisu-ai/mw-orchestration
- @sisu-ai/mw-rag
- @sisu-ai/mw-react-parser
- @sisu-ai/mw-register-tools
- @sisu-ai/mw-tool-calling
- @sisu-ai/mw-trace-viewer
- @sisu-ai/mw-usage-tracker
- @sisu-ai/tool-aws-s3
- @sisu-ai/tool-azure-blob
- @sisu-ai/tool-extract-urls
- @sisu-ai/tool-github-projects
- @sisu-ai/tool-rag
- @sisu-ai/tool-summarize-text
- @sisu-ai/tool-terminal
- @sisu-ai/tool-web-fetch
- @sisu-ai/tool-web-search-duckduckgo
- @sisu-ai/tool-web-search-google
- @sisu-ai/tool-web-search-openai
- @sisu-ai/tool-wikipedia
Anthropic — hello · control-flow · stream · weather
Ollama — hello · stream · vision · weather · web-search
OpenAI — hello · weather · stream · vision · reasoning · react · control-flow · branch · parallel · graph · orchestration · orchestration-adaptive · guardrails · error-handling · rag-chroma · web-search · web-fetch · wikipedia · terminal · github-projects · server · aws-s3 · azure-blob
Contributing
We build Sisu in the open. Contributions welcome.
Contributing Guide · Report a Bug · Request a Feature · Code of Conduct
Star on GitHub if Sisu helps you build better agents.
Quiet, determined, relentlessly useful.
