Sharing an Agent Externally (Snapshots)
Let outsiders try the agent you’ve raised with a single link, exactly as it is right now. Anonymous visitors can use it without signing into UpServe — they land in a chat view and talk to your agent directly, while every dollar of LLM and tool usage is billed to your credit balance — never theirs. Publishing leaves your original agent unaffected.
The unit of sharing is a snapshot: a frozen, isolated copy of your agent at the moment you publish it. You can keep editing or even delete the original; the snapshot stays untouched.
At a glance
| Item | Detail |
|---|---|
| Unit of sharing | Snapshot (a frozen copy of the agent) |
| Visitor sign-in | Not required |
| Who pays | The owner’s credit balance |
| Link types | link (standalone page) · embed (iframe widget) |
| Expiry | No time-based expiry — owner revokes manually, or guardrails revoke automatically |
| Refreshing content | Swap in the latest state without changing link addresses — the previous version is kept for 7 days (roll-back available) before automatic cleanup |
| Guardrails | Per-session and per-day credit caps, enable/disable toggle, auto-revoke |
| Session retention | Free 3 days · Starter 14 days · Pro 90 days (based on owner’s plan) |
| Attachment retention | Permanently deleted 90 days after upload (counted separately from session retention) |
How source · snapshot · link relate
[Source agent] [Visitor]
(still editable) No UpServe account
│
│ Take snapshot (frozen at this point in time)
│
├─▶ Snapshot A ─┬─ Link 1 ─▶ /share/abc... ─▶ Anonymous user
│ │
│ └─ Link 2 ─▶ /embed/xyz... ─▶ iframe on your site
│ (collected fields / credit caps /
│ origin allowlist are per-link)
│
└─▶ Snapshot B ─┬─ Link 3 ─▶ /share/def...
└─ Link 4 ─▶ ...
※ Each snapshot runs in a separate sandbox — visitor activity never touches the source
※ Edits to the source do NOT propagate to existing snapshots (issue a new one)Snapshot creation status
When you click Create snapshot, a row is created immediately in pending state while the actual file copy runs in the background. Once the copy finishes the status changes to ready; if something goes wrong it becomes failed. You can watch the status update live in the UI. Links cannot be issued until the snapshot is ready.
What a snapshot captures (and what it doesn’t)
A snapshot copies your agent into a separate, isolated sandbox at publish time. From that point on, the original and the snapshot evolve independently.
Captured
- Agent name, description, avatar, behavior instructions
- Enabled tool configuration
- The agent’s file system (memory and working folders) — only whitelisted paths are copied into a fresh sandbox
Not captured
- The original agent’s chat history
- Webhooks, schedules, multi-agent relationships
- The original agent’s credit balance or subscription
Memory exposure warning. Your agent’s file system may contain past conversation summaries, notes, and knowledge files that are personal or sensitive. Before creating a snapshot, review the file manifest in the preview screen and use the exclude paths option to omit anything you don’t want to share externally.
Include a refined copy. Sometimes you want to share the know-how in a memory file but not the personal details and proper nouns baked into it. For those files, choose Include refined in the preview: only a refined copy — with personal data and proper nouns generalised — is packaged into the snapshot. The original file is not shared. Files where refining is advisable are flagged with a “Refine suggested” badge.
File preview. The preview screen shows which files will be copied. You can inspect the content of text files within the whitelisted paths. Binary files are flagged as “binary” — their content is not shown.
Tools available in shared sessions
Shared sessions may only use safe, read-and-respond capabilities. The allowed set includes:
- Web search and page fetch
- Image generation
- File read and file share
- Skill search and inspect
- Canvas list
- Send card (structured UI responses)
- Memory recall, history search, source conversation reference
Anything unsafe or meaningless for an anonymous visitor — code execution, browser automation, desktop automation, skill execution, schedule management, team collaboration — is blocked automatically. The ask-user capability is also auto-disabled in snapshot sessions — instead of pausing for a reply, the agent addresses questions naturally within its text response. You can block additional tools per snapshot via the extra disabled tools list at creation time.
Memory and history tools are never shown by name to visitors. The memory recall (memory_scan), history search (history_read, history_search), and source conversation reference (source_chat_read) tools run silently — visitors see only a generic category label such as “recall” rather than the specific tool name. All other permitted tools (web search, image generation, etc.) display their activity labels as usual.
Read-only reference to the original conversation. A snapshot agent can reference original conversation content only within the scope the owner approved at snapshot creation. That reference is frozen at the moment the snapshot was taken — nothing from subsequent conversations is included. Visitors cannot directly search or browse the original conversation through this mechanism.
Creating a share link
- Open the agent and go to the Snapshot tab (
/agents/<agent>/shared). - Accept the terms of service and privacy policy, then click Create snapshot.
- The preview screen lists every file that will be copied. Exclude any file you don’t want visitors to see or that is unnecessary.
- There is a maximum package size, so trim large files you don’t need.
- The snapshot starts in pending state; it changes to ready once the copy completes.
- Add a link to the snapshot. Each link has its own configuration:
- Type:
link(a standalone external page) orembed(iframe in your own site) - Collected fields: mark name / email / phone as
required,optional, orhidden - Per-session credit cap (e.g. 0.50 USD)
- Per-day credit cap (e.g. 5.00 USD)
- Allowed origins (for
embedlinks): the domains permitted to embed the iframe
- Type:
- Copy the generated URL and distribute it.
linktype:https://upserve.app/share/<link_key>embedtype:https://upserve.app/embed/<link_key>— an embed snippet is offered alongside.
A single agent can have many snapshots, and each snapshot can have many links. Splitting links by campaign or channel lets you track usage separately.
Updating a snapshot
As you keep refining your agent, you’ll often want the content behind an already-shared snapshot to reflect the latest state. In the past that meant creating a brand-new snapshot and reissuing links. Now you can refresh the content while every link you’ve already shared — standalone pages and embeds alike — keeps pointing at the same address.
- Find the snapshot you want to refresh in the snapshot list and click Update.
- A screen opens pre-filled with the name, description, files excluded from sharing, and tools blocked from sharing you set last time. Any files that are new on the source agent since then are excluded by default — check the box to include them if you want them shared.
- Unless you check Keep the previous version’s conversation cutoff, the new version reflects the source agent’s conversation up to this exact moment.
- Click Update and wait while the new version is built. Once it’s ready, every link issued for this snapshot automatically switches over to the new version — you don’t need to touch any URL or embed code you’ve already shared.
The previous version isn’t gone. Expand the Previous version section in the snapshot list to see everything that’s been replaced, and if something’s wrong with the new version, click Roll back to point links back at the older one. Link addresses stay the same during rollback too.
Visitors who were already mid-conversation when the update goes live keep talking to the previous version without interruption; only visitors who arrive afterward land on the new one.
Previous versions are cleaned up automatically after 7 days. Rolling back only works within that window. If you want it gone sooner, you can delete it directly from the snapshot list.
Auto-update (optional)
If updating by hand each time is tedious, turn on auto-update in the snapshot edit screen. When enabled, a new version is created automatically on the interval you set (in days) whenever the original agent has changed, and your share links switch over — the link URLs stay the same. The snapshot list shows which snapshots have auto-update on along with their interval, and if the original has changed since this version (a Differs from source state), you get a notification. Auto-update only runs when the original has actually changed; if nothing changed, no new version is created.
link vs embed
| Item | link | embed |
|---|---|---|
| Entry context | Standalone page | Inside an iframe |
| Loading inside an iframe | Blocked (security) | Allowed |
| Header / background | Visible | Hidden / transparent |
| Parent-page messaging | None | postMessage for user context and auto-resize |
| Origin allowlist | Not used | Only listed domains may embed and exchange messages |
Embed snippet
<iframe
src="https://upserve.app/embed/<link_key>"
style="width: 100%; height: 600px; border: 0; border-radius: 12px;"
allow="clipboard-write"
></iframe>For automatic height, listen on the parent for { type: 'resize', height } postMessage events and update iframe.style.height accordingly.
If your parent page already knows who the visitor is, you can post { type: 'user-context', data: { name, email, phone } } into the iframe to skip the entry form. The phone field is optional. This is only honored when the message originates from an allowed origin.
What the visitor sees
- After opening the link, the visitor sees the agent’s name and description with an entry form.
- They fill in name / email / phone according to the link’s collection policy.
- They check the terms of service / privacy policy consent box — required before the session begins.
- The chat view opens and replies stream in real time.
A ‘Build your own’ link (optional). A “Powered by UpServe” mark appears at the bottom of the shared screen. If the owner turns on Show a ‘Build your own’ link to visitors in the link settings, that mark links to UpServe sign-up, giving visitors who liked the agent an entry point to build their own. It’s off by default and configured per link.
Cost and guardrails
Every LLM call and tool invocation in a shared session is billed to the owner’s credits. Visitors pay nothing. That makes the guardrails essential.
| Guardrail | Behavior |
|---|---|
| Per-session credit cap | Once a single session crosses the cap, it is blocked and rejects further messages |
| Per-day credit cap | Once the link’s daily total crosses the cap, new sessions are refused (resets next day) |
| Auto-revoke | If the owner’s credits are exhausted (credit_exhausted) or the owner’s account is deleted (account_deleted), the link is auto-disabled |
| Link toggle | The owner can disable or delete a link at any time (owner_revoked) |
| Rate limit | Metadata reads: 30/min · Session creation: 10/min and 60/hour (per IP) |
Disabling or deleting a link immediately ends any active sessions on it. Visitors see the termination reason in the UI.
[Visitor] [Owner account]
Anonymous Credit balance
│ ▲
│ Send message │
▼ │ debit
┌──────────────────────────┐ │
│ Snapshot sandbox │ ── LLM / tool call ──────┘
│ (isolated environment) │
└──────────────────────────┘
│
│ Guardrails (all must pass)
▼
┌────────────────────────────────────────────────────┐
│ ⛔ Per-session cap exceeded → session blocked │
│ ⛔ Per-day cap exceeded → new sessions denied │
│ ⛔ Owner credits hit 0 → link auto-revoked │
│ ⛔ Owner disables manually → sessions ended now │
└────────────────────────────────────────────────────┘Operating and monitoring
The owner-facing dashboard at /agents/<agent>/shared exposes:
- Sessions: per-session visitor info, credits consumed, last activity, blocked state
- Message log: full transcripts per session (owner-only)
- Audit log: every link create / update / revoke / CSV export action
- CSV export: four files —
sessions.csv(session list),messages.csv(message detail),usage.csv(credit usage aggregation),audit-logs.csv(audit log)
Using visitor feedback to improve. Once you have published at least one snapshot, the original agent gains access to an inbox of visitor transcripts from all its derived snapshots. Use these to understand what questions visitors ask, where they get stuck, and what to improve in the next snapshot.
Security and privacy
Sharing involves third-party personal data, so the following rules apply.
- Data controller: the snapshot owner is the data controller for visitor data. UpServe is the infrastructure processor.
- Collected fields: name / email / phone (when the visitor enters them), an anonymous session identifier, IP, User-Agent.
- Visitor session isolation: each visitor’s conversation is kept separate — conversations from one visitor do not carry over to any other visitor using the same shared link. Anything generated during a visitor’s session is not retained by the agent, so a later visitor cannot see what an earlier visitor discussed. The memory the owner set at snapshot creation time is what all visitors share, and it does not change based on visitor conversations.
- Session retention: sessions are automatically purged based on the owner’s plan — Free 3 days, Starter 14 days, Pro 90 days. Downgrading triggers a grace period before the shorter retention applies.
- Attachments: permanently deleted 90 days after upload (counted separately from session retention).
- Transcripts: retained until the snapshot is deleted.
- Application logs: 90 days.
- Audit log: retained indefinitely (for legal and security compliance).
- Visitor data deletion: the owner can delete the personal information (name, email, phone) for any individual session from the owner dashboard.
For the public-facing wording shown to visitors, see the Shared Agent Terms and Shared Agent Privacy Policy .
FAQ
Q. If I update the original agent, do existing share links pick up the changes?
No. Snapshots are frozen at creation time. However, using Update from the snapshot list creates a new version from the source agent’s current state while your existing share link URLs stay the same. See “Updating a snapshot” above for details.
Q. Can a visitor permanently change my agent’s memory files or notes?
No. Visitor activity never touches the source agent. Beyond that, anything arising from one visitor’s conversation is not saved back to the agent, so a different visitor arriving via the same link cannot see what earlier visitors discussed. The memory you set at snapshot creation time is the same starting point every visitor gets, and visitor conversations do not alter it.
Q. Can visitors upload files or generate images?
Yes by default (file sharing and image generation are allowed). If cost containment is a concern, add them to the snapshot’s extra-disabled-tools list.
Q. Are password protection and expiry dates supported?
Not currently. To cut access immediately, disable or delete the link; to limit exposure over time, set per-session and per-day credit caps.
Q. Are there limits on how many snapshots or links a single agent can have?
There are no hard product limits on counts. Each snapshot does provision its own sandbox, though, so prune snapshots you no longer use.
Learn more
- Equipping Tools — decide which tools to enable before sharing
- Skills & the Autonomous Skill System — review the skills your visitors will rely on
- Shared Agent Terms
- Shared Agent Privacy Policy
Advanced
You don’t need this for everyday use — it’s here if you want the exact mechanics of updating and rolling back.
How updating works
- Update doesn’t edit a snapshot in place — it builds an entirely new snapshot from the source agent’s current state, then switches every existing link over to it in a single step. The previous version keeps serving traffic until that switch completes.
- Visitors who started a session before the switch stay on the version they connected to; only visitors arriving after the switch land on the new version.
- Once a snapshot becomes a “previous version,” a background cleanup job permanently deletes it — along with any lingering visitor sessions and its sandbox — exactly 7 days after it was replaced. Rolling back only works within that 7-day window.
- Rolling back doesn’t delete the newer version itself — it stays in the list, but from that moment it isn’t connected to any link. Reactivating it means issuing a new link (at a new address) or running Update on it again, and Update always rebuilds from the source agent’s current state — it doesn’t restore this version’s exact prior content.
- A snapshot whose source agent has been deleted can’t be refreshed — the Update button is disabled because there’s no longer a source to pull from.
- There’s no way to hand-edit the files inside a snapshot directly. To change what a shared snapshot contains, update the source agent first, then run Update.