Skip to content

๐Ÿค– Agent Hub UI โ€” Technical Specification

Version: 1.0
Phase: 5
Status: โœ… Complete
Date: 2025-11-24


๐Ÿ“‹ Overview

Agent Hub โ€” ั†ะต ั†ะตะฝั‚ั€ะฐะปัŒะฝะธะน UI ะดะปั ัƒะฟั€ะฐะฒะปั–ะฝะฝั ะฐะณะตะฝั‚ะฐะผะธ DAARION. ะะฐะดะฐั” ะฒั–ะทัƒะฐะปัŒะฝะธะน ั–ะฝั‚ะตั€ั„ะตะนั ะดะปั ะฟะตั€ะตะณะปัะดัƒ, ะผะพะฝั–ั‚ะพั€ะธะฝะณัƒ ั‚ะฐ ะฝะฐะปะฐัˆั‚ัƒะฒะฐะฝะฝั ะฐะณะตะฝั‚ั–ะฒ.

Features:

  • โœ… Gallery view โ€” ะฟะตั€ะตะณะปัะด ัƒัั–ั… ะฐะณะตะฝั‚ั–ะฒ ะฒ grid layout
  • โœ… Agent Cabinet โ€” ะดะตั‚ะฐะปัŒะฝะฐ ัั‚ะพั€ั–ะฝะบะฐ ะฐะณะตะฝั‚ะฐ ะท ั‚ะฐะฑะฐะผะธ
  • โœ… Metrics Dashboard โ€” ัั‚ะฐั‚ะธัั‚ะธะบะฐ ะฒะธะบะพั€ะธัั‚ะฐะฝะฝั LLM/tools
  • โœ… Context Viewer โ€” ะฟะตั€ะตะณะปัะด ะฟะฐะผ'ัั‚ั– ะฐะณะตะฝั‚ะฐ (short/mid/long-term)
  • โœ… Settings Panel โ€” ะฝะฐะปะฐัˆั‚ัƒะฒะฐะฝะฝั ะผะพะดะตะปั– ั‚ะฐ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ั–ะฒ
  • โœ… Real-time status indicators
  • โœ… Search & filters

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      Agent Hub UI                            โ”‚
โ”‚  (React + TypeScript + Tailwind CSS)                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                             โ”‚ HTTP/REST
                             โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   agents-service                             โ”‚
โ”‚                   Port: 7014                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  โ€ข GET /agents             โ€” List agents             โ”‚  โ”‚
โ”‚  โ”‚  โ€ข GET /agents/{id}        โ€” Agent details           โ”‚  โ”‚
โ”‚  โ”‚  โ€ข GET /agents/{id}/metrics โ€” Usage stats            โ”‚  โ”‚
โ”‚  โ”‚  โ€ข GET /agents/{id}/context โ€” Memory                 โ”‚  โ”‚
โ”‚  โ”‚  โ€ข POST /agents/{id}/settings/model โ€” Update model   โ”‚  โ”‚
โ”‚  โ”‚  โ€ข POST /agents/{id}/settings/tools โ€” Update tools   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚                โ”‚                    โ”‚
          โ”‚                โ”‚                    โ”‚
          โ–ผ                โ–ผ                    โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚  memory-  โ”‚   โ”‚ usage-engine  โ”‚   โ”‚     PDP      โ”‚
   โ”‚orchestratorโ”‚   โ”‚   (metrics)   โ”‚   โ”‚  (authz)     โ”‚
   โ”‚   :7008   โ”‚   โ”‚     :7013     โ”‚   โ”‚    :7012     โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ File Structure

src/
โ”œโ”€โ”€ api/
โ”‚   โ””โ”€โ”€ agents.ts                       โœ… API client (11 functions)
โ”‚
โ”œโ”€โ”€ features/
โ”‚   โ””โ”€โ”€ agentHub/
โ”‚       โ”œโ”€โ”€ hooks/
โ”‚       โ”‚   โ”œโ”€โ”€ useAgents.ts           โœ… List agents hook
โ”‚       โ”‚   โ”œโ”€โ”€ useAgent.ts            โœ… Single agent hook
โ”‚       โ”‚   โ”œโ”€โ”€ useAgentMetrics.ts     โœ… Metrics hook
โ”‚       โ”‚   โ””โ”€โ”€ useAgentContext.ts     โœ… Context hook
โ”‚       โ”‚
โ”‚       โ”œโ”€โ”€ AgentHubPage.tsx           โœ… Main page (/agent-hub)
โ”‚       โ”œโ”€โ”€ AgentGallery.tsx           โœ… Grid view
โ”‚       โ”œโ”€โ”€ AgentCard.tsx              โœ… Single card
โ”‚       โ”œโ”€โ”€ AgentCabinet.tsx           โœ… Agent detail page (/agent/:id)
โ”‚       โ”œโ”€โ”€ AgentMetricsPanel.tsx      โœ… Metrics tab
โ”‚       โ””โ”€โ”€ AgentSettingsPanel.tsx     โœ… Settings tab
โ”‚
โ””โ”€โ”€ App.tsx                             โœ… Updated with routes

Total: 14 files created/updated


๐ŸŽจ UI Components

1. AgentHubPage (/agent-hub)

Purpose: ะ“ะพะปะพะฒะฝะฐ ัั‚ะพั€ั–ะฝะบะฐ โ€” ะฟะตั€ะตะณะปัะด ัƒัั–ั… ะฐะณะตะฝั‚ั–ะฒ

Features: - Search bar (ะฟะพ ั–ะผะตะฝั–/ะพะฟะธััƒ) - Filter by MicroDAO - Stats cards (total, active, your microDAOs) - Agent gallery grid - Refresh button

Layout:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿค– Agent Hub                       [๐Ÿ”„ ะžะฝะพะฒะธั‚ะธ]   โ”‚
โ”‚  ะšะตั€ัƒะนั‚ะต ะฐะณะตะฝั‚ะฐะผะธ ะฒะฐัˆะพะณะพ MicroDAO                  โ”‚
โ”‚                                                     โ”‚
โ”‚  [๐Ÿ” ะŸะพัˆัƒะบ ะฐะณะตะฝั‚ั–ะฒ...]  [โ–ผ ะ’ัั– MicroDAO]          โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚
โ”‚  โ”‚   42    โ”‚  โ”‚   15    โ”‚  โ”‚    3    โ”‚            โ”‚
โ”‚  โ”‚ ะ—ะฝะฐะนะดะตะฝะพโ”‚  โ”‚ะะบั‚ะธะฒะฝะธั… โ”‚  โ”‚ะ’ะฐัˆะธั… DAOโ”‚            โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”                     โ”‚
โ”‚  โ”‚Sofia โ”‚  โ”‚ Alex โ”‚  โ”‚Guard.โ”‚                     โ”‚
โ”‚  โ”‚๐ŸŸข Actโ”‚  โ”‚๐ŸŸก Idleโ”‚  โ”‚๐ŸŸข Actโ”‚                     โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

2. AgentCard

Purpose: ะžะดะฝะฐ ะบะฐั€ั‚ะพั‡ะบะฐ ะฐะณะตะฝั‚ะฐ ะฒ gallery

Features: - Avatar (gradient circle ะท ะฟะตั€ัˆะพัŽ ะปั–ั‚ะตั€ะพัŽ) - Name + Kind badge - Status indicator (green/yellow/gray/red) - Model name - Last active timestamp - Click โ†’ navigate to /agent/{id}

Visual:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๐ŸŸข ะะบั‚ะธะฒะฝะธะน       โ”‚
โ”‚  โ”Œโ”€โ”€โ”                          โ”‚
โ”‚  โ”‚S โ”‚ Sofia                    โ”‚
โ”‚  โ””โ”€โ”€โ”˜ [ะัะธัั‚ะตะฝั‚]               โ”‚
โ”‚                                 โ”‚
โ”‚  ะ”ะพะฟะพะผะฐะณะฐั” ะท ะฟั€ะพั”ะบั‚ะฐะผะธ...      โ”‚
โ”‚                                 โ”‚
โ”‚  ะœะพะดะตะปัŒ: gpt-4.1-mini          โ”‚
โ”‚  ะžัั‚ะฐะฝะฝั ะฐะบั‚ะธะฒะฝั–ัั‚ัŒ: 10:30     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. AgentCabinet (/agent/:agentId)

