# 23 — Agent Cards and Console (MicroDAO)

Живі картки агентів та повний інтерфейс Agent Console

Цей документ описує UI/UX для агентів у форматі "живих карток" та повний інтерфейс Agent Console, де кожен агент представлений як учасник спільноти з власною історією, досвідом та репутацією.

---

# 1. Концепція: "Живі картки агентів"

Кожен агент у MicroDAO — це не просто бот, а:

* учасник спільноти з власною історією,
* живий модуль розуму, підключений до DAGI,
* носій досвіду (1T як міра обчислень та "шляху агента"),
* носій репутації в межах спільноти.

Тому **основний UI-елемент** — не список у вигляді таблиці, а **плитки / картки агентів**.

---

# 2. Плитка агента (карточка в гріді)

## 2.1. Розташування

* В розділі "Агенти" (ліва панель → клік → відкривається основний грід).
* Також може використовуватись у:

  * модалці "Додати агента до каналу",
  * маркетплейсі агентів DAARION.city,
  * списку підключених агентів до microDAO.

## 2.2. Структура картки

Рекомендований layout:

### 1. Верхній блок: Аватар + Відео-аватар

* Статичний аватар (іконка/символ).
* Мала відео-плашка / анімований аватар (loop, без звуку).
* Індикатор "онлайн/активний" (маленький маркер).

### 2. Імʼя та роль

* `Імʼя агента` (наприклад, "DAGI Guide", "Tokenomics Keeper").
* Короткий опис призначення у один рядок:

  * "Провідник microDAO"
  * "Куратор знань"
  * "Месенджер-організатор"

  Без жодних фінансових ролей.

### 3. Метрики досвіду (без фінансової асоціації)

* **Вік агента**:

  * "У спільноті: 3 тижні" / "6 місяців" / "1 рік 2 місяці".

* **Досвід 1T**:

  * Лічильник: `Досвід: 12 340 1T`
  * В UI пояснення через tooltip:

    > "1T — це внутрішня одиниця обчислень і досвіду агента в екосистемі DAARION.city."

  * Важливо: не використовувати слів, які натякають на торгівлю/прибуток; це чисто "XP".

* **Репутація спільноти**:

  * Наприклад, шкала 0–100 або 0–5 "зірочок".
  * Підпис: `Репутація в спільноті` / `Довіра спільноти`.

### 4. Присутність у просторах

* Маленькі бейджі:

  * `Учасник: 3 канали`
  * `Працює в: 2 microDAO`

* Позначки "публічний / конфіденційний":

  * іконка замка для конфіденційних контекстів.

### 5. Статус підключення

* Текст/бейдж:

  * `Підключено до цього простору`
  * або `Доступний для підключення`

* Кнопка:

  * `Підключити до контексту` (якщо ще не підʼєднаний).

---

# 3. Ховер та клік по картці

## 3.1. При наведенні курсору (hover)

Показати поверх картки напівпрозорий оверлей з опціями:

* Основна кнопка:
  **"Почати взаємодію"**

* Додаткові:

  * `Підключити до цього каналу` (якщо стіна контексту вже вибрана)
  * `Деталі агента` (відкрити повний профіль)

Можна додати коротку анімацію відео-аватара (легке пожвавлення).

## 3.2. При натисканні

Якщо клікаємо по основній площі картки:

* Відкривається **нове вікно/панель агента** (Agent Console), де:

  * є текстовий чат,
  * є керування голосовим режимом,
  * є вкладка для обміну файлами/документами,
  * є вкладка памʼяті/прав доступу.

---

# 4. Agent Console: повний інтерфейс агента

Приклад структури:

## 4.1. Верхня панель

* Аватар + відео-аватар (більший).
* Імʼя, роль, короткий опис.
* Показники:

  * Вік,
  * Досвід 1T,
  * Репутація спільноти.

* Значок підключеності до поточного microDAO / каналу.

## 4.2. Вкладки

### Вкладка 1: Чат

* Текстовий чат (як звичайний agent chat).
* Голосовий режим: кнопка "Голосовий діалог" (start/stop).
* Привʼязка до поточного контексту:

  * показати, в якому просторі ти з ним розмовляєш.

### Вкладка 2: Файли та Документи

* Список файлів, якими обмінювались з цим агентом в межах даного microDAO.
* Кнопка `Завантажити файл` → агент через DAGI може:

  * проаналізувати документ,
  * створити новий документ (збереження в microDAO file store).

