Jak agenci wchodzą w interakcje z interfejsami API i przepływami pracy GitHub
Agenci sztucznej inteligencji zmieniają sposób wykonywania prac programistycznych. Zamiast ręcznie nawigować po repozytoriach, pisać kod i uruchamiać polecenia, agenci mogą działać bezpośrednio w GitHub, aby wykonywać zadania od początku do końca.
GitHub obsługuje pracę opartą na agencie za pośrednictwem wielu warstw. Agenci mogą używać interfejsów API GitHub do odczytywania stanu repozytorium i wykonywania akcji, przepływów pracy GitHub Actions do wykonywania automatyzacji w kontrolowanych środowiskach wykonawczych oraz Agentowych Przepływów Pracy GitHub do opisywania zadań repozytorium wyższego poziomu w języku Markdown i uruchamiania ich z agentami kodowania w ramach silnych ograniczeń. Zamiast pomijać GitHub, agenci pracują za pośrednictwem tych samych systemów, których używają deweloperzy, w tym gałęzi, żądań ściągnięcia, problemów i automatyzacji.
W tej lekcji dowiesz się:
- Jak agenci wchodzą w interakcje z GitHub za pośrednictwem interfejsów API
- Jak agenci używają przepływów pracy jako środowisk wykonywania
- Jak zmiany repozytorium są tworzone i zarządzane
- Jak wygląda pełny przepływ wykonywania agenta w GitHub
Jak agenci wchodzą w interakcję z GitHub
Agenci GitHub, tacy jak agent Copilot w chmurze, działają w kontekście zdefiniowanego repozytorium i gałęzi. Gdy przypisujesz zadanie, na przykład za pomocą zgłoszenia lub polecenia, agent zaczyna pracować w tym repozytorium.
Agenci mogą:
- Badanie i zrozumienie repozytorium
- Planowanie zmian wymaganych do ukończenia zadania
- Wprowadzanie zmian w kodzie w nowej gałęzi
- Otwórz pull request do przeglądu
Agenci wykonują te działania przy użyciu możliwości platformy GitHub, takich jak interfejsy API i przepływy pracy.
Te akcje mogą być wyzwalane przez zdarzenia repozytorium (takie jak wypychanie lub żądanie ściągnięcia), uruchamianie zgodnie z harmonogramem lub organizowanie za pośrednictwem przepływów pracy agentów, które w miarę upływu czasu automatyzują zadania repozytorium.
Wykonywanie akcji przy użyciu interfejsów API GitHub
GitHub udostępnia interfejsy API, które umożliwiają programowe interakcje systemów z repozytoriami.
Interfejsy API umożliwiają wykonywanie akcji, takich jak:
- Tworzenie gałęzi i commitów
- Odczytywanie danych repozytorium
- Otwieranie i aktualizowanie pull requestów
- Wyzwalanie przepływów pracy
Wszystkie żądania API muszą być uwierzytelniane przy użyciu tokenów, takich jak osobiste tokeny dostępu, tokeny aplikacji GitHub, lub token GITHUB_TOKEN dostarczony w przepływach pracy.
Gwarantuje to, że każda akcja wykonywana przez agenta jest kontrolowana i można przeprowadzić inspekcję.
Jak agenci tworzą zmiany w repozytorium
Agent wprowadza zmiany, podąża za tym samym przepływem pracy co deweloper. Typowa sekwencja wygląda następująco:
- Wybierz gałąź podstawową
- Tworzenie nowej gałęzi roboczej
- Modyfikowanie lub tworzenie plików
- Zatwierdzanie zmian
- Otwórz żądanie ściągnięcia
Istnieją oddzielne operacje interfejsu API dla każdego z tych kroków, w tym praca z odwołaniami Git, zawartością repozytorium i pull requestami.
Oznacza to, że akcje agenta są w pełni dopasowane do standardowego modelu programowania GitHub.
Używanie GitHub Actions jako warstwy wykonawczej
Agenci nie wykonują zadań bezpośrednio na maszynie. Zamiast tego GitHub zapewnia środowiska wykonywania za pośrednictwem przepływów pracy obsługiwanych przez GitHub Actions.
Przepływ pracy to proces zdefiniowany w języku YAML, który uruchamia zadania w odpowiedzi na zdarzenia.
Agenci polegają na tych przepływach pracy, aby:
- Uruchamianie testów
- Weryfikowanie zmian
- Wykonywanie zadań automatyzacji
- Wdrażanie aplikacji
Copilot agent w chmurze działa w środowisku opartym na GitHub Actions, co oznacza, że przepływy pracy tworzą podstawę wykonywania agenta.
Tradycyjne przepływy pracy a przepływy pracy agentów
Tradycyjne przepływy pracy GitHub Actions są zwykle deterministyczne i definiowane w języku YAML: jawnie określasz każdy krok, wyzwalacz i warunek. GitHub Agentowe Przepływy pracy dodają inny model automatyzacji repozytorium. Umożliwiają one opisanie żądanego wyniku w języku Markdown, zdefiniowanie barier zabezpieczających w frontmatterze i wykonanie tej intencji przy użyciu agenta kodowania w GitHub Actions. Najlepiej nadają się do zadań związanych z repozytorium o otwartym, ale określonym zakresie, takich jak triage, raportowanie, utrzymanie dokumentacji, analiza niepowodzeń w integracji ciągłej i usprawnianie kodu. Nie zastępują potoków ciągłej integracji/ciągłego wdrażania; rozszerzają je o to, co GitHub opisuje jako "Ciągła sztuczna inteligencja".
Co sprawia, że przepływ pracy agenta różni się
Przepływ pracy agenta GitHub ma dwie główne części:
- Frontmatter dla konfiguracji, takich jak wyzwalacze, uprawnienia, narzędzia i bezpieczne wyniki输出
- Instrukcje języka Markdown opisujące zadanie w języku naturalnym
Język Markdown wyraża intencję, podczas gdy frontmatter definiuje granice. Przepływ pracy jest następnie tworzony jako plik lock, który jest wykonywany przez GitHub Actions.
on: schedule: daily
permissions: contents: read issues: read pull-requests: read
safe-outputs: create-issue: title-prefix: "[repo-status] " labels: [report]
tools: github:
Daily Repository Status Report
Create a daily report for maintainers.
Include:
Recent activity (issues, PRs, commits)
Key highlights and risks
Recommended next steps
Keep the report concise and link to relevant issues and pull requests.
W tym przykładzie frontmatter (między ---) definiuje, kiedy i w jaki sposób działa workflow, jakie ma dostęp do zasobów oraz jakie działania są dozwolone.
Poniższy kod Markdown definiuje intencję przepływu pracy w języku naturalnym. Agent interpretuje tę intencję i generuje ustrukturyzowane dane wyjściowe, które następnie są stosowane za pomocą kontrolowanych, możliwych do przejrzenia kroków.
W przeciwieństwie do tradycyjnych przepływów pracy GitHub Actions, które jawnie definiują każdy krok, przepływy pracy agentów koncentrują się na opisywaniu wyników. Agent określa, jak osiągnąć cel w ramach ograniczeń zdefiniowanych w frontmatterze.
Wyzwalanie przepływów pracy i interakcja z nimi
Przepływy pracy można wyzwalać na wiele sposobów:
- Automatycznie przez zdarzenia, takie jak push lub pull request
- Ręczne używanie zdarzenia workflow_dispatch
- Programowo za pomocą interfejsu API GitHub
Agenci mogą polegać na tych wyzwalaczach do wykonywania zadań lub weryfikowania zmian po wprowadzeniu aktualizacji do repozytorium.
Każde uruchomienie przepływu pracy realizuje zadania w odizolowanych środowiskach, co zapewnia spójne i bezpieczne wykonanie.
Co się dzieje podczas sesji agenta
Sesje agentów są widoczne i interaktywne.
Podczas sesji można wykonywać następujące czynności:
- Monitorowanie postępu za pośrednictwem dziennika sesji
- Zobacz, jakie akcje podejmuje agent
- Prześlij opinię lub dostosuj zadanie
- Przejrzyj finalny pull request
Agent dostosowuje się na podstawie opinii i kontynuuje pracę do czasu ukończenia zadania.
Przepływ wykonania agenta od początku do końca
Łącząc to wszystko, typowa interakcja agenta z GitHub wygląda następująco:
- Zadanie jest przypisywane za pośrednictwem problemu, czatu lub interfejsu wiersza polecenia
- Agent wybiera repozytorium i gałąź podstawową
- Agent analizuje bazę kodu i planuje zmiany
- Operacje interfejsu API służą do tworzenia gałęzi i commitów
- Żądanie ściągnięcia jest otwierane
- Przepływy pracy są uruchamiane w celu zweryfikowania lub wdrożenia zmian
- Użytkownicy przeglądają, zatwierdzają lub żądają aktualizacji
Ten przepływ zapewnia, że wszystkie działania agenta są następujące:
- Zakres do repozytorium
- Kontrolowane przez uprawnienia
- Wykonywane za pośrednictwem przepływów pracy
- Widoczne i możliwe do przejrzenia
Kluczowe wnioski
Agenci na GitHub nie działają poza platformą. Korzystają z interfejsów API, przepływów pracy i struktur repozytoriów, które wymuszają uprawnienia, zapewniają środowiska wykonawcze i umożliwiają współpracę za pośrednictwem pull requestów.
Następnie dowiesz się, jak protokół MCP (Model Context Protocol) rozszerza te możliwości, umożliwiając agentom łączenie się z dodatkowymi narzędziami i usługami poza GitHub.