Are you an LLM? View https://a3s-lab.github.io/Code/llms.txt for optimized Markdown documentation, or https://a3s-lab.github.io/Code/llms-full.txt for full documentation bundle. This page is also available as Markdown at https://a3s-lab.github.io/Code/v6.5.2/en/guide/workspace-backends.md
Workspace backends decide where built-in workspace tools read and write files.
The default is the local filesystem rooted at the session workspace. All four
SDKs expose configuration for local files, S3-compatible object storage, and an
optional HTTP/JSON remote git provider. Go uses value configurations where
Node.js and Python use backend objects.
Use this surface when the host owns workspace placement: local development,
browser or container workspaces, object-storage workspaces, or managed sessions.
Optional degraded grep / glob when searchEnabled is set
Not registered
S3WorkspaceBackend + remoteGit
S3 file tools
Optional degraded S3 search
git through remote git, no bash
Object storage cannot service local processes. Do not promise shell execution on
an S3 workspace unless the host provides a separate sandbox through MCP or
A3S Box.
S3 search is intentionally opt-in. When enabled, grep / glob degrade to
object listing and bounded downloads. Configure maxObjectsScanned,
maxGrepBytesPerObject, and searchConcurrency when the bucket can be large or
the endpoint rate-limits.
Logical workspace root inside the bucket; use "" for the bucket root.
accessKeyId
access_key_id
yes
Access key id, normally read from the host environment.
secretAccessKey
secret_access_key
yes
Secret access key, normally read from the host environment or a secret manager.
endpoint
endpoint
no
Custom S3-compatible endpoint; omit for AWS S3 defaults.
region
region
no
Region, defaulting to us-east-1 when omitted.
sessionToken
session_token
no
STS session token when temporary credentials are used.
forcePathStyle
force_path_style
no
Set true for MinIO, RustFS, and most non-AWS endpoints.
maxReadBytes
max_read_bytes
no
Per-read size ceiling; defaults to 10 MiB.
searchEnabled
search_enabled
no
Enables degraded S3 grep / glob; defaults to false.
maxObjectsScanned
max_objects_scanned
no
Per-search object scan cap; used only when search is enabled.
maxGrepBytesPerObject
max_grep_bytes_per_object
no
Per-object download cap for grep; used only when search is enabled.
searchConcurrency
search_concurrency
no
Concurrent object downloads during grep; used only when search is enabled.
Go exposes the same fields on S3BackendConfig: Bucket, Prefix,
AccessKeyID, SecretAccessKey, Endpoint, Region, SessionToken,
ForcePathStyle, MaxReadBytes, SearchEnabled, MaxObjectsScanned,
MaxGrepBytesPerObject, and SearchConcurrency.
remoteGit attaches an HTTP/JSON git provider on top of workspaceBackend. It is
designed for non-local workspaces where the built-in git tool cannot use a
local .git directory.
remoteGit requires workspaceBackend; passing it alone is rejected.
Remote git service base URL, without a trailing slash.
repoId
repo_id
yes
Opaque repository id negotiated with the remote git service.
bearerToken
bearer_token
production
Bearer credential for the remote git service; omit only in trusted development setups.
clientCertPem
client_cert_pem
no
mTLS client certificate path; must be paired with the client key.
clientKeyPem
client_key_pem
no
mTLS client key path; must be paired with the certificate.
requestTimeoutMs
request_timeout_ms
no
Per-call HTTP timeout in milliseconds; defaults to 30000.
maxDiffBytes
max_diff_bytes
no
Client-side cap on diff response bytes; defaults to 1 MiB.
maxLogEntries
max_log_entries
no
Client-side cap on log entries; defaults to 200.
Go exposes the same fields on RemoteGitBackendConfig: BaseURL, RepoID,
BearerToken, ClientCertPEM, ClientKeyPEM, RequestTimeoutMS,
MaxDiffBytes, and MaxLogEntries.