You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 412a8b3
Browse filesBrowse the repository at this point in the historyBrowse files
docs: document the object store, file transfer and Playground attachments (#33)
* docs(compose): document the bundled object store and file transfer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(playground): document attaching files to a message
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(kubernetes): document the chart's object store for the Source Cache and file transfer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: allow content-type in the external bucket's CORS rule
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/(guides)/build-your-team/agents/playground.mdx
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,12 +28,21 @@ These tools are not available in a conversation with several agents. Adding an a
28
28
29
29
The agent never asks for credentials in chat. To create an agent, connect an integration or code host, or add a secret, MCP server, or skill, it opens the matching console dialog, prefilled where it can, for you to finish. Trying a [Decision](/build-your-team/decisions) on a sample message is not available here; use **Try with an example** in the Decision editor.
30
30
31
+
## Attach files
32
+
33
+
Use the composer's attach button to add files to a message. An image goes to the agent with the message itself. Any other file uploads to your deployment's object store first and appears as a chip above the composer; the message sends once every upload has finished. The agent receives the file's name and a short-lived download link, and fetches the file into its workspace when it needs it.
34
+
35
+
- A message can carry up to 4 files, each within your deployment's upload limit; the composer tells you when a file is over it.
36
+
- If your deployment has no object store configured, only images can be attached.
37
+
- A message with files is never folded into a turn that is already running. It waits and runs as its own turn once the current one ends.
38
+
31
39
## Work with several agents
32
40
33
41
Add agents before the first message from the Home composer, or add them to an existing Playground conversation.
34
42
35
43
- A message without an `@AgentName` goes to every participant. Each agent may answer or stay silent.
36
44
- An explicit `@AgentName` narrows that turn to the named participant or participants.
45
+
- Files go only to the agents a message addresses. The other participants see that files were attached, by name, but cannot open them.
37
46
- Every agent keeps its own configuration while the browser combines their activity into one conversation.
The command is resumable and can also be rerun after rotating the Transit key. Vault workload identity is supported through `VAULT_JWT_ROLE`, `VAULT_JWT_PATH`, and `VAULT_AUTH_MOUNT` instead of `VAULT_TOKEN`.
189
189
190
+
## File transfer and the object store
191
+
192
+
Console file transfer needs an S3-compatible object store. With one, a person can attach any file to a [Playground](/build-your-team/agents/playground#attach-files) message, and the console can download workspace files of any size up to the store's limit. Bytes go straight between the browser or daemon and the store on short-lived signed URLs; the Control Plane only signs them and never sees file contents. Without a store, only images can be attached, and workspace downloads go through the Control Plane, up to 8 MiB per file.
193
+
194
+
Signed URLs must be `https://`, and browsers and daemons reach the store directly, so the store needs an HTTPS origin they trust.
195
+
196
+
### Bundled store (HTTPS overlay)
197
+
198
+
The `compose.logto.https.yaml` overlay, which puts the stack and Logto sign-in behind Caddy HTTPS, also runs a [RustFS](https://rustfs.com) object store. Caddy serves it on its own HTTPS port, and a one-shot `object-store-setup` service creates the `agentconnect` bucket, its lifecycle rules, and a CORS rule for the console origin on every start. Add these to the overlay's `.env`:
Browsers and daemons follow download links to that port, so they must trust the Caddy CA for it as well as for the console. The repository's [Caddy HTTPS guide](https://github.com/agentconnect-md/agentconnect/blob/main/docs/self-host-caddy-https.md) covers the whole overlay, including exporting and trusting the Caddy root certificate.
221
+
222
+
### External bucket
223
+
224
+
To use your own bucket instead, set `AC_FILE_TRANSFER` in `compose.env` to a one-line JSON document:
-**A lifecycle rule** that expires objects tagged `ac-cache=pending` under `<prefix>/src/` (or `src/` with no prefix) after 2 days. Until it exists, the Control Plane refuses transfers and logs the rule to add. The [chart README](https://github.com/agentconnect-md/agentconnect/blob/main/charts/agentconnect/README.md#bucket-lifecycle-rules) has the document and the commands for AWS and MinIO.
263
+
-**A CORS rule** admitting the console origin for `GET` and `PUT`, with the `content-type`, `x-amz-checksum-sha256`, and `x-amz-tagging` headers.
264
+
-**Permissions** for the key pair: `s3:PutObject`, `s3:PutObjectTagging`, and `s3:GetObject` under `<prefix>/src/*/transfer/`, and `s3:GetLifecycleConfiguration` on the bucket.
265
+
190
266
## Private certificate authorities
191
267
192
268
A GitLab or Gitea instance presenting a certificate from a private authority needs that authority's bundle readable **at a file path that exists inside each process**, including the agent sandbox. Point every runtime at it:
@@ -209,6 +285,7 @@ The Relay never dials the instance — it only receives webhook deliveries — s
209
285
- Replace every default secret and enable encrypted secret storage.
210
286
- Set a connector encryption key if you use connectors, and back up its volume.
211
287
- Put Web, Control Plane, Relay, and Logto behind HTTPS.
288
+
- Give file transfer an HTTPS object store with its lifecycle rule, or leave it off.
212
289
- Preserve WebSocket upgrades.
213
290
- Back up PostgreSQL and test restores.
214
291
- Keep Setup Server, PostgreSQL, and the connector gateway off the public network.
Copy file name to clipboardExpand all lines: content/docs/self-hosting/docker-compose/quick-start.mdx
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -130,6 +130,7 @@ docker compose down --volumes
130
130
| Setup Server | Docker, loopback only | Configure deployment auth and providers |
131
131
| PostgreSQL | Docker | Persist deployment and Control Plane data |
132
132
| Logto OSS | Optional overlay | Local sign-in |
133
+
| Object store (RustFS) | HTTPS overlay | File uploads and large workspace downloads; see [File transfer](/self-hosting/docker-compose/configuration#file-transfer-and-the-object-store)|
133
134
| Daemon | Host or another machine | Run agents and hold local data |
134
135
135
136
The Relay is included so GitHub, webhooks, webchat, and HTTP bot callbacks work without changing the stack. Direct Slack Socket Mode, Telegram, Discord, and Lark / Feishu connections continue to run between the daemon and their providers.
0 commit comments