agent-taskbay
Guides

Use the console: chat, tasks, flows, audit and settings

anyone who works in the Taskbay console day to day. You will have a map of every screen, know what each control does, and know which actions your role allows.

> Who this is for: anyone who works in the Taskbay console day to day. You will have a map of every screen, know what each control does, and know which actions your role allows.

The console is the web app you open in the browser. The sidebar lists its screens. The server keeps every task, message and artifact, so you can close the tab and come back later. This page walks through each screen in sidebar order. Taskbay is pre-1.0 (version 0.2.0), so labels and layouts can change between minor versions.

Before you start

  • You are signed in. Locally, npm run dev signs you in as a development administrator. See the Quickstart.
  • Your role decides what you can do. The console has three roles: admin, operator and viewer. "Reviewer" is not a role. It means an operator or admin who can decide an approval. See Sign in and roles.
  • An operator or viewer also needs a grant for each agent. Without one, that agent and its tasks do not appear at all.
  • The UI hides some controls by role, but not all of them. The server always checks. If a button is visible but you lack the right, the action fails with "This action is not permitted."
Actionadminoperatorviewer
Read agents, tasks, conversations and notificationsAll agentsGranted agentsGranted agents
Send messages, answer forms, cancel tasksYesWith an "operate" grantNo
Add or remove agentsYesNoNo
Organization-wide Audit, CSV exportYesNoNo
Read one task's audit trailYesWith read accessWith read access
Admin cards in SettingsYesNot shownNot shown

The sidebar

On a medium screen the sidebar shrinks to an icon rail; from a large screen it shows labels. The sidebar items are Home, Agents, Chat, Inbox, Tasks, Orchestration, Audit, Notifications and Settings. Audit only appears for administrators. On a phone the bottom bar shows Home, Chat, Inbox and Tasks, plus a More tab that opens a sheet with the rest (Agents, Orchestration, Audit for administrators, Notifications and Settings), your identity menu and the theme switch. The Inbox tab shows a count of pending approvals, and More shows a dot when there are unread notifications.

Inbox shows a badge with the number of pending approvals. Notifications shows your unread count (shown as "99+" above 99). The bottom of the sidebar shows your identity menu, a Light / System / Dark theme switch, the tenant of the first agent that reports one, and the version of Agent Taskbay that is running (the package version, for example v0.2.0).

Opening the console root (/) takes you to Chat.

Home

Home is where the console opens. It shows four counts (agents reachable, items that need you, active tasks and unread notifications), each linking to its screen. Needs you lists the approvals and input requests waiting on you, Recent conversations lists your latest chats, and Connected agents lists the catalog with a reachable or failed dot. With no agent connected yet, Home shows a three-step Get started panel instead of Needs you.

Home with a pending approval, recent conversations and the connected sample agents

Agents

Agents lists the agents you can see. A success-coloured dot means the Agent Card was fetched ("Reachable" on hover). A different dot means it failed ("Discovery failed" on hover), and the row shows the error. Use Search agents or skills… to filter by name, description, skill name or card URL.

The sample agents, with the showcase card open

Select an agent to see its card:

  • Capabilities: streaming, push notifications, extended card, and the advertised extension URIs.
  • Interfaces: protocol bindings, URL and tenant.
  • Skills: name and description of each advertised skill.
  • Security: the card signature result, advertised security schemes, and default input and output modes.

Start chat opens a new chat with that agent. It only appears when the card was fetched. Connection setup reopens the connect dialog with this card URL. Remove appears for agents added in the console, not for agents configured through environment variables, and asks "Remove this agent from the catalog?" first.

Add agent opens the "Connect agent" dialog. Every role sees the button, but only administrators can save an agent. The full procedure is in Connect an agent.

Chat

Start or continue a conversation

Chat shows Start a chat with one button per reachable agent, and Recent conversations below it. If you have no agents, it offers Add an agent first.

A conversation is the set of tasks and messages that share one agent, tenant and A2A contextId. One conversation can hold many tasks. It is not stored as its own record. The console groups the tasks you can read when it loads them. Each recent conversation shows its title (the start of the first message you sent), the agent, the task count, how long ago it changed and the state of its latest task.

To continue a conversation, open it from Recent conversations, from Open in chat on a task, or from Open chat → in Orchestration. Its URL starts with /chat/c-, and you can bookmark it.

The chat header shows the agent, the first 18 characters of the contextId ("new conversation" before the first reply) and the latest task state. It has three buttons:

  • Options opens per-request settings (below).
  • { } Wire opens the Sequence panel. It lists the A2A requests and events of this browser session, step by step. Select a row to see its JSON. The panel is a diagnostic view of what this tab saw. It is not the stored record and is empty after a reload.
  • Reset starts a new, empty chat with the same agent.

Send a message

