feat: Citizens Layer + Citizen Interact Layer + CityChatWidget
This commit is contained in:
154
docs/users/agents/AGENT_CUSTOMIZATION_GUIDE.md
Normal file
154
docs/users/agents/AGENT_CUSTOMIZATION_GUIDE.md
Normal 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`
|
||||
|
||||
45
docs/users/citizens/CITIZENS_LAYER_OVERVIEW.md
Normal file
45
docs/users/citizens/CITIZENS_LAYER_OVERVIEW.md
Normal 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 (поки описано як наступну фазу).
|
||||
|
||||
|
||||
33
docs/users/citizens/CITIZEN_INTERACTION_LAYER.md
Normal file
33
docs/users/citizens/CITIZEN_INTERACTION_LAYER.md
Normal 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 або громадян.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user