diff --git a/01-features/08-agents-that-transact/00-getting-started/01-agents-payments-and-limits/strands_payment_agent.py b/01-features/08-agents-that-transact/00-getting-started/01-agents-payments-and-limits/strands_payment_agent.py index 6bba3b894..b0b1bb602 100644 --- a/01-features/08-agents-that-transact/00-getting-started/01-agents-payments-and-limits/strands_payment_agent.py +++ b/01-features/08-agents-that-transact/00-getting-started/01-agents-payments-and-limits/strands_payment_agent.py @@ -226,11 +226,20 @@ # ── Step 5c: Plugin built-in tools ──────────────────────────────────────────── print("\n── Step 5c: Built-in Payment Tools ──") -# The plugin registers get_payment_session, get_payment_instrument, list_payment_instruments -result = budget_agent("How much budget do I have left in my current session?") +# The plugin registers get_payment_session, get_payment_instrument, list_payment_instruments. +# A fresh agent is used here so a string prompt is always valid — reusing budget_agent +# fails with TypeError if Step 5a/5b left it in interrupt state (e.g. ProcessPayment failed). +introspection_agent = Agent( + model=BedrockModel(model_id=MODEL_ID, streaming=True), + tools=[http_request], + plugins=[budget_plugin], + system_prompt=SYSTEM_PROMPT, +) + +result = introspection_agent("How much budget do I have left in my current session?") print(result.message) -result = budget_agent("What payment instruments (wallets) do I have available?") +result = introspection_agent("What payment instruments (wallets) do I have available?") print(result.message) # ── Step 5d: Uncapped session ─────────────────────────────────────────────────