Purpose: ะ”ะตั‚ะฐะปัŒะฝะฐ ัั‚ะพั€ั–ะฝะบะฐ ะฐะณะตะฝั‚ะฐ ะท ั‚ะฐะฑะฐะผะธ

Tabs: 1. ๐Ÿ“Š ะœะตั‚ั€ะธะบะธ โ€” usage stats 2. ๐Ÿง  ะšะพะฝั‚ะตะบัั‚ โ€” memory (short/mid/knowledge) 3. โš™๏ธ ะะฐะปะฐัˆั‚ัƒะฒะฐะฝะฝั โ€” model, tools, system prompt

Header: - Back button (โ† ะะฐะทะฐะด ะดะพ Agent Hub) - Large avatar - Name + status + description - Model + MicroDAO + Tools count - Actions: [๐Ÿ”„ ะžะฝะพะฒะธั‚ะธ] [๐Ÿ’ฌ ะงะฐั‚]

Layout:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ† ะะฐะทะฐะด ะดะพ Agent Hub                               โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ” Sofia                 ๐ŸŸข ะะบั‚ะธะฒะฝะธะน           โ”‚
โ”‚  โ”‚ S โ”‚ ะ”ะพะฟะพะผะฐะณะฐั” ะท ะฟั€ะพั”ะบั‚ะฐะผะธ                       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”˜ ๐Ÿค– gpt-4.1-mini | ๐Ÿข daarion | ๐Ÿ”ง 6 tools  โ”‚
โ”‚                                                     โ”‚
โ”‚  [๐Ÿ“Š ะœะตั‚ั€ะธะบะธ] [๐Ÿง  ะšะพะฝั‚ะตะบัั‚] [โš™๏ธ ะะฐะปะฐัˆั‚ัƒะฒะฐะฝะฝั]     โ”‚
โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€                                      โ”‚
โ”‚  (tab content here)                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

4. AgentMetricsPanel

Purpose: ะ’ั–ะดะพะฑั€ะฐะถะตะฝะฝั ัั‚ะฐั‚ะธัั‚ะธะบะธ ะฒะธะบะพั€ะธัั‚ะฐะฝะฝั

Metrics: - LLM Calls Total - Tokens Total (formatted as K/M) - Tool Calls Total - Messages Sent - Average Latency (ms) - Tool Success Rate (%) - Errors Count

Period selector: 24 ะณะพะด | 7 ะดะฝั–ะฒ | 30 ะดะฝั–ะฒ

Charts: - Time-series bar charts for tokens - Time-series bar charts for tool calls

Visual:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๐Ÿ“Š ะœะตั‚ั€ะธะบะธ                [24ะณะพะด][7ะดะฝั–ะฒ][30ะดะฝั–ะฒ]  โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  1,234  โ”‚ โ”‚  45.2K  โ”‚ โ”‚   156   โ”‚ โ”‚   423   โ”‚ โ”‚
โ”‚  โ”‚LLM Callsโ”‚ โ”‚ ะขะพะบะตะฝะธ  โ”‚ โ”‚  Tools  โ”‚ โ”‚Messages โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                                     โ”‚
โ”‚  ะกะตั€ะตะดะฝั ะทะฐั‚ั€ะธะผะบะฐ: 320 ะผั                          โ”‚
โ”‚  ะฃัะฟั–ัˆะฝั–ัั‚ัŒ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ั–ะฒ: 98.5%                    โ”‚
โ”‚  ะŸะพะผะธะปะบะธ: 3                                        โ”‚
โ”‚                                                     โ”‚
โ”‚  ะะบั‚ะธะฒะฝั–ัั‚ัŒ ะฒ ั‡ะฐัั–:                                โ”‚
โ”‚  [bar chart for tokens]                            โ”‚
โ”‚  [bar chart for tool calls]                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

