New request
#719: Feature request: Teams and agents management panel with editable names, roles, and skills
We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.
Summary
When Hermes orchestrates a multi-agent swarm, teams and their member agents are defined in config.yaml. There is currently no way to view, create, or edit teams and agents from the Web UI. Users must edit YAML manually.
Current behaviour
- Teams and agents are configured entirely in
config.yaml - The Web UI shows subagent activity in chat (delegation cards) but provides no panel to manage the team structure
- There is no way to assign names, job titles, or skills to agents from the UI
- Any changes made manually to
config.yamlrequire a restart and are invisible to the UI
Proposed UI
A new Teams panel (alongside the existing Tasks / Skills / Memory panels in the right sidebar) showing:
Team list view
- Each team displayed as a card with its name and a list of its member agents underneath
- Each agent shows:
- Display name (e.g. "Research Agent")
- Role / job title (e.g. "Data Analyst")
- Skills as tags (e.g.
summarisation · fact-checking · web-search) - Active / inactive status indicator
Editing
- Click any team or agent to open an edit form
- Editable fields: team name, agent name, role/title, skills (add/remove tags), model assignment
- Add agent button per team
- Add team button at panel level
- Remove button for teams and agents (with confirmation)
Each skill tag displayed on an agent should be individually clickable. Clicking a skill tag should take the user directly to an editable view for that skill, where they can edit the skill name, description, or remove it entirely. This avoids the user having to navigate separately to find and edit a specific skill — clicking the tag on the agent card is the shortcut directly into that skill's edit page.
Sync behaviour
- On save, the WebUI writes changes back to
config.yamlunder the appropriate team/agent keys using the existingapi/config.pywrite path - After saving, the orchestrator is notified to reload its configuration without requiring a full server restart — similar to the proposed
discover_mcp_tools()rediscovery pattern in #538 - A visible "last synced" timestamp so the user knows the orchestrator is up to date
Why this matters
Users running multi-agent swarms need to be able to inspect and adjust their team structure without touching config files. Edits made in the UI should be immediately reflected in the orchestrator — a one-way sync (UI writes to config, orchestrator picks it up) is the minimum; live two-way sync (orchestrator changes also surface in the UI) would be ideal.
Files likely involved
api/config.py— read/write team and agent keysapi/routes.py— new endpoints:GET /api/teams,POST /api/teams,PUT /api/teams/{id},DELETE /api/teams/{id}, and equivalent/api/agentsroutesstatic/panels.js— Teams panel rendering, edit forms, skill tag inputstatic/style.css— team card, agent row, skill tag stylesapi/streaming.py— hook to signal orchestrator config reload after save
New team management panel with editable agent properties requiring both frontend UI and live config persistence.
- static/js/panels/teams.js
- api/routes/teams.py
- api/config/agent_config.py
- static/templates/teams.html
- static/css/teams.css