6 października 2026 r. AWS opisało wzorzec budowy asystenta z zachowywaniem kontekstu: OpenClaw działa w AgentCore Runtime, a AgentCore Memory zapisuje przebieg rozmów i asynchronicznie wydobywa z nich informacje przydatne w kolejnych sesjach. Przykład, Sprout, to asystent ogrodniczy obsługujący wiadomości z Telegrama i zadania zaplanowane.
Co przygotować
W opisywanym rozwiązaniu potrzebne są dostęp do AgentCore Runtime i AgentCore Memory, dostęp do wybranych modeli w Amazon Bedrock oraz token bota Telegrama. Przydadzą się też znajomość orkiestracji usług i AWS CloudFormation. Docker z obsługą budowania obrazu linux/arm64 oraz skonfigurowany AWS CLI są wymagane przy tworzeniu własnego obrazu.
Jak dwie ścieżki wejściowe trafiają do jednego agenta
Wiadomości od użytkownika i zadania uruchamiane o określonej porze dochodzą do tego samego agenta w AgentCore Runtime, ale korzystają z osobnych ścieżek:
- Wiadomość z Telegrama trafia przez API Gateway do funkcji webhook w AWS Lambda. Ta wywołuje agenta w AgentCore Runtime.
- Zadanie zaplanowane uruchamia Amazon EventBridge Scheduler, który przekazuje je do osobnej funkcji AWS Lambda.
- Obie ścieżki wywołują ten sam runtime, więc agent może obsłużyć zarówno rozmowę, jak i zadanie z harmonogramu.
Kontrakt runtime i routing modeli
Kontener agenta nasłuchuje na porcie 8080. W przykładzie server.py udostępnia GET /ping do sprawdzania stanu oraz POST /invocations do odbierania żądań agenta. Wrapper uruchamia i sprawdza stan bramy OpenClaw; gdy kontener wznawia działanie po zamrożeniu, podczas obsługi żądania sprawdza jej kondycję i w razie potrzeby uruchamia ją ponownie.
Ścieżka zależy od rodzaju wejścia. Tekst przechodzi przez bramę OpenClaw do Claude Haiku 4.5 w Amazon Bedrock. Obrazy obsługuje Claude Sonnet 4.5, wywoływany bezpośrednio z server.py. W tej wersji kontenera OpenClaw pomijał części zawierające image_url, dlatego przykład wysyła bajty obrazu bezpośrednio do Bedrock. Obie ścieżki korzystają z tego samego promptu określającego personę asystenta i uwzględniającego pamięć.
Jak zdarzenia rozmowy stają się pamięcią długoterminową
W trakcie rozmowy przykład zapisuje zdarzenia dotyczące wypowiedzi użytkownika i asystenta. Dla każdej tury szuka pasujących informacji w przestrzeni pamięci długoterminowej, a wybrane rekordy dodaje do promptu systemowego. Jawnie podane preferencje szereguje przed informacjami wywnioskowanymi.
AgentCore Memory stosuje strategie USER_PREFERENCE, SEMANTIC i SUMMARIZATION. Ekstrakcja jest asynchroniczna, więc nowy fakt może stać się dostępny do pobrania dopiero w późniejszej sesji. Bieżącą rozmowę obejmują osobne zdarzenia krótkoterminowe.
W konfiguracji Sprout pobieranie ma budżet 3 sekund i obejmuje do 50 rekordów. Jeśli pobranie pamięci się nie powiedzie, przykład może odpowiedzieć bez dołączonych wspomnień.
Wdrożenie: Launch Stack czy własny obraz?
AWS opisuje dwie drogi wdrożenia. Wybór sprowadza się do tego, czy użyć publicznego obrazu, czy zbudować i opublikować własny obraz linux/arm64.
| Ścieżka | Obraz | Wymagania wskazane dla tej ścieżki | Opisane działania |
| Launch Stack w CloudFormation | Publiczny obraz z Amazon ECR | Token bota Telegrama | Uruchomienie stosu CloudFormation z użyciem publicznego obrazu |
| Własny obraz | Obraz linux/arm64 budowany i publikowany jako prywatny | Docker z obsługą budowania linux/arm64; skonfigurowany AWS CLI; token bota Telegrama | scripts/deploy.sh sprawdza szablon CloudFormation, buduje i publikuje obraz, wdraża stos oraz rejestruje webhook Telegrama |
Działanie i usuwanie zasobów
W przykładzie przestrzenie nazw pamięci są tworzone osobno dla identyfikatora czatu Telegrama. Wzorce nazw to sprout/{chat_id}/long_term dla pamięci długoterminowej oraz sprout/{chat_id}/episodic/{session_id} dla zdarzeń związanych z sesją. Indeksowane metadane obejmują type, section i plants.
Pozostałe elementy opisanej infrastruktury to Amazon S3 do przechowywania danych przestrzeni roboczej, AWS KMS do szyfrowania, AWS Secrets Manager do przechowywania tokena bota oraz Amazon CloudWatch do logów i metryk. Przewidziana procedura porządkowania zasobów usuwa magazyn pamięci i jego przestrzenie nazw.