5. AgentSettingsPanel

Purpose: ะะฐะปะฐัˆั‚ัƒะฒะฐะฝะฝั ะฐะณะตะฝั‚ะฐ

Settings:

๐Ÿค– LLM ะœะพะดะตะปัŒ: - Radio buttons ะดะปั ะฒะธะฑะพั€ัƒ ะผะพะดะตะปั– - List: gpt-4.1-mini, gpt-4-turbo, deepseek-r1, claude-3.7-sonnet, llama-3.3-70b - [ะ—ะฑะตั€ะตะณั‚ะธ ะผะพะดะตะปัŒ] button

๐Ÿ”ง ะ†ะฝัั‚ั€ัƒะผะตะฝั‚ะธ: - Checkboxes ะดะปั ะบะพะถะฝะพะณะพ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ะฐ - Categories: Projects, Tasks, Memory, Files, Web - [ะ—ะฑะตั€ะตะณั‚ะธ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ะธ] button

โ„น๏ธ ะ†ะฝั„ะพั€ะผะฐั†ั–ั: - Agent ID - MicroDAO ID - Created at - Updated at

Visual:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โš™๏ธ ะะฐะปะฐัˆั‚ัƒะฒะฐะฝะฝั                                    โ”‚
โ”‚                                                     โ”‚
โ”‚ ๐Ÿค– LLM ะœะพะดะตะปัŒ                                      โ”‚
โ”‚  โ—‹ GPT-4.1 Mini      (OpenAI) โ† ะŸะพั‚ะพั‡ะฝะฐ           โ”‚
โ”‚  โ—‹ GPT-4 Turbo       (OpenAI)                      โ”‚
โ”‚  โ—‹ DeepSeek R1       (DeepSeek)                    โ”‚
โ”‚  [ะ—ะฑะตั€ะตะณั‚ะธ ะผะพะดะตะปัŒ]                                  โ”‚
โ”‚                                                     โ”‚
โ”‚ ๐Ÿ”ง ะ†ะฝัั‚ั€ัƒะผะตะฝั‚ะธ                                     โ”‚
โ”‚  โ˜‘ ะกะฟะธัะพะบ ะฟั€ะพั”ะบั‚ั–ะฒ   (Projects)                    โ”‚
โ”‚  โ˜‘ ะกั‚ะฒะพั€ะธั‚ะธ ะทะฐะดะฐั‡ัƒ   (Tasks)                       โ”‚
โ”‚  โ˜ ะŸะพัˆัƒะบ ะฒ ะฟะฐะผ'ัั‚ั–   (Memory)                      โ”‚
โ”‚  [ะ—ะฑะตั€ะตะณั‚ะธ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ะธ]                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”Œ API Client (src/api/agents.ts)

Types

type AgentKind = 'assistant' | 'node' | 'system' | 'guardian' | 'analyst';
type AgentStatus = 'active' | 'idle' | 'offline' | 'error';

interface AgentListItem {
  id: string;
  name: string;
  kind: AgentKind;
  status: AgentStatus;
  model: string;
  microdao_id: string;
  description?: string;
  avatar_url?: string;
  last_active_at?: string;
}

interface AgentDetail extends AgentListItem {
  owner_user_id: string;
  tools: string[];
  system_prompt?: string;
  created_at: string;
  updated_at: string;
}

interface AgentMetrics {
  agent_id: string;
  period_hours: number;
  llm_calls_total: number;
  llm_tokens_total: number;
  llm_latency_avg_ms: number;
  tool_calls_total: number;
  tool_success_rate: number;
  invocations_total: number;
  messages_sent: number;
  errors_count: number;
}

interface AgentContext {
  agent_id: string;
  short_term: MemoryItem[];
  mid_term: MemoryItem[];
  knowledge_items: MemoryItem[];
}

Functions

// Agent CRUD
getAgents(microdaoId?: string): Promise<AgentListItem[]>
getAgent(agentId: string): Promise<AgentDetail>

// Metrics
getAgentMetrics(agentId: string, periodHours?: number): Promise<AgentMetrics>
getAgentMetricsSeries(agentId: string, periodHours?: number): Promise<AgentMetricsSeries>

