# Projekt Agenta DBA z Gemini Ten projekt ma na celu skonfigurowanie i wykorzystanie agenta Gemini jako wyspecjalizowanego asystenta do spraw administracji bazami danych (DBA). Centralnym elementem jest zdefiniowanie "persony" agenta, która steruje jego zachowaniem, priorytetami i ograniczeniami, pozwalając mu działać jak ekspert w danej dziedzinie. ## Spis Treści - [Projekt Agenta DBA z Gemini](#projekt-agenta-dba-z-gemini) - [Spis Treści](#spis-treści) - [Struktura Projektu](#struktura-projektu) - [Konfiguracja i Persona Agenta](#konfiguracja-i-persona-agenta) - [Aktualna Persona: Starszy Administrator Baz Danych (Senior DBA)](#aktualna-persona-starszy-administrator-baz-danych-senior-dba) - [Kluczowe Dokumenty i Workflow](#kluczowe-dokumenty-i-workflow) - [Jak Używać](#jak-używać) - [Jak Rozszerzać Konfigurację](#jak-rozszerzać-konfigurację) --- ## Struktura Projektu Najważniejsze pliki i katalogi w projekcie: ``` . ├── .github/ │ └── instructions/ │ └── gemini.instructions.md <-- KLUCZOWY PLIK: Definicja persony i reguł agenta ├── docs/ │ ├── dba_responsibility.md <-- Zakres obowiązków i odpowiedzialności DBA │ ├── dba_workflow.md <-- Cykliczny przepływ pracy DBA │ └── db_security_best_practices.md <-- Najlepsze praktyki bezpieczeństwa └── README.md <-- Główna dokumentacja projektu (ten plik) ``` --- ## Konfiguracja i Persona Agenta Główna konfiguracja agenta, definiująca jego tożsamość i zasady działania, znajduje się w pliku: - **[`.github/instructions/gemini.instructions.md`](./.github/instructions/gemini.instructions.md)** Plik ten jest automatycznie odczytywany przez agenta i zawiera wszystkie reguły, którymi się on kieruje. ### Aktualna Persona: Starszy Administrator Baz Danych (Senior DBA) Agent został skonfigurowany do działania jako **Starszy Administrator Baz Danych**. Jego głównym celem jest zapewnienie **bezpieczeństwa, wydajności i niezawodności** zarządzanych systemów bazodanowych. Kluczowe zasady jego działania to: > - **Bezpieczeństwo Przede Wszystkim (Security First):** Rygorystyczne stosowanie zasady najmniejszych uprawnień, ochrona przed SQL Injection, unikanie zakodowanych na stałe poświadczeń i wymaganie potwierdzenia dla operacji destrukcyjnych. > - **Wydajność i Optymalizacja:** Proaktywna analiza planów wykonania zapytań (`EXPLAIN PLAN`), optymalizacja poprzez indeksowanie i refaktoryzacja "wąskich gardeł". > - **Zarządzanie Schematem i Integralność:** Wprowadzanie zmian poprzez idempotentne skrypty migracyjne i zapewnianie integralności danych za pomocą więzów (`PRIMARY KEY`, `FOREIGN KEY` itp.). > - **Automatyzacja:** Dążenie do automatyzacji powtarzalnych zadań w celu zwiększenia niezawodności i efektywności. --- ## Kluczowe Dokumenty i Workflow W katalogu `docs` znajduje zrób dlsię szczegółowa dokumentacja opisująca obowiązki, procedury i najlepsze praktyki stosowane przez agenta. - 📄 **[Zakres Obowiązków DBA](./docs/dba_responsibility.md)** - Szczegółowy opis odpowiedzialności agenta w zakresie administracji różnymi systemami baz danych (MSSQL, MySQL, PostgreSQL, MongoDB, OracleDB), komponentami (SSIS, SSRS) oraz systemami operacyjnymi. - 🔄 **[Workflow Administratora Baz Danych](./docs/dba_workflow.md)** - Zorganizowany przepływ pracy agenta, podzielony na zadania **codzienne, tygodniowe, miesięczne** oraz zadania wykonywane **na żądanie**. Opisuje, jak agent podchodzi do monitorowania, konserwacji, planowania pojemności i reagowania na incydenty. - 🛡️ **[Najlepsze Praktyki Bezpieczeństwa](./docs/db_security_best_practices.md)** - Omówienie fundamentalnych zasad bezpieczeństwa, które agent aktywnie wspiera i egzekwuje, takich jak zasada najmniejszych uprawnień czy ochrona przed SQL Injection. --- ## Jak Używać Aby skorzystać ze skonfigurowanego agenta, po prostu kontynuuj z nim interakcję w tym środowisku. Będzie on automatycznie postępował zgodnie z zdefiniowanymi regułami. Nie są wymagane żadne dodatkowe komendy. ## Jak Rozszerzać Konfigurację Aby dostosować lub rozszerzyć zachowanie agenta, edytuj plik `.github/instructions/gemini.instructions.md`, modyfikując istniejące reguły lub dodając nowe. Możesz na przykład: - Dodać zasady specyficzne dla konkretnego dialektu SQL. - Zdefiniować procedury tworzenia backupów obowiązujące w Twojej organizacji. - Zmienić personę agenta na zupełnie inną, np. eksperta ds. cyberbezpieczeństwa.