Type in the box and press Enter, or choose Send. Shift+Enter adds a new line. Text as switches between Text (text/plain) and Markdown (text/markdown). A star marks the type the agent prefers. If the agent's card has a suggested example, the empty chat shows it as a button that fills the box.

Choose + (Add a part) to add more parts to the same message:

Menu itemWhat it sends
Upload fileThe file's bytes, base64-encoded, with its name and media type. You can pick several files.
Add file URLA URL reference. The console does not fetch it. The agent may.
Add structured dataA JSON value. It must parse, or you see "Invalid JSON: …".

Each added part shows as a chip you can remove before sending. The line under Text as shows which media types the agent's card accepts. A part outside that list turns amber and says "not in card". The console still sends it, and the agent may reject it.

The whole request, including base64 files, must stay under 16 MB. Larger requests fail with "Request body exceeds the 16 MB limit."

Pick which task a message goes to

When the conversation has unfinished tasks, a Send to row appears above the box. Each chip shows the start of a task ID and its state. The default is the newest task waiting for input or authorization, otherwise the newest unfinished task. new task sends inside the same conversation without a task ID, so the agent can open a new task or just reply.

If your access to an agent is limited to one skill, a Skill picker appears for new tasks, and each new task starts a new conversation context. See skill routing.

Answer an agent that needs you

When a task is waiting, the agent's message has a coloured border and a label:

  • INPUT_REQUIRED: the agent asked a question. Reply in the box. The placeholder reads "Reply to the agent, or pick an option above…". If the agent attached a list of options or choices, they show as buttons that send the chosen text.
  • AUTH_REQUIRED: the agent needs an authorization the console cannot supply. The bubble says "Complete the authorization the agent asked for, then reply here to resume. In-app credential exchange is not built yet."

If the agent advertises the structured-form extension and sends a form, the bubble shows the form. Fill in the fields (required fields have a star) and choose the agent's submit button. The console checks the values first and shows an error under each invalid field. The values go to the agent as one JSON data part. A form that was already answered, or no longer applies, shows as plain data. If the agent's card defines a start form, a Start with a form: section appears above the box while new task is selected.

A chat waiting on the sample agent's deploy form

Agents that advertise A2UI can draw a small interface under their messages. Pressing one of its buttons sends your input to the agent. What is and is not rendered is in Rich content.

An approval is not answered in chat. It appears in Inbox. See Approvals and ownership.

What you see while a task runs

Your messages sit on the right in a soft blue bubble under a You label. The agent's messages, progress, activity and results sit on the left under the agent's name and avatar. The label appears when the speaker changes, so a run of messages from one side shares one label.

Each task has a task card with its title, state, the start of its task ID and context ID, and a step list (for example submitted, working, input required, completed). A new chat becomes its conversation as soon as Taskbay receives the first saved task snapshot, so progress and activity stay visible while a streaming agent works.

While the agent works, its status updates fold into one Progress log under the task card. It is open while the task runs and folded once it finishes. Text updates read as lines. Structured parts appear as one-line steps that open to the full JSON, with a raw view. Each step shows what it is (tool call, result, code, code output, reasoning, error or data), the tool name or best title, the call id when there is one, and a short preview such as path: "/kb". Tool calls and results are recognized from Google ADK (adk_type), OpenAI, Anthropic, LangChain / LangGraph, Vercel AI SDK and MCP shapes as well as plain { id, name, args | response } envelopes; a result that only carries its call id is named after the call. Failed results and errors are shown in red, reasoning opens to its text, and any other JSON is summarized by its title, id and first fields (or as a list or table with its size). Nothing an agent sends is skipped: a shape Taskbay does not recognize still gets a row and its full JSON.

Long content is folded rather than cut: a long message, result or update shows its first lines with Show all N lines, a file inside a tool result keeps its line breaks, and big JSON lists and tables show the first 100 entries with Show more. When a sub-agent other than the agent wrote an update (Google ADK adk_author), its name appears above that update. Tool calls, results and reasoning sent outside status updates fold into a separate Activity log.

When the agent stops working, to ask you something or because the task ended, its last message is the agent speaking to you and stays in the conversation: an Input required question with its quick replies or form, the final reply, or the reason a task failed or was rejected. The reply can arrive in any of the ways A2A allows: a direct message, the task history, a status message or a standalone message in the task. Two exceptions keep the conversation clean: a status update the agent sent while still working ("Summarizing…") stays in Progress when a result follows it, and a last message that only repeats a finished text result is shown once. Artifacts appear as a highlighted Result card below the task, so the outcome stands out from the progress. A text result reads as prose (Markdown is formatted); other result parts render as tables, trees, media or download cards, following the rules in Rich content.

Change the content view