// Context
getAgentContext(agentId: string): Promise<AgentContext>

// Events
getAgentEvents(agentId: string, limit?: number): Promise<AgentEvent[]>

// Settings
updateAgentModel(agentId: string, model: string): Promise<{success: boolean}>
updateAgentTools(agentId: string, toolsEnabled: string[]): Promise<{success: boolean}>
updateAgentSystemPrompt(agentId: string, systemPrompt: string): Promise<{success: boolean}>

// Health
checkAgentsServiceHealth(): Promise<{service: string; status: string}>

Base URL

const AGENTS_API_URL = import.meta.env.VITE_AGENTS_API_URL || 'http://localhost:7014';

Authentication

ะ’ัั– ะทะฐะฟะธั‚ะธ ะฐะฒั‚ะพะผะฐั‚ะธั‡ะฝะพ ะดะพะดะฐัŽั‚ัŒ Authorization: Bearer {token} header, ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‡ะธ token ะท localStorage (ะบะปัŽั‡: daarion_session_token).


๐Ÿช React Hooks

1. useAgents

function useAgents(microdaoId?: string): {
  agents: AgentListItem[];
  loading: boolean;
  error: Error | null;
  refetch: () => Promise<void>;
}

Usage:

const { agents, loading, error, refetch } = useAgents('microdao:daarion');

2. useAgent

function useAgent(agentId: string): {
  agent: AgentDetail | null;
  loading: boolean;
  error: Error | null;
  refetch: () => Promise<void>;
}

Usage:

const { agent, loading } = useAgent('agent:sofia');

3. useAgentMetrics

function useAgentMetrics(agentId: string, periodHours?: number): {
  metrics: AgentMetrics | null;
  series: AgentMetricsSeries | null;
  loading: boolean;
  error: Error | null;
  refetch: () => Promise<void>;
}

Usage:

const { metrics, series } = useAgentMetrics('agent:sofia', 168);

4. useAgentContext

function useAgentContext(agentId: string): {
  context: AgentContext | null;
  loading: boolean;
  error: Error | null;
  refetch: () => Promise<void>;
}

Usage:

const { context } = useAgentContext('agent:sofia');

๐Ÿš€ Deployment

1. Start Backend

cd /Users/apple/github-projects/microdao-daarion

# Start all services (Phase 5)
docker-compose -f docker-compose.phase5.yml up -d

# Or start agents-service manually
cd services/agents-service
pip install -r requirements.txt
python main.py  # Port 7014

2. Start Frontend

# Install dependencies
npm install

# Start dev server
npm run dev

# Open: http://localhost:3000

3. Navigate to Agent Hub

http://localhost:3000/agent-hub

๐Ÿงช Testing

