AVP Test Vectors

March 25, 2026 ยท View on GitHub

These test vectors can be used to verify AVP encoder/decoder implementations.

Vector 1: 4-dimensional float32 hidden state (uncompressed)

Input:

  • Payload: [0.1, 0.2, 0.3, 0.4] (float32)
  • model_id: "test-model"
  • source_agent_id: "agent-a"
  • hidden_dim: 4
  • payload_type: HIDDEN_STATE (0)
  • dtype: FLOAT32 (0)
  • tensor_shape: [4]
  • Compression: none

Expected output (hex):

415601002a0000001a00000012076167656e742d61220a746573742d6d6f64656c28044a0104cdcccc3dcdcc4c3e9a99993ecdcccc3e

Breakdown:

FieldBytesHexValue
Magic0-14156"AV"
Version2011
Flags300No flags set
Payload length4-72a00000042 (LE)
Metadata length8-111a00000026 (LE)
Metadata12-37(protobuf)agent-a, test-model, dim=4
Tensor data38-53cdcccc3d...cc3e[0.1, 0.2, 0.3, 0.4]

Total size: 54 bytes

Vector 2: Minimal (no model_id, no agent_id)

Input:

  • Payload: [1.0, 2.0] (float32)
  • hidden_dim: 2
  • payload_type: HIDDEN_STATE (0)
  • dtype: FLOAT32 (0)
  • tensor_shape: [2]
  • Compression: none

Expected output (hex):

415601000d0000000500000028024a01020000803f00000040

Header bytes: 4156 01 00 (Magic "AV", version 1, no flags)

Total size: 25 bytes

Validation Rules

  1. First 2 bytes MUST be 0x4156
  2. Version byte MUST be 0x01
  3. Payload length MUST equal metadata_length + tensor_data_length
  4. If flags bit 0 is set, tensor data is zstd-compressed
  5. If flags bit 2 is set, payload_type MUST be KV_CACHE (1)
  6. Metadata MUST be valid protobuf conforming to schemas/avp.proto