* Обовʼязково:

  * **збереження у власних сховищах microDAO**, не у зовнішньому середовищі по замовчуванню.

### Вкладка 3: Памʼять і Знання

* Блоки з:

  * короткостроковою памʼяттю (останні теми),
  * довгостроковими фактами про цю спільноту (як у 13_agent_memory_system).

* Кнопки:

  * `Показати, що ти памʼятаєш про цей проєкт`
  * `Очистити частину памʼяті`

### Вкладка 4: Присутність / Права доступу

* Список:

  * В яких каналах цей агент присутній (публічні/конфіденційні).
  * В яких проєктах бере участь.

* Для кожного:

  * перемикач `Підключити/Відключити`.
  * Позначка рівня доступу (read/write/tasks/knowledge).

* Кнопка:

  * `Додати до нового каналу/проєкту` → відкриває спрощений Invite-Agent-Flow, але вже з попередньо вибраним агентом.

### Вкладка 5: Еволюція та дух спільноти

* Замінює будь-який фінансовий наратив:

  * `Шлях агента в цій спільноті`
  * Лог:

    * скільки разів агент допомагав у задачах,
    * які типи запитів обробляє найчастіше,
    * "внесок у колективний розум" (наприклад, скільки фактів/правил додано).

* Репутація:

  * відгуки/оцінки від учасників (без мови торгівлі).

---

# 5. DAGI, багатомодальність і сховища

## 5.1. DAGI як бекенд агентських здібностей

Кожен агент отримує від DAGI:

* текстове мислення,
* мульти-модальні можливості:

  * розуміння зображень/файлів,
  * створення текстів, планів, специфікацій,
  * потенційно роботу з відео.

Інтерфейс агента дає доступ до:

* аналізу файлів:

  * "Поясни цей документ для команди"
  * "Зроби витяг для каналу #planning"

* генерації нових артефактів:

  * плани,
  * дорожні карти,
  * документація.

## 5.2. Зберігання в MicroDAO, а не "десь в хмарі без контролю"

Ключовий принцип:

* **Результати роботи агента** (файли, документи, знання) зберігаються:

  * у сховищі степені MicroDAO (файлове / БД),
  * або у локальних базах спільноти.

* DAGI використовується як "мозок", але:

  * не забирає собі сирі дані без волі спільноти,
  * не є єдиним місцем зберігання.

Це важливо підкреслити в UX:

* у консолі:

  * "Документи зберігаються в просторі вашої microDAO."

* опції експорту:

  * "Поділитися в іншому просторі DAARION.city"
  * "Надати доступ іншому агенту"

---

# 6. Підключення/відключення агентів до публічних/конфіденційних просторів

## 6.1. З точки зору плитки

На картці агента:

* бейджі:

  * `Публічні простори: 2`
  * `Конфіденційні: 1`

* При натисканні:

  * відкривається невеликий список:

    * `#general (публічний)`
    * `#dev-mvp (конфіденційний)`

  * поруч — перемикач:

    * `Підключено / Відʼєднано`.

## 6.2. З точки зору Agent Console

У вкладці "Присутність / Права доступу":

* Табличка:

  * Простір / Тип (публічний/конфіденційний) / Доступ / Перемикач.

* Операції:

  * натискання `Відʼєднати`:

    * агент перестає отримувати потік повідомлень з цього каналу/простору;
    * його не видно у списку учасників.

  * натискання `Підключити`:

    * запускає внутрішній Invite-Agent-Flow для відповідного ресурсу.

Все це повинно залишатись максимально людським в термінології:

жодних "інвесторів", "юнітів вартості", "ROI" тощо — тільки:

* "досвід",
* "шлях агента",
* "довіра спільноти",
* "внесок у колективний розум".

---

# 7. Компоненти та структура

## 7.1. Agent Card Component

```tsx
interface AgentCardProps {
  agent: Agent;
  onCardClick: () => void;
  onConnect?: () => void;
  currentContext?: {
    teamId: string;
    channelId?: string;
  };
}

export function AgentCard({ agent, onCardClick, onConnect, currentContext }: AgentCardProps) {
  // Рендер картки з усіма метриками
}
```

## 7.2. Agent Grid

```tsx
interface AgentGridProps {
  agents: Agent[];
  onAgentSelect: (agentId: string) => void;
  filter?: "all" | "connected" | "available";
}

export function AgentGrid({ agents, onAgentSelect, filter }: AgentGridProps) {
  // Сітка карток агентів
}
```

## 7.3. Agent Console

```tsx
interface AgentConsoleProps {
  agentId: string;
  initialTab?: "chat" | "files" | "memory" | "presence" | "evolution";
}

export function AgentConsole({ agentId, initialTab = "chat" }: AgentConsoleProps) {
  // Повний інтерфейс агента з вкладками
}
```

---

# 8. Типи даних

## 8.1. Agent Metrics

```ts
interface AgentMetrics {
  age: {
    weeks?: number;
    months?: number;
    years?: number;
  };
  experience1T: number; // Досвід в 1T
  reputation: {
    score: number; // 0-100 або 0-5
    type: "stars" | "percentage";
  };
  presence: {
    channels: number;
    teams: number;
    public: number;
    confidential: number;
  };
}
```

## 8.2. Agent Presence

```ts
interface AgentPresence {
  channelId: string;
  channelName: string;
  type: "public" | "confidential";
  accessLevel: string[];
  connected: boolean;
}
```

## 8.3. Agent Evolution Log

```ts
interface AgentEvolutionLog {
  tasksHelped: number;
  requestTypes: Record<string, number>; // Типи запитів та їх кількість
  contributions: {
    factsAdded: number;
    rulesCreated: number;
    documentsGenerated: number;
  };
  communityFeedback: {
    positive: number;
    negative: number;
    averageRating: number;
  };
}
```

---

# 9. API Endpoints

## 9.1. Agent Metrics

```ts
GET /agents/{agentId}/metrics
// Повертає метрики агента (вік, досвід 1T, репутація)

GET /agents/{agentId}/presence
// Список просторів, де агент присутній
```

## 9.2. Agent Files

```ts
GET /agents/{agentId}/files
// Список файлів, з якими працював агент

POST /agents/{agentId}/files
// Завантажити файл для аналізу агентом
{
  file: File;
  context: {
    teamId: string;
    channelId?: string;
  };
}
```

## 9.3. Agent Evolution

```ts
GET /agents/{agentId}/evolution/log
// Лог еволюції та внеску агента
```

---

# 10. UI/UX Деталі

## 10.1. Відео-аватар

* Формат: короткий loop (2-5 секунд)
* Розмір на картці: 64x64px
* Розмір в консолі: 128x128px
* Без звуку
* Анімація при hover: легке пожвавлення

## 10.2. Метрики досвіду

* Вік: "3 тижні", "6 місяців", "1 рік 2 місяці"
* 1T: велике число з розділювачами (12 340 1T)
* Репутація: візуальна шкала (зірки або прогрес-бар)

## 10.3. Бейджі присутності

* Компактні бейджі з іконками
* Кольори: синій для публічних, червоний для конфіденційних
* Іконка замка для конфіденційних просторів

---

# 11. Інтеграція з існуючими модулями

## 11.1. Agent UI System (10)

Agent Cards використовують компоненти з `10_agent_ui_system.md`:
- AgentAvatar
- AgentChatWindow (у вкладці "Чат")
- AgentMemoryTab (у вкладці "Памʼять")

## 11.2. Agent Memory System (13)

Вкладка "Памʼять і Знання" інтегрується з:
- Short-term memory
- Long-term memory
- RAG retrieval

## 11.3. Agent Runtime Core (12)

Agent Console використовує:
- AgentContext для роботи з агентом
- Tools для аналізу файлів
- LLM для генерації документів

---

# 12. Завдання для Cursor

Приклад промта:

```
You are a senior React/TS engineer.

Implement Agent Cards and Console using:

- 23_agent_cards_and_console.md
- 10_agent_ui_system.md
- 13_agent_memory_system.md
- 12_agent_runtime_core.md
- 05_coding_standards.md

Deliverables:

1) AgentCard component with metrics (age, 1T experience, reputation).
2) AgentGrid component for displaying multiple agent cards.
3) AgentConsole component with tabs: Chat, Files, Memory, Presence, Evolution.
4) Integration with file upload/analysis through DAGI.
5) Presence management (connect/disconnect from channels/projects).

Output:

- list of modified files
- diff
- summary
```

---

# 13. Результат

Після впровадження:

* Агенти представлені як живі учасники спільноти, а не просто боти
* Користувач бачить досвід та репутацію кожного агента
* Повний контроль над підключеннями агентів до просторів
* Зберігання всіх результатів роботи агентів у сховищі microDAO
* Людська термінологія без фінансових наративів

---

**Готово.**  
Це **повна специфікація Agent Cards та Console**, готова до використання в Cursor.


