Skip to content

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.py
  • examples/agents/aws/agent_claude_fable5.py
  • examples/agents/aws/agent_claude_haiku45.py
  • examples/agents/aws/agent_deepseek_v32.py
  • examples/agents/aws/agent_minimax_m25.py
  • examples/agents/aws/README.md
  • sdd/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 resolves BEDROCK_MANTLE_BASE_URL and BEDROCK_MANTLE_API_KEY/AWS_NOVA_API_KEY, not AWS_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 try block, 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 while BasicAgent(...) 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).