A water SCADA historian bridge must send tool arguments through the Claude SDK. What serialization step fits?
Select an answer to reveal the explanation.
Short Explanation
Tool args need a passport—serialize them as JSON before the SDK ships them to Claude.
Full Explanation
A water SCADA historian bridge must serialize tool payloads as JSON before SDK tool dispatch to Claude. Structured JSON matches tool schemas, enables validation, and gives the model typed fields—tag IDs, time ranges, aggregates—rather than opaque pickle serializations or YAML blocks that break tool contracts.
Serializing tool payloads with pickle fails because schemas and models expect structured, encodable arguments, not Python-specific binary pickles dumped into string fields that cannot be validated across language boundaries. Encoding tool arguments as XML fragments fails conceptually: the wire protocol and SDK expect JSON-compatible structures across language boundaries, not angle-bracket markup that Claude's tool schema cannot consume directly. Formatting tool payloads as YAML blocks fails because parsers cannot reliably extract historian query parameters from YAML indentation under production load, and Claude's tool dispatch expects JSON.
Exam caveat: serialization must also enforce units, timestamps, and tag allowlists so the model cannot request unsafe or out-of-scope SCADA points from the historian. Operational check: unit-test JSON serialization against the tool schema, reject non-JSON payloads in the bridge, and trace one successful tool_use showing validated JSON arguments end to end.