Text can be viewed another way without changing it. Ordinary sentences carry no controls. When text has another useful view, small controls appear under it:

  • Format as Markdown (or JSON, CSV) when the text looks like that format, and Plain text to go back. An agent's Markdown and JSON are formatted from the start, even when the agent labelled them wrongly (for example JSON sent as text/plain or text/html); your own messages are shown the way you sent them.
  • Preview HTML for HTML that was declared or detected. HTML is never rendered by default: the text view shows its source in a contained code block.
  • ⋯ opens a menu with the type the sender declared ("Sent as text/plain") and every view: Auto, Text, Markdown, JSON (when valid), CSV (when applicable) and Sanitized HTML.

Preview HTML opens an isolated iframe in a dialog on desktop or a sheet on phones. Inline sanitized HTML strips styles; the rich preview retains CSS inside the iframe. Neither view runs scripts or loads remote resources; links, forms and embedded active content are removed. Viewing choices are local to that message and reset when it is remounted. They never edit the stored content, its media type, or anything sent to an agent.

Cancel on the task card appears while the task is active. It asks "Cancel this task?" and then asks the agent to cancel. A toast says "Task canceled" on success. The agent decides whether it can cancel.

Per-request options

Options shows the A2A send configuration for this chat:

OptionEffect
returnImmediatelyAsk the agent to return the task as soon as it exists instead of waiting. Starts on for agents whose card advertises streaming; otherwise starts from your Settings value. Taskbay then follows active tasks over the agent's stream.
historyLengthHow many history messages the agent returns. Empty means no limit. Starts from your Settings value.
acceptedOutputModesMedia types you accept. Starts from the agent card's output modes, or your Settings defaults if the card declares none. A star marks modes the card declares.
referenceTaskIdsEarlier tasks in this conversation that the next message builds on. Cleared after each send.

These options stay for the chat you have open. They are not saved.

Tasks

Tasks lists the tasks you can read, newest first, 50 per page, with Previous, Refresh and Next. Filters: All, Active, Needs you, Done, Mine, Overdue and Unassigned. Each row shows the title, state, short task ID, agent and last change. It also shows the assignee, the due time and "escalated" when they apply.

Open a task to see its detail page. The header shows the title, state, full task ID, context ID and agent. The buttons are:

  • Refresh reloads the task.
  • Open in chat opens the conversation the task belongs to.
  • SubscribeToTask asks the server for the task's latest state from the agent's stream. It only works while the task is active and the agent supports it.
  • CancelTask asks the agent to cancel, after the same "Cancel this task?" prompt.

The cards are:

CardShows
OwnershipAssignee, due time, escalation, recent ownership events. See Approvals and ownership.
Status timelineEach state the task passed through, with its time
HistoryMessages in order, labelled USER or AGENT. Non-text parts show as [kind · media type].
ArtifactsEach artifact's name and media type. Download appears for files the server archived. "No artifacts yet." otherwise.
ApprovalsApprovals for this task, and Request approval while the task is active
Internal notesTeam notes, never sent to the agent
Audit trailThe latest 8 entries for this task, and View the full trail
IdentifierslocalId (the console's own ID, used in URLs), taskId, tenant, contextId, the number of messages (messageIds), the artifact IDs, and any referenceTaskIds. A reference links to the other task when the console knows it.

The remote IDs come from the agent and are for diagnosis. The console uses localId for links and permission checks. See Durable tasks.

A completed task, with its timeline, history and the approval that released it

Orchestration (Flows)

Orchestration (the Flows item on small screens, URL /flows) is a read-only picture of one conversation. It does not define, run or schedule workflows.

It shows conversations that contain at least one task. With several, a row of tabs lets you pick one. The default is the conversation with the most tasks. For the chosen conversation it shows:

  • the contextId and Open chat →,
  • a Conversation agent box naming the agent,
  • one card per task. A task that lists other tasks of the same conversation in its referenceTaskIds sits in a second column with those IDs on the card.

The arrows are only a layout. They show references the agent or you set, not an execution order the console enforces. References to tasks outside the conversation are not drawn. Each card links to its task. The console has no link between tasks of different agents yet.

One conversation in Orchestration, with later tasks pointing at earlier ones

Inbox and Notifications

Inbox gathers tasks waiting for a person and open approvals in one list. Approving, claiming, assigning and escalation are covered in Approvals and ownership.

Inbox open on a pending high-risk approval

Notifications lists your own notifications, newest first, 30 at a time, with All and Unread tabs, Mark all read and Show older notifications. Unread items have a dot. Items that need you, such as a new approval or a task waiting for input, carry an "ACTION" tag until read. Opening one marks it read and goes to the task or approval. Read marks are stored on the server, so they follow you across browsers. What triggers a notification, and the optional webhook, are in Notifications.

Audit

Audit is the organization-wide audit trail. Only administrators see it in the sidebar. A non-admin who opens /audit sees "Administrators only".

The trail is read-only and newest first, 25 entries at a time with Show older entries. Each entry is one sentence ("You approved …", "The agent requested approval: …"), a time, and a link to the task. Details expands the exact facts: revision and digest, proposed or sent content, rationale, risk, expiry and delivery result. Note text is never shown, only that a note was added.

The audit trail after an approval was requested and approved

Filters:

  • Group tabs: All, Approvals, Ownership & notes, Messages sent and Access & identity.
  • From and To limit the time range.

Export CSV downloads up to 200 rows of the current filter as audit-trail.csv. It is for administrators only.

Anyone who can read a task can see that task's trail through View the full trail on the task page. That view is titled "Task audit trail", has Back to task, and offers only the All, Approvals and Ownership & notes tabs to non-admins.

Settings

Settings mixes two kinds of setting. Know which kind you are changing.

Saved in this browser

Request defaults and Extensions are stored in your browser's local storage (key agent-taskbay.settings). They apply only to chats you open in this browser. They are not saved on the server, not shared with other people, and not recorded in the audit trail. Every role can change them.

CardSettingEffect
Request defaultsPlain text, Markdown, Structured data, PDF filesThe acceptedOutputModes used when an agent card declares none. The first three are on by default.
Return immediatelyDefault for agents that do not advertise streaming. Streaming-capable agents start with the option on; the per-chat switch overrides it. Off by default.
Push notificationsAlways off and disabled. It does nothing. Push from agents into Taskbay is set on the server; see Receive push callbacks from agents.
historyLengthDefault for the chat option. Empty means unset.
ExtensionsExtension URIs, Add, toggle, Remove extensionURIs you activate on every message you send, in addition to the extensions the console activates itself

Organization settings (administrators only)

These cards load from the server. If you are not an administrator, the server answers 403 and the cards do not appear. Changes apply to the whole organization.

CardWhat an administrator can do
Teams and accessCreate team, Add member, Remove a member, Grant access (to everyone, a member or a team, for a whole agent or one skill, with Read or Read and operate), and Revoke. See Give people access to agents and skills.
Agent credentialsSee whether each agent has a credential and its kind ("configured", "revoked" or "unconfigured"). Secrets are set with a CLI on the server and never shown. See Agent credentials.
EscalationAdd a rule (Applies to, Escalate to, Save rule) and Turn off or Turn on a rule. See Approvals and ownership.
Notification channelSee whether the webhook is configured, how many deliveries succeeded, are waiting, or gave up, the last failure, and Send test notification. The URL and secret live in server configuration. See Notifications.

When it fails

SymptomLikely causeWhat to do
"This action is not permitted." when sending, cancelling or adding an agentYour role or grants do not allow it. Viewers never send.Ask an administrator for an "operate" grant or a different role
The message box is greyed outThe agent's card is still loading. The console waits for it because extensions depend on it.Wait. If it stays disabled, check the agent on Agents.
"Durable task stream unavailable; query task or command status before retrying."The command failed or has an uncertain outcome, or the live view brokeOpen the task under Tasks and check its state before sending again. The console never resends on its own. See Durable tasks.
"Request body exceeds the 16 MB limit."Attached files are too large once base64-encodedSend smaller files, or a URL part
"Enter a full URL, including https://"The file URL is not a full URLInclude the scheme
"Invalid JSON: …"The structured data part does not parseFix the JSON
A form shows as raw dataThe agent does not advertise the extension, the form is outside the supported subset, or it was already answeredSee Rich content
"Conversation not found" / "This conversation is unavailable in the current organization."The link is from another organization, or you lost read accessOpen the chat from Recent conversations, or ask for a grant
"Task not found"The task does not exist or you cannot read it. The server answers 404 rather than 403.Ask an administrator for a grant
Banner ending "Retrying server sync…"The browser could not load tasks from the serverCheck the server is running. The console retries every 5 seconds.
"Administrators only" on AuditYou are not an administratorOpen a task and use View the full trail
Admin cards missing in SettingsYou are not an administratorAsk an administrator
"Too many requests. Try again shortly."Per-person rate limitWait a minute

More symptoms are in Troubleshooting.

Limits

  • Pre-1.0: labels, layouts and URLs can change.
  • These screens are not covered by browser end-to-end tests. The structured-form and A2UI renderers have component tests, and the routes behind the screens are exercised by npm run test:http.
  • Conversations and the Orchestration view are built in your browser from the tasks it loads. The browser loads every task you can read, so very large task lists make them slow.
  • The { } Wire panel and the chat options are per tab and are lost on reload.
  • Browser-stored settings do not follow you to another browser or device.
  • The UI hides some controls by role but not all. The server enforces every permission.
  • No free-text search over tasks or conversations, and no saved views (#5).

Created and maintained by Shashi Kanth G S at allsrc.dev. Visit shashikanth.me.

On this page