Powrót do strony głównej

PocketCoder-A1: autonomiczny agent kodujący na Claude

PocketCoder-A1 — autonomiczny agent do wykonywania zadań kodowania za pośrednictwem Claude z trójpoziomową weryfikacją i web-dashboardem. Używa czystego Pythona, obsługuje wielu dostawców, parsuje NDJSON w czasie rzeczywistym. Rzeczywisty przypadek demonstruje automatyzację dodawania dostawcy do projektu.

Uruchom Claude do autonomicznego kodowania: PocketCoder-A1
Advertisement 728x90

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:

Google AdInline article slot
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 |

Google AdInline article slot

| --dangerously-skip-permissions | Automatyczne potwierdzanie tool_use |

| --no-session-persistence | Bez zapisywania sesji |

| --max-turns 25 | Ograniczenie iteracji |

Google AdInline article slot

| --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

Advertisement 728x90

Czytaj dalej