Pracuj z agentami AI
Zabezpieczenia dla agentów AI, które piszą API
Agent zmienia nazwę pola odpowiedzi równie chętnie jak nazwę zmiennej, nie pytając, którzy klienci je czytają. Wychwyć niezgodną zmianę w jego lokalnych sprawdzeniach i jeszcze raz w wymaganym sprawdzeniu CI.
- Linter, który mówi nie
apigenie lintkończy się kodem 1 i wskazuje linię oraz regułę każdego problemu, na żądanie jako JSON, więc agent naprawia to, co zepsuł, zamiast zgadywać. - Diff, który ocenia zmianę
apigenie diffocenia każdą zmianę według tego, co robi klientowi, jako status, changelog lub JSON. Uruchomiony jako wymagane sprawdzenie względem gałęzi bazowej zatrzymuje zmianę łamiącą zgodność nawet wtedy, gdy agent pominął swoje lokalne sprawdzenia. - Zmiany, które przechodzą reviewFormater daje za każdym razem ten sam plik, a
--fixzachowuje Twoje komentarze, więc zmiana agenta to mały diff, który człowiek może przeczytać.
Zmiana nazwy odrzucona, potem wykonana bezpiecznie
Agent zmienia w odpowiedzi nazwę customerName na customer_name. apigenie diff względem pliku z gałęzi bazowej ocenia zmianę odpowiedzi jako łamiącą zgodność i kończy się kodem 1. Agent zostawia stare pole, oznacza je jako przestarzałe, dodaje nowe i ponowne sprawdzenie przechodzi, jako JSON, który może odczytać. Wymagane sprawdzenie CI uruchamia to samo polecenie w pull requeście, więc scalenie zależy od niego, nie od lokalnego uruchomienia agenta.
$ apigenie diff main.yaml api.yaml
api.yaml
10 7 breaking Modified operation GET /orders/{orderId}
10 7 breaking Modified response code 200
$ echo $?
1
$ # keep customerName, deprecated; add customer_name
$ apigenie diff main.yaml api.yaml \
--report status --formatter json
{
"formatVersion": 1,
"status": "non-breaking"
}
$ echo $?
0Co obejmuje
- Jedna tabela kodów wyjściaWspólna dla czterech plików binarnych i zamrożona obietnicą zgodności 1.0 dla
apigenie, generatora i serwera. - JSON na żądanielint, diff, format, test, katalog i raport kontraktu serwera, każdy z
formatVersion, który zmienia się tylko wtedy, gdy pole znika lub zmienia znaczenie. - Konfiguracja ze schematem
apigenie.yamljest sprawdzany względem swojego JSON Schema, zanim przeczyta go jakiekolwiek polecenie. - Dokumentacja, którą agent może czytaćPrzewodniki, strony referencyjne i reguły lintera jako Markdown, wymienione w
llms.txti zebrane wllms-full.txt. - Serwery MCP z kontraktu
apigenie-generator server mcppisze narzędzie na każdą operację (eksperymentalne). - Wygenerowany kod, sprawdzonyWalidujące proxy sprawdza to, co zwraca serwer agenta, względem kontraktu.
Krok po kroku (przewodnik po angielsku)
Work with AI agents: Put the linter, the diff and the formatter in a coding agent's loop, so that what it changes in a contract is checked the way a person's change is.
Ta sama odpowiedź dla agenta, recenzenta i CI
lint, diff i format dają agentowi JSON, recenzentowi tekst, a CI kod wyjścia, z tymi samymi regułami za każdym z nich.