AI tool-calling laboratory

How AI tools move from schema to policy to execution

A tool is a callable capability described to a model with a name, purpose, and input schema. The model proposes a call; application code validates it, applies policy, executes a handler, and returns a structured result.

Move a real proposal through input validation, scopes, recipient policy, approval, one handler, and result validation. Inject a timeout or malformed result and inspect whether a side effect is impossible, committed, or genuinely unknown.

A typed AI tool call moving through schema validation, a policy gate, a handler, and a structured result
AI tools · Proposal is not execution
Inspect
Schema · arguments · policy · handler · result
Changes
Callable operations exposed to the model
Authority lives in
Handler permissions and credentials
Tool call execution chambercompleted
  1. 01schemapassed

    Arguments match the declared JSON schema.

  2. 02policypassed

    Scopes, recipient boundaries, and approval requirements passed.

  3. 03handlercompleted

    The handler returned to the host.

  4. 04resultcompleted

    A schema-valid structured result is appended to the agent transcript.

Callable definition shown to the modelsend_briefingSend one stored briefing draft to explicitly approved recipients.
{
  "inputSchema": {
    "type": "object",
    "required": [
      "draftId",
      "recipients",
      "channel",
      "idempotencyKey"
    ],
    "additionalProperties": false,
    "properties": {
      "draftId": {
        "type": "string",
        "pattern": "^draft_[a-z0-9]+$"
      },
      "recipients": {
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "string",
          "format": "email"
        }
      },
      "channel": {
        "type": "string",
        "enum": [
          "email"
        ]
      },
      "idempotencyKey": {
        "type": "string",
        "pattern": "^send_[a-z0-9]+$"
      }
    }
  },
  "resultSchema": {
    "type": "object",
    "required": [
      "messageId",
      "acceptedRecipients",
      "status"
    ],
    "additionalProperties": false,
    "properties": {
      "messageId": {
        "type": "string",
        "pattern": "^msg_[a-z0-9]+$"
      },
      "acceptedRecipients": {
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "string",
          "format": "email"
        }
      },
      "status": {
        "type": "string",
        "enum": [
          "accepted"
        ]
      }
    }
  }
}
Model proposal · not execution
{
  "name": "send_briefing",
  "arguments": {
    "draftId": "draft_agentconf",
    "recipients": [
      "editor@example.org"
    ],
    "channel": "email",
    "idempotencyKey": "send_agentconf01"
  }
}
01schemapassed

Arguments match the declared JSON schema.

Inspect observable
{
  "validatedArguments": {
    "draftId": "draft_agentconf",
    "recipients": [
      "editor@example.org"
    ],
    "channel": "email",
    "idempotencyKey": "send_agentconf01"
  }
}
02policypassed

Scopes, recipient boundaries, and approval requirements passed.

Inspect observable
{
  "allowed": true,
  "requiredScopes": [
    "briefings:send"
  ],
  "grantedScopes": [
    "briefings:send"
  ],
  "approvalRequired": true,
  "approvalPresent": true,
  "reasons": []
}
03handlercompleted

The handler returned to the host.

Inspect observable
{
  "rawResult": {
    "messageId": "msg_agentconf01",
    "acceptedRecipients": [
      "editor@example.org"
    ],
    "status": "accepted"
  }
}
04resultcompleted

A schema-valid structured result is appended to the agent transcript.

Inspect observable
{
  "messageId": "msg_agentconf01",
  "acceptedRecipients": [
    "editor@example.org"
  ],
  "status": "accepted"
}
Structured result boundaryValid result returned to transcript
{
  "messageId": "msg_agentconf01",
  "acceptedRecipients": [
    "editor@example.org"
  ],
  "status": "accepted"
}
Side-effect state: committed

Primary research

Inspect the mechanism at its source.

Project architecture and terminology were checked against official documentation on August 10, 2026. Research papers are linked to their original publication records.

Standard tool discovery and invocationMCP toolsOriginal source ↗Tool design in agent systemsBuilding effective agentsOriginal source ↗Original tool-use researchToolformerOriginal source ↗

Keep experimenting

Change the layer, keep the system visible.

AI Lab indexSee every interactive laboratoryBrowse the suite →Transformer microscopeGo beneath the agent runtime into the modelInspect the matrices →