Agents

An Agent in Agent Explorer is a connection to a single A2A agent (real or mock) and holds all conversations, logs, and configuration for that agent. The terms "Agent" and "project" appear interchangeably in some older docs and in the API path /api/projects — internally an Agent is a Project record, but the UI and the rest of these docs call them Agents.

The Explorer page with seeded example resources

Creating an Agent

  1. Sign in and you'll land on the Explorer page.
  2. Click Add New (top right) → Agent.
  3. The creation dialog opens with three paths:
    • Connect to an existing agent — paste a base URL; the AgentCard is fetched and validated automatically.
    • Upload an AgentCard file — drop a JSON file; useful when the agent isn't network-reachable from the browser.
    • Create a mock agent — name it and pick the mock endpoint versions; a configurable mock A2A server is provisioned.
  4. After the URL/file paths you can choose Connect to this agent (real) or Mock this agent (cloned mock you can edit).

When connecting to a real agent, the protocol version is read from the AgentCard itself — the dialog shows the detected version (e.g. Detected from agent card: v0.3) and there is nothing to choose. Version selection only appears when mocking: the Mock endpoint versions picker controls which versioned endpoints your mock will expose, and it pre-selects whatever the imported card declares.

Agent Types

Agents are visually differentiated in the Agents column of the Explorer:

TypeIconDescription
External AgentGlobe iconConnects to a real A2A agent
Mock AgentFlask iconPowered by a configurable mock agent

Mock Agents display an amber Mock badge.

Agent Detail Page

Selecting an agent opens its detail page with a vertical tab sidebar:

TabDescription
Agent CardAgentCard details and validation status
ConfigurationName, URL, headers, ownership, and (for mocks) skills, response behaviour, API keys
ChatSend A2A messages and watch task state in real time
Flows (mocks only)Visual node-based response logic, per skill
Webhooks (mocks only)Push-notification subscriptions and delivery log
IntegrateCode snippets for cURL, Python, TypeScript
Test HarnessExport a Postman collection
Logs (link at bottom of sidebar)Full request/response history

Agent URL Format

Enter the agent's base URL without the AgentCard path:

CorrectIncorrect
https://agent.example.comhttps://agent.example.com/.well-known/agent-card.json
http://localhost:3000/api/mock-agenthttp://localhost:3000/api/mock-agent/message/send

When the fetched AgentCard declares supportedInterfaces, Agent Explorer sends A2A requests to the matching JSONRPC interface URL — preferring the entry whose protocolVersion matches your selected protocol version — rather than the base URL you entered. If the card declares no usable interface, it falls back to the card's legacy top-level url, and finally to the base URL you entered. For A2A 1.0 agents that declare no JSONRPC interface at all, Explorer falls back to an HTTP+JSON (REST) interface when one is declared — REST requests use the spec paths (POST /message:send, GET /tasks/{id}, …) with Content-Type: application/a2a+json.

When an agent rejects a request with a version-related error — VersionNotSupportedError (-32009) or method-not-found (-32601) — the chat shows a banner offering a one-click switch to the other protocol version. Other A2A protocol errors appear inline in the conversation, prefixed with their spec error name (e.g. Error [TaskNotFoundError]: …).

Streaming

When an agent declares capabilities.streaming in its AgentCard, the chat streams responses live: a Stream toggle appears next to the settings-bar chips (on by default), and agent output renders incrementally as it arrives — artifact chunks append to a live bubble and task-status updates drive the status chip in real time. Under the hood Agent Explorer speaks the version-correct wire method (SendStreamingMessage on v1.0, message/stream on v0.3) and normalizes both dialects' SSE frames server-side, so the browser always consumes one stable event format. If a streaming attempt fails before any events arrive, the message is retried automatically as a regular blocking send; if the connection drops mid-task, Explorer resubscribes to the task once (SubscribeToTask / tasks/resubscribe) to pick up the final state. Mock agents stream genuinely incremental frames, making them a realistic test bed for streaming clients.

Agent Actions

  • Refresh AgentCard — Re-fetch the AgentCard (useful after agent config changes)
  • Delete Agent — Permanently removes the agent, all conversations, logs, and cached AgentCard

Ownership

Agents can be personal (owned by you) or team-owned (shared with team members). The owner is shown as a badge on each agent card.

Managing Multiple Agents

Create a separate agent for each A2A endpoint you want to test. Group related ones into a Workspace for organisation (optional).