module

Autobot::Providers::MessageConverter

Converts Autobot internal message format to Bedrock Converse API format.

Key differences from OpenAI/Anthropic:

  • System messages → separate system array param
  • Content is array of union-key blocks ({"text": "..."} not {"type": "text", "text": "..."})
  • Tool results are sent as user messages with toolResult blocks
  • Tool calls use toolUse blocks with camelCase keys

Class methods

convert(messages : Array(Hash(String, JSON::Any))) : Array(JSON::Any)

Converts non-system messages to Bedrock Converse format. Merges consecutive same-role messages to avoid API rejection.

Source
extract_system(messages : Array(Hash(String, JSON::Any))) : Array(JSON::Any)

Extracts system messages and returns them as Bedrock system content blocks.

Source