PocketCoder-A1: autonomiczny agent do nocnego kodowania z Claude
PocketCoder-A1 to narzędzie CLI z panelem webowym, które samodzielnie uruchamia zadania programistyczne. Agent działa w sesjach, zapisuje stan, wykonuje kod przez Claude CLI lub API, a następnie weryfikuje wyniki: pytest, py_compile, sprawdzanie plików. Obsługa dostawców Claude Max, Claude API i Ollama. Instalacja przez pip, uruchomienie na dowolnym projekcie z panelem na localhost:7331.
Opracowany w czystym Pythonie bez frameworków: 15 modułów, 7086 linii. Serwer HTTP na http.server, JSON przez standardowy moduł, pliki — pathlib. Zależności zewnętrzne minimalne: playwright do testów E2E, anthropic/ollama opcjonalnie.
Architektura i uruchamianie Claude CLI
Agent przechwytuje baseline walidacji przed startem, zbiera prompt, uruchamia Claude CLI jako subprocess z parsowaniem NDJSON w czasie rzeczywistym. Kluczowe flagi uruchamiania:
import os, subprocess
env = os.environ.copy()
env.pop("CLAUDECODE", None)
proc = subprocess.Popen(
["claude", "-p", prompt,
"--dangerously-skip-permissions",
"--no-session-persistence",
"--max-turns", "25",
"--verbose",
"--output-format", "stream-json"],
cwd=str(project_dir),
env=env,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
bufsize=1,
)
| Flaga | Przeznaczenie |
|------|------------|
| -p prompt | Tryb nieinteraktywny |
| --dangerously-skip-permissions | Automatyczne potwierdzanie tool_use |
| --no-session-persistence | Bez zapisywania sesji |
| --max-turns 25 | Ograniczenie iteracji |
| --output-format stream-json | Strumień NDJSON |
Parser klasyfikuje zdarzenia: tool_use (Read — niebieski, Bash — fioletowy, thinking — żółty). Metryki rate_limit_event aktualizują panel przez AJAX co 2–3 sekundy.
Trzypoziomowa weryfikacja wyników
Po sesji agent nie kończy się na słowie "COMPLETED". Uruchamiana jest weryfikacja:
- Poziom 1 (BLOCKING): py_compile wszystkich .py, pytest, obecność plików, success_criteria z zadania. Nie przeszedł — retry z iniekcją błędów.
- Poziom 2 (WARNING): ruff, build, git diff — logowane.
- Poziom 3 (ANTI-LOOP): Baseline błędów przed startem. 5 prób max, w przeciwnym razie BLOCKED i przejście do następnego zadania.
Błędy iniekcjonowane do promptu: "VERIFICATION FAILED, attempt 2/5, BLOCKING: tests 2 failed".
Dostawcy i zarządzanie zadaniami
| Dostawca | Mechanizm | Wymagania |
|-----------|----------|------------|
| claude-max | CLI subprocess, Stream-JSON, natywne tools | Subskrypcja Claude Max |
| claude-api | Anthropic SDK, agentic loop, 6 tools | Klucz API |
| ollama | Strumieniowanie tekstu, bez tool calling | Lokalny Ollama |
Zadania tworzone trzema sposobami:
- CLI:
pca task add. - Quick Add na panelu.
- AI Transform: surowy tekst → ustrukturyzowane zadania z priorytetami i kryteriami.
Statusy: PENDING, IN PROGRESS, DONE, BLOCKED. Drag-and-drop dla priorytetów. Cykl życia: agent automatycznie pobiera następne zadanie.
Rzeczywisty przypadek: dodanie dostawcy do epotos-templates
Projekt epotos-templates do przetwarzania dokumentów. Zadanie: sklonować repozytorium, dodać przełączanie dostawców Ollama → DeepSeek.
- AI Transform przekształca surowy tekst w 5 zadań z kryteriami.
- Uruchomienie agenta: claude-api, live-log z THINK/BASH/READ.
- Po sesji — weryfikacja, zielony znacznik przy sukcesie.
- Autoprzejście do następnego: analiza ollama.ts, ai-client.ts, grep portów.
Postęp od 0/5 do 2/5 zadań za sesje, ze szczegółowym logiem tool calls.
Co ważne:
- Autonomiczna praca: zadałeś zadania — wyszedłeś, wróciłeś do zweryfikowanego kodu.
- Trzypoziomowa weryfikacja zapobiega fałszywym pozytywom.
- Real-time panel z parsowaniem NDJSON i metrykami tokenów.
- Obsługa wielu dostawców przez ujednolicony pipeline.
- Open source, 7086 linii czystego Pythona bez frameworków.
Instalacja: pip install pocketcoder-a1, pca init /ścieżka/do/projektu, pca ui. Nadaje się dla programistów middle/senior, chcących odciążyć subskrypcję LLM nocną automatyzacją.
— Editorial Team
Brak komentarzy.