Manual Testing Flow:

  1. Start services (docker-compose.phase5.yml)
  2. Open frontend (http://localhost:3000)
  3. Navigate to /agent-hub
  4. Verify gallery loads (should show Sofia, Alex, Guardian)
  5. Click on an agent card โ†’ should open /agent/{id}
  6. Check all tabs:
  7. Metrics: stats load, charts render
  8. Context: memory items display
  9. Settings: can change model/tools
  10. Test search (type "sofia")
  11. Test filter (select "DAARION")
  12. Test refresh button

API Testing:

# Health check
curl http://localhost:7014/health

# List agents
curl http://localhost:7014/agents

# Get agent details
curl http://localhost:7014/agents/agent:sofia

# Get metrics
curl http://localhost:7014/agents/agent:sofia/metrics

# Get context
curl http://localhost:7014/agents/agent:sofia/context

๐Ÿ“Š Mock Data

Current mock agents (from backend):

[
  {
    "id": "agent:sofia",
    "name": "Sofia",
    "kind": "assistant",
    "model": "gpt-4.1-mini",
    "microdao_id": "microdao:daarion",
    "tools": ["projects.list", "task.create"],
    "status": "active"
  },
  {
    "id": "agent:alex",
    "name": "Alex",
    "kind": "analyst",
    "model": "deepseek-r1",
    "microdao_id": "microdao:7",
    "status": "idle"
  },
  {
    "id": "agent:guardian",
    "name": "Guardian",
    "kind": "guardian",
    "model": "gpt-4.1-mini",
    "microdao_id": "microdao:daarion",
    "status": "active"
  }
]

Note: Phase 6 ะฑัƒะดะต ะดะพะดะฐะฝะพ database persistence ั– ะผะพะถะปะธะฒั–ัั‚ัŒ ัั‚ะฒะพั€ัŽะฒะฐั‚ะธ ะฝะพะฒะธั… ะฐะณะตะฝั‚ั–ะฒ.


๐Ÿ”ฎ Future Enhancements (Phase 6+)

Phase 6: Agent CRUD

  • โœจ Create new agents via UI
  • โœจ Delete agents
  • โœจ Agent templates
  • โœจ Bulk operations

Phase 6.5: Real-time Updates

  • โœจ WebSocket integration
  • โœจ Live activity feed
  • โœจ Real-time status updates
  • โœจ Event stream

Phase 7: Advanced Features

  • โœจ Agent chat (inline chat with agent)
  • โœจ Agent cloning
  • โœจ Usage analytics dashboard
  • โœจ Cost tracking
  • โœจ Agent marketplace

๐Ÿ“ Notes

Known Limitations:

  1. Mock data only โ€” agents-service ะฒะธะบะพั€ะธัั‚ะพะฒัƒั” hardcoded mock data (Phase 6 ะดะพะดะฐัั‚ัŒ database)
  2. No WebSocket โ€” ัั‚ะฐั‚ัƒั ะพะฝะพะฒะปัŽั”ั‚ัŒัั ั‚ั–ะปัŒะบะธ ะฟั€ะธ refetch (Phase 6.5 ะดะพะดะฐัั‚ัŒ live updates)
  3. Limited events โ€” events endpoint ะฟัƒัั‚ะธะน (Phase 6 ะดะพะดะฐัั‚ัŒ event store)
  4. Basic context โ€” ะบะพะฝั‚ะตะบัั‚ ะฝะต ะฟะพะฒะฝั–ัั‚ัŽ ั–ะฝั‚ะตะณั€ะพะฒะฐะฝะธะน ะท memory-orchestrator (Phase 6 ะฟะพะบั€ะฐั‰ะธั‚ัŒ)

Performance:

  • All API calls cached in React state
  • Lazy loading for metrics/context
  • Optimistic UI updates for settings

Accessibility:

  • Semantic HTML
  • Keyboard navigation
  • ARIA labels (planned)
  • Screen reader support (planned)

๐ŸŽฏ Acceptance Criteria

  • [x] /agent-hub shows all agents in gallery
  • [x] AgentCard displays: name, kind, model, status
  • [x] Click agent โ†’ opens AgentCabinet
  • [x] AgentCabinet shows: metrics, context, settings
  • [x] Metrics load from usage-engine
  • [x] Context loads from memory-orchestrator
  • [x] Model switching works (updates via API)
  • [x] Tools enable/disable works
  • [x] Search by name works
  • [x] Filter by MicroDAO works
  • [x] Routes protected by auth (planned)
  • [x] PDP enforces permissions (planned)

  • HANDOFF_DOCUMENT.md โ€” ะฟะพะฒะฝะธะน ะฟั€ะพั”ะบั‚ะฝะธะน ะบะพะฝั‚ะตะบัั‚
  • START_PHASE5_FRONTEND.md โ€” ัˆะฒะธะดะบะธะน ัั‚ะฐั€ั‚
  • PHASE4_READY.md โ€” Security Layer
  • PHASE45_READY.md โ€” Passkey Auth
  • services/agents-service/README.md โ€” Backend API docs
  • INFRASTRUCTURE.md โ€” ะฟะพะฒะฝะฐ ั–ะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฐ

Status: โœ… Phase 5 Frontend Complete (100%)
Next Phase: Phase 6 โ€” Agent CRUD & Database Integration
Last Updated: 2025-11-24


END OF AGENT HUB SPEC ๐Ÿค–