Share and publish an agent
A saved agent can be shared with people or your organization, opened from its own page, embedded on a website as webchat with an inbox behind it, discovered by other agents over A2A and listed on the marketplace.
Updated October 2026Agents3 of 4
Short answer
/agents/<id>/.well-known/agent.json.The share dialog
Open Share from the builder header. Who can access offers three visibilities:
| Visibility | Meaning |
|---|---|
| Only me | Only you can see and use this agent (the default). |
| Anyone in organization | Everyone in your org can find and use this agent. |
| Public link | Anyone signed in to Akili who has the link can use it; it also makes the agent's A2A card public. |
Below it, Invite people grants access to one person by email address with a permission of view, use or edit; People with access lists them with Remove access. Copy link copies the agent's URL. The current setting is shown in the builder header next to the Live badge.
The agent's page
Every agent opens at /a/<agentId>, a chat with the agent inside the app shell. The page asks for sign-in and then applies the agent's visibility. The same route also serves hosted webchat pages: when a segment resolves to a published webchat channel with Hosted page on, that page renders for anyone, account or not, exactly as the embedded widget would.
- Not indexed by default. Search engines ignore a hosted page unless you switch indexing on for that channel.
- Published only. Pausing the channel takes the page down and keeps the slug reserved.
- Same limits as the embed. The origin allowlist, daily visitor cap and the channel's spend limit apply to it.
Webchat on your website
- Step 1
Create a channel
In the builder's Deploy tab choose Deploy as webchat → Create webchat channel. Your agent is already available inside Akili; a channel exists only to publish it on a website. The channel starts as a draft you configure and preview here. - Step 2
Configure and preview
Set the widget title, position (bottom right or bottom left) and brand color, and watch the preview update. Branding footer controls live under Settings → Webchat. - Step 3
Copy the snippet
The embed code is bound to the channel and points at this Akili instance, so it works as copied; there is also an npm option. The widget is about 15 KB gzipped with zero dependencies. - Step 4
Publish
Publish the channel when it is ready. Configuration, verified visitor identity and the host-page API are in Embed the webchat widget; the configurator at/agents/webchat-previewlets you try settings first.
The Deploy tab also shows the REST API option (call the agent with an API key from Settings → Auth Keys; responses stream as Server-Sent Events) and notes that Slack and Microsoft Teams are connected once for the whole workspace under Settings → Integrations rather than per agent.
The inbox
The Webchat inbox at /agents/<agentId>/inbox is where visitor conversations land. Filter by channel at the top.
| Tab | What it shows |
|---|---|
| Conversations | Every webchat conversation with its transcript: Visitor and Assistant turns, Helpful and Not helpful ratings, and the visitor's identity. |
| Needs review | Answers a visitor marked Not helpful, with a knowledge check that says whether a knowledge base is linked, whether anything matched, and what was found. |
| Waiting for a person | Visitors who asked for a human. Take this conversation moves it to With you; reply in the box labeled Reply to the visitor… |
| Funnel | Per channel: Saw the launcher, Opened the chat, Started a conversation, Sent a message, Got an answer, Asked for a person, Marked resolved; plus response latency and time to first token. |
Visitor identity
A transcript names the visitor as the embedding site described them, and says when that is unverified: This name was supplied by the website that embeds the chat. Akili has not checked it. A visitor who never identified themselves is shown as such. To make names trustworthy, set an identity secret on the channel and sign visitor ids on your server; the embed guide has the recipe.
Agent-to-agent: card and keys
Every agent has a stable address and a signing key. Its Agent Card, the A2A discovery document, is served at /agents/<id>/.well-known/agent.json and its public keys at /agents/<id>/.well-known/jwks.json. Both paths sit at the root of the API host, outside the /api prefix every other endpoint uses, so another agent can find them where the standard says to look. The card lists the agent's skills, its identity (key id, JWKS URL, issuer) and the security schemes a caller must satisfy.
- When it is public. The builder's Identity section reads Private — published when the agent is visible to anyone, listed, or enabled for web chat, and Public — open the card once one of those holds.
- Rotating the key. Rotate key issues a new signing key; the previous one stays published so tokens it signed keep verifying.
- Receipts. Committing calls the agent makes under a mandate leave receipts signed with this key; see the Mandates section of the Agents guide.
List it on the marketplace
To offer the agent to other organizations, enroll as a publisher at /marketplace/enroll, then create a listing at /marketplace/new and pick the agent; the listing inherits its avatar. Installing a listing gives the installer a share grant on your agent, and any skills it carries are copied as snapshots. Reviews, security scanning, versions and appeals are covered in the Marketplace guide.
Good to know
- If you only want colleagues to use it: Anyone in organization is enough; no channel, no page, no card.
- If the embed is rejected: the embedding site's origin must be on the channel's allowlist; the Deploy tab shows the exact error the widget reports.
- If visitors keep asking for a person: the Funnel tab shows where conversations stall, and Needs review tells you whether the knowledge base had an answer.
- If you share a draft: there is nothing to share until the agent is created; the Deploy tab says Save your agent first until then.
Frequently asked questions
Does Public link make my agent available without an Akili account?
No. /a/<agentId> asks for sign-in. For a page strangers can open, create a webchat channel and switch on Hosted page: the channel's own URL then serves the agent as a full page with no account, as long as the channel is published.
Can I share an agent with one person?
Yes. In the share dialog, enter their email address under Invite people and choose a permission level (view, use or edit). People with access lists everyone, with Remove access on each row.
Where is the A2A agent card served?
At /agents/<id>/.well-known/agent.json, with the signing keys at /agents/<id>/.well-known/jwks.json. Both are served at the root of the API host, without the /api prefix, so standard discovery works. The card is public once the agent is visible to anyone, listed on the marketplace, or enabled for webchat.
How do I answer a visitor who asked for a human?
Open the agent's inbox, go to Waiting for a person, press Take this conversation and type into Reply to the visitor…; the visitor sees your replies in the widget. The conversation shows With you until it is resolved.