Automatyzacja agentów AI: pociągi, sygnały i planistyczne w agent-pool
Serwer MCP agent-pool ułatwia zarządzanie fraktalnymi zespołami agentów bezpośrednio w IDE i Gemini CLI. Wyróżnione zadania są delegowane przez wyróżnione wątki, tworząc podgrupy. Rano orkiestracja była ręczna, teraz dostępne są pociągi, bounce-back, cron i uruchomienia SSH — wszystko w jednej subskrypcji Google AI.
Główny problem: orkiestrator zużywa zasoby na oczekiwanie na wyniki zależnych kroków (analiza → refaktoryzacja → testy). Teraz demon pociągu uruchamia wątki w tle, automatycznie przekazując zależności.
Pociągi dla łańcuchów zadań
Narzędzie create_pipeline definiuje kroki z góry. Demon procesu detached uruchamia wątki po wyzwalaczu:
on_complete— uruchomienie po konkretnym kroku.on_complete_all— oczekiwanie na grupę wątków (fan-in).on_file— reakcja na utworzenie pliku.
Przykład schematu:
┌─ frontend ─┐
research ─┤ ├── deploy
└─ backend ─┘
Demon działa nawet po ponownym uruchomieniu IDE, zapewniając ciągłość.
Sygnały i bounce-back do komunikacji
Agenci sygnalizują zakończenie za pomocą signal_step_complete. Gdy dane są niekompletne, bounce_back zwraca zadanie do poprawy z powodem błędu — analogiczne do "Zażądaj zmian" w GitHubie.
Limit maxBounces zapobiega cyklom. Wątek otrzymuje feedback (np. "brakuje logów"), koryguje i sygnalizuje ponownie.
Planista cron zadań
schedule_task wiąże agenta z wyrażeniem cron, np. 0 9 *. Planista używa blokad plikowych atomowych, aby zagwarantować unikalność wykonania nawet przy wielu sesjach IDE.
Wyniki są zapisywane w .agents/scheduled-results/. Idealne do monitorowania serwerów lub raportowania.
Odległe uruchomienia SSH
W agent-pool.config.json konfiguruje się SSH:
{
"runners": {
"remote": {
"type": "ssh",
"host": "dev-server.company.com",
"user": "agent",
"geminiPath": "/home/agent/.nvm/versions/node/v22.0.0/bin/gemini"
}
}
}
Delegowanie:
delegate_task(
prompt: "Uruchom testy w izolowanym środowisku",
runner: "remote"
)
Zadania kontynuują działanie po zamknięciu lokalnej sesji. Agenci pracują w gałęzi, committują i wysyłają PR.
Sesje do przekazywania kontekstu
CLI Gemini przechowuje historię w sesjach. Przekazanie session_id pozwala kontynuować:
# Analiza
delegate_task(prompt: "Proszę przeanalizować src/auth/") -> task_1
# Wynik
get_task_result(task_1) -> { session_id: "abc-123" }
# Kontynuacja
delegate_task(
prompt: "Wykorzystując wyniki analizy, napisz testy",
session_id: "abc-123"
)
list_sessions pokazuje aktywne sesje.
Polityki dostępu i katalogi
policy ogranicza narzędzia:
read-only— tylko odczyt.safe-edit— edycja plików bez poleceń.
Przykład:
delegate_task_readonly(
prompt: "Sprawdź src/auth/ pod kątem luk bezpieczeństwa",
policy: "read-only"
)
include_dirs rozszerza widoczność poza katalog roboczy.
Grupy agentów i integracja z pociągami
create_group grupuje konfiguracje:
create_group({
name: "backend",
runner: "remote",
skill: "node-dev",
policy: "safe-edit",
max_agents: 3
})
delegate_to_group("backend", "Refaktoryzuj moduł auth", count: 2)
Grupy są zapisywane w .agents/groups.json. W pociągach:
create_pipeline({
name: "Build & Test",
steps: [{
name: "run_tests",
group: "backend",
count: 3,
prompt: "Uruchom zestaw testów dla swojej części"
}]
})
Demon uruchamia count agentów z AGENT_INDEX, czeka na wszystkie z fail-fast: błąd jednego anuluje pozostałe.
Co jest ważne
- Pociągi automatyzują zależności, oszczędzając orkiestratorowi zasoby.
- Bounce-back z limitem zapobiega zacykleniu.
- Uruchomienia SSH i cron zapewniają rozproszone wykonanie.
- Polityki i grupy minimalizują powtarzalność konfiguracji.
- Sesje przekazują pełen kontekst między agentami.
— Editorial Team
Brak komentarzy.