Skip to main content
Use this migration when you want to keep building on NagaAI but move away from Anthropic-style message blocks to the main Responses API. Stay on Messages API if your current Anthropic-compatible tooling already works well and compatibility matters more than a cleaner default surface.

Mental Model Shift

MessagesResponses
content blockstyped input/output items
tool_usefunction_call
tool_resultfunction_call_output
message_start / content_block_deltasemantic Responses events
thinking blocksreasoning items
repeated message historyinput replay or previous_response_id

When To Stay On Messages

  • your app already depends on Anthropic SDK behavior
  • your tooling expects content blocks directly
  • migration cost is higher than the near-term benefit

When To Migrate

  • you want the recommended primary NagaAI LLM surface
  • you are starting a new app or redesigning your current one
  • you want one docs path for new feature work

Field mapping

Messages field or conceptResponses equivalent
systeminstructions or a system / developer input message
user text blockinput_text
image blockinput_image
document blockinput_file
tool_use blockfunction_call
tool_result blockfunction_call_output
thinking blockreasoning item

Simple request conversion

Messages
{
  "model": "claude-sonnet-4.5",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Summarize this document."
        }
      ]
    }
  ]
}
Responses
{
  "model": "claude-sonnet-4.5",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Summarize this document."
        }
      ]
    }
  ]
}

Tool and reasoning notes

  • Anthropic tool_use and tool_result blocks map to function_call and function_call_output
  • visible thinking maps to reasoning items and Responses reasoning events
  • if you preserve reasoning continuity across turns, replay reasoning payloads unchanged

Next steps