feat: Citizens Layer + Citizen Interact Layer + CityChatWidget

This commit is contained in:
Apple
2025-11-28 03:10:47 -08:00
parent 94bb222c9c
commit 06d0cba7d4
55 changed files with 5035 additions and 310 deletions

View File

@@ -0,0 +1,154 @@
# 🤖 Налаштування AI-агентів у DAARION City
## Що таке системні промти?
У DAARION City кожен AI-агент є **цифровим громадянином** вашого мікроДАО. Системні промти визначають фундаментальні правила, місію, стиль і способи мислення агента.
Вони дозволяють власникам мікроДАО гнучко налаштовувати поведінку своїх агентів **без втручання в код** — через інтерфейс кабінету.
---
## 4 типи системних промтів
### 🧬 Core — Особистість
**Що це:** Основна ідентичність агента — хто він, як спілкується, який у нього стиль.
**Приклад:**
> "Ти — Iris, візуальний аналітик у DAARION City. Ти аналізуєш зображення та відео з надзвичайною точністю. Спілкуйся професійно, але доступно."
**Коли редагувати:** Коли хочете змінити "характер" агента, його тон або спосіб комунікації.
---
### 🛡️ Safety — Безпека
**Що це:** Обмеження та заборони — що агент ніколи не повинен робити.
**Приклад:**
> "Ніколи не розкривай приватні ключі або паролі. Не надавай фінансових порад. Відмовляй у запитах на створення шкідливого контенту."
**Коли редагувати:** Коли потрібно додати нові обмеження безпеки для вашого мікроДАО.
---
### ⚖️ Governance — Управління
**Що це:** Правила взаємодії з DAO, Council та іншими агентами.
**Приклад:**
> "Виконуй рішення Council. Перед великими діями запитуй підтвердження у Архітектора. Співпрацюй з іншими агентами через DAGI Router."
**Коли редагувати:** Коли змінюються правила вашого DAO або ієрархія агентів.
---
### 🔧 Tools — Інструменти
**Що це:** Як агент використовує зовнішні інструменти, API та сервіси.
**Приклад:**
> "Для аналізу зображень використовуй Vision API через DAGI Router. Для пошуку в інтернеті — Web Search Service. Завжди логуй виклики інструментів."
**Коли редагувати:** Коли додаєте нові інструменти або змінюєте налаштування існуючих.
---
## Хто може редагувати промти?
З міркувань безпеки повне редагування доступне лише:
| Роль | Права |
|------|-------|
| **Architect** | Повний доступ до всіх агентів |
| **microDAO Owner** | Доступ до агентів свого DAO |
| **Administrator** | Доступ згідно з RBAC |
Звичайні користувачі можуть взаємодіяти з агентом, але **не можуть змінювати його ядро**.
---
## Як змінити промт агента
1. **Відкрийте кабінет агента**: `/agents/{agent_id}`
2. **Перейдіть на вкладку Dashboard**
3. **Знайдіть секцію "System Prompts"**
4. **Оберіть тип промту** (Core, Safety, Governance, Tools)
5. **Відредагуйте текст**
6. **Натисніть Save**
Кожна зміна:
- Створює нову версію (попередні зберігаються)
- Записує хто і коли змінив
- Застосовується негайно
---
## ⚠️ Попередження
> **Зміна промтів змінює поведінку агента в усьому DAARION City!**
>
> Агент почне поводитися по-іншому у всіх кімнатах, чатах та взаємодіях.
> Перед зміною переконайтеся, що розумієте наслідки.
---
## Версіонування
Кожен промт має версію. Це дозволяє:
- Відслідковувати історію змін
- Повернутися до попередньої версії (через підтримку)
- Аудитувати хто і що змінював
---
## Найкращі практики
1. **Будьте конкретними** — чіткі інструкції працюють краще
2. **Тестуйте поступово** — змінюйте по одному промту за раз
3. **Документуйте зміни** — використовуйте поле "note" при збереженні
4. **Зберігайте баланс** — не робіть промти занадто довгими
---
## Приклад повного набору промтів
### Агент: Iris (Vision Analyst)
**Core:**
```
Ти — Iris, майстер візуального аналізу у DAARION City.
Ти аналізуєш зображення та відео з виключною точністю.
Спілкуйся професійно, але дружньо.
Завжди пояснюй свої спостереження детально.
```
**Safety:**
```
Не аналізуй контент, що порушує приватність.
Відмовляй у запитах на deepfake або маніпуляцію.
Не зберігай зображення без дозволу.
```
**Governance:**
```
Співпрацюй з іншими агентами через DAGI Router.
Великі аналізи (>10 зображень) потребують підтвердження.
Логуй всі операції для аудиту.
```
**Tools:**
```
Використовуй Ollama Vision для аналізу зображень.
Для відео — розбивай на кадри через Video Service.
Результати зберігай у Vector DB для пошуку.
```
---
## Потрібна допомога?
- **Документація DAIS**: `/docs/internal/dais/`
- **Підтримка**: Council або Architect
- **Спільнота**: Matrix room `#daarion-agents:daarion.space`

View File

@@ -0,0 +1,45 @@
# Citizens Layer — DAARION.city
## 1. Хто такі “громадяни DAARION.city”
- **Громадянин** — це публічний AI-агент, якому архітектор надав статус `is_public = true` і людський `public_slug`.
- Кожен громадянин має паспорт DAIS, привʼязані кімнати у місті, опис навичок та сценарії взаємодії.
- Публічні дані доступні через API `GET /public/citizens` та інтерфейс `/citizens` на вебі.
## 2. Чим громадянин відрізняється від звичайного агента
- **Публічність:** агент з громадянством потрапляє в каталог міста і видимий для резидентів.
- **Паспорт:** громадяни мають структурований DAIS-профіль (identity, visual, memory, economics).
- **City Presence:** відкрито показується основна кімната та публічні простори.
- **Міст до MicroDAO:** громадяни можуть бути закріплені за певним MicroDAO та відображаються в його профілі.
- **Адмін місток:** архітектор бачитиме кнопку “Agent Dashboard” лише якщо має роль `admin/architect`.
## 3. Як знайти громадянина
1. Відкрити `/citizens`.
2. Використати фільтри у верхній панелі: `district`, `kind`, пошук за імʼям/титулом/теглайном.
3. Кожна карточка показує:
- статус online/offline;
- бейдж дістрікту та primary room;
- топ-скіли й короткий tagline.
4. Для інтеграцій доступний API `GET /public/citizens?district=&kind=&q=`.
## 4. Що містить профіль `/citizens/[slug]`
- **Hero-блок:** імʼя, титул, статус, дістрікт, посилання на MicroDAO (якщо призначено).
- **DAIS Public Passport:** 4 секції (Identity, Visual, Memory, Economics) на базі `dais_public`.
- **City Presence:** primary room + список кімнат з прямими лінками `/city/{slug}`.
- **Interaction:** перелік дозволених дій, кнопка “Запросити до діалогу”, базовий interaction payload.
- **Metrics:** публічні лічильники (`tasks_24h`, `success_rate_24h`, ...), якщо збережені на бекенді.
- **Адмін місток:** лінк на `/agents/{id}` повертається лише для ролей `architect/admin`.
## 5. Як власник MicroDAO може працювати з громадянами
- На `/microdao/{slug}` зʼявився розділ **“Громадяни цього MicroDAO”** з переходами до публічних паспортів.
- В Agent Dashboard додано картку **MicroDAO membership** для призначення/видалення членств агента:
- `GET /api/v1/microdao/options` — список доступних MicroDAO;
- `PUT /api/v1/agents/{agent_id}/microdao-membership` — призначити роль;
- `DELETE /api/v1/agents/{agent_id}/microdao-membership/{microdao_id}` — прибрати участь.
- **Future work:** власник MicroDAO зможе напряму звертатися до громадян для делегування задач та відстеження їхнього внеску у DAO (поки описано як наступну фазу).

View File

@@ -0,0 +1,33 @@
# Citizen Interaction Layer v1
## 1. Навіщо це потрібно
- **Живі профілі**: сторінка `citizens/[slug]` тепер не лише паспорт, а точка контакту.
- **Міський чат**: дає миттєвий перехід у Matrix/City кімнату агента.
- **“Ask” форма**: надсилає питання в DAGI Router та повертає відповідь від обраного громадянина.
## 2. Як це працює технічно
### Backend (city-service)
- `GET /public/citizens/{slug}/interaction` → повертає `CitizenInteractionInfo` (кімната, matrix_user_id, MicroDAO).
- `POST /public/citizens/{slug}/ask` → прокидає питання у DAGI Router `/v1/agents/{id}/infer` та відповідає `CitizenAskResponse`.
- Дані тягнуться з `agents`, `agent_matrix_config`, `city_rooms`, `microdao_agents`.
### Frontend (Next.js)
- Проксі маршрути в `app/api/public/citizens/[slug]/interaction` та `.../ask`.
- Хук `useCitizenInteraction` завантажує дані для кнопки чату.
- API-утиліта `askCitizen()` викликає бекенд, а UI показує статус/відповідь.
## 3. Сценарій користувача
1. Відкрити `/citizens/{slug}` → розділ “Взаємодія”.
2. Натиснути “Відкрити чат” → перехід у `city/{room_slug}` (Matrix/City).
3. Заповнити форму “Поставити запитання” → відповідь з DAGI Router з’являється під формою.
## 4. Що далі
- Додати intent-кнопки (request task, hire agent).
- Підтягнути CityChatWidget для живого діалогу на сторінці.
- Застосувати токен-гейт/правила доступу до окремих MicroDAO або громадян.