Share an agent as a file¶
An agent bundle is one JSON file that carries an agent's design: its prompt, model settings, tool list, guardrails and autonomy. You can export one of your agents, send the file to someone, and they can import it into their own workspace. A bundle never carries a secret, a knowledge-base id or any data from the workspace it came from.
Ready-made bundles live in examples/agent-bundles/:
a personal assistant, a daily briefing, a research analyst and a meeting-notes
tool. They use only tools that need no account, so they run on a free local
model (see local models). They are SUPERVISED, which means
every tool call waits for a person to approve it in the approvals inbox before it
runs (the agent then continues the task by itself); a small local model that calls
many tools therefore produces many approval requests. Change the agent to
SEMI_AUTONOMOUS in the agent editor if that is too many.
In the console¶
To share one of your agents, open Agents and press Export on its row: the browser downloads the agent file.
To import, open Agents → Agent files (/agents/bundles; an empty Agents page
also offers it). Pick a ready-made agent or
upload or paste a file, check the preview (the tools it may use, the autonomy it
will really get, anything changed for safety), then import. Nothing is created
until you press Import agent. From the same page, Connect channels takes
you to /connect to reach the agent from Telegram, WhatsApp, email and more.
Import safely¶
A bundle comes from someone else, so the server treats it as untrusted:
- the format must be
vegaduta.agent-bundle/1and the design at most 64,000 characters, with at most 100 tools; - every setting that takes one of a fixed set of values must use one of them,
or be left out (then the default applies). An unknown value is refused with
a message naming the field, the value and the allowed values, for example
Unknown value 'BALANCED' for reasoningDepth (allowed: FAST, CAREFUL, RIGOROUS, PLANNED). The fields arereasoningDepth,autonomyTier,tuningMode,experienceMode,providerName,economyProviderName,fallbackProviderName,voiceModelProviderandvideoModelProvider;reasoningDepthis how much checking a turn gets (FASTnone extra,CAREFULone answer check,RIGOROUSalso a self-critique and a check of every tool call,PLANNEDplans the steps first); - a bundle can never grant
FULLY_AUTONOMOUS: it is lowered toSUPERVISED, so every side effect waits for your approval until you change it yourself; - knowledge-base restrictions are dropped, because those ids belong to the author's workspace;
- the agent is created through the same service as any other agent, so your plan limits and ownership apply, and the import is written to the audit log.
Preview first. POST /api/agent-bundles/preview creates nothing and tells
you the tools the agent may use, the autonomy it will really get and what was
adjusted. Read it, then import.
API¶
All three need a signed-in user (or a tenant API key).
| Call | What it does |
|---|---|
GET /api/agent-bundles/{agentId} |
Export one of your agents as a bundle |
POST /api/agent-bundles/preview |
Show what importing a bundle would do |
POST /api/agent-bundles/import |
Create a new agent from a bundle (returns its id) |
curl -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d @examples/agent-bundles/personal-assistant.json \
"$API/api/agent-bundles/import"
Write your own¶
Export an agent from your workspace and edit the JSON, or start from an example. Check a file offline before sharing it:
python3 examples/agent-bundles/validate.py my-agent.json
The checker applies the same rules as the server (including the allowed values of every fixed-choice setting above) and also flags an empty tool list (which would mean "every tool") and anything that looks like a secret. Keep the tool list short: small local models pick tools far more reliably from five than from fifty.