Skip to content

Collapsible Grouped Agent Sections on Landing Screen #2298

@PingDavidR

Description

@PingDavidR

Summary

The AgentStack landing screen currently displays all registered agents in a flat, unsorted list.
As agent counts grow, discoverability degrades quickly. This request proposes collapsible
grouped sections using AgentProvider.organization as the natural grouping key — a field that
already exists in the A2A spec and is already populated by agents today.


Current Behavior

All agents appear in a single flat list, ordered by registration timestamp. There is no visual
separation between persona agents, orchestrators, tools, or any other logical grouping.

Desired Behavior

Agents are grouped into collapsible sections on the landing screen, where the section header
is derived from AgentCard.provider.organization. Example:

▼ Personas (8)
   [Persona] Builder       — Edit files, run commands, implement code
   [Persona] Documenter    — Write READMEs, inline comments, API docs
   [Persona] Plan Reviewer — Critically evaluate plans, flag risks
   [Persona] Planner       — Break requirements into ordered steps
   [Persona] Red Team      — Find vulnerabilities, injection risks
   [Persona] Researcher    — Gather context from codebases and web
   [Persona] Reviewer      — Review for bugs, security, style, coverage
   [Persona] Scout         — Fast codebase exploration and recon

▼ Workflows (1)
   [Workflow] Sprint Release — Complete sprint release orchestration

▼ (ungrouped)
   ...any agents without provider set

Implementation Hook

AgentProvider is already part of the A2A core spec (AgentCard.provider) and is already
implemented in the AgentStack SDK's @server.agent() decorator as a first-class parameter:

# agentstack_sdk/server/agent.py
provider: AgentProvider | None = None,
# a2a/types.py
class AgentProvider(A2ABaseModel):
    organization: str
    url: str

No spec changes are needed — the grouping key is already there. The change is purely in the
landing screen UI: group the agent list by provider.organization, sort groups
alphabetically, sort agents within each group alphabetically by name, and render an
ungrouped section at the bottom for agents with no provider set.


Additional Suggestions

  • AgentSkill.tags is already populated with "persona" and "workflow" tags in agents
    that implement this pattern — this could be used as a secondary filter or tag-based view
  • Sections should default to expanded, with collapse state persisted per session
  • A search/filter bar across all agents (regardless of group) would complement this well

Why This Matters

With 8+ persona agents and multiple orchestrators, the flat list becomes unusable for
first-time users trying to understand what's available. AgentProvider.organization is
exactly the right semantic hook — it distinguishes who provides the agent and what logical
role it plays, without adding any new spec surface area.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions