FEAT-437¶
Branch: feat-437-claude-bedrock-sample-agents
PR: https://github.com/phenobarbital/ai-parrot/pull/1192
Spec: sdd/specs/claude-bedrock-sample-agents.spec.md
What was implemented¶
examples/agents/aws/agent_claude_opus5.pyexamples/agents/aws/agent_claude_fable5.pyexamples/agents/aws/agent_claude_haiku45.pyexamples/agents/aws/agent_deepseek_v32.pyexamples/agents/aws/agent_minimax_m25.pyexamples/agents/aws/README.mdsdd/tasks/index/claude-bedrock-sample-agents.json
Key decisions¶
(no reconciliation adjustments)
Accepted findings¶
- agent.invoke(query) is not wrapped in try/except. A network error, throttling, or API error during a conversation turn will crash the CLI with a raw exception traceback instead of a readable error message. Wrap in try/except and print a user-friendly error to keep the loop alive.
- Same as agent_claude_opus5.py: agent.invoke() is not wrapped in try/except inside the CLI loop.
- Same as agent_claude_opus5.py: agent.invoke() is not wrapped in try/except inside the CLI loop.
- Same as agent_claude_opus5.py: agent.invoke() is not wrapped in try/except inside the CLI loop.
- Same as agent_claude_opus5.py: agent.invoke() is not wrapped in try/except inside the CLI loop.
- eval() sandbox with empty builtins is bypassable via Python class hierarchy traversal. Acceptable for developer example scripts (spec-prescribed), but a code comment noting the sandbox is not production-grade would prevent cargo-culting into production code.
- Fable 5 entry says 'AWS_DEFAULT_REGION (default: global, e.g. us-east-1)'. The word 'global' is a Bedrock region-prefix notation, not an AWS region name — consider rewording to 'default: us-east-1 (uses global inference profile)' to avoid confusion.
- The Mantle environment variable documented here is not read by the actual
BedrockMantleClient: the client resolvesBEDROCK_MANTLE_BASE_URLandBEDROCK_MANTLE_API_KEY/AWS_NOVA_API_KEY, notAWS_BEDROCK_MANTLE_URL, so following this README leaves the Deepseek/MiniMax examples pointed at the default URL and with no bearer key. - Agent construction is outside the
tryblock, and the same pattern appears in all five scripts. The acceptance criteria require each script to wrap agent creation in try/except for auth/setup failures; any exception raised whileBasicAgent(...)resolves or constructs the Bedrock client will bypass the intended helpful error message. - code-review could not run: Gemini CLI dispatch failed with exit code 1: parse_arguments duration: 17.20759499999997 [STARTUP] Recording metric for phase: load_cli_config duration: 19.161290000000008 [STARTUP] Recording metric for phase: setup_terminal duration: 0.4113270000000284 [STARTUP] Recording metric for phase: initialize_app duration: 440.0366140000001 [STARTUP] Recording metric for phase: authenticate duration: 436.0905069999999 [STARTUP] Recording metric for phase: discover_tools duration: 16.80620799999997 An unexpected critical error occurred:IneligibleTierError: This client is no longer supported for Gemini Code Assist for individuals. To continue using Gemini, please migrate to the Antigravity suite of products: https://antigravity.google at throwIneligibleOrProjectIdError (file:///usr/lib/node_modules/@google/gemini-cli/bundle/chunk-7LQRUKPT.js:309820:11) at _doSetupUser (file:///usr/lib/node_modules/@google/gemini-cli/bundle/chunk-7LQRUKPT.js:309809:5) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Accept-with-notes¶
(none)
How to test¶
(no acceptance-criteria evidence recorded)
Generated by flow-bot via the dev-loop (feature-mode).