Use case / Tool-calling agents

See what the model asked the world to do.

Models pick tools, invent arguments and loop. Record every call with its payload, result and cost so a rejected schema or a runaway loop stands out immediately.

Arguments
Recorded
Loops
Detected
Cost
Per call

Instrument it

See the arguments the model chose.

Wrap each tool and the exact payload, the result and every retry are recorded, so loops and rejected schemas stand out.

$ npm install tracify-sdk

import { observe, traceAgent } from "tracify-sdk";

const issueRefund = observe(async function issueRefund(args: { amount: number; currency: string }) {
  return payments.refund(args);
}, { type: "tool" });

export const agent = traceAgent(async (request: string) => {
  const call = await pickTool(request);
  return issueRefund(call.args);
});

Payload inspector

What the model asked the world to do.

  1. Start from what the user asked and which tool the model reached for.

  2. Selection is its own span, so wrong tool and wrong arguments are separate problems.

  3. Schema failures show the exact payload that was rejected.

  4. Repeated repairs are the loop. Count them and see what each one cost.

  5. The final result is checked against the call that produced it.

Tool-calling agents1 / 5 steps
  1. 01

    Intent parsed

    “Refund the last order.”

    ok
  2. 02

    Tool selected

    issue_refund, chosen from nine tools.

    ok
  3. 03

    Schema rejected

    currency must be lowercase.

    rejected
  4. 04

    Arguments repaired

    Retried four times before it worked.

    ok
  5. 05

    Result verified

    Refund confirmed, run cost $1.42.

    ok
Cost of the loop$0.00

The failure to catch

A harmless-looking loop that turns into cost and latency.

Catch invalid arguments, permission failures, loops, and hidden cost across tool-using agents.

What you get

What Tracify watches.

Arguments

01

Recorded on every run, so it can be searched, compared and alerted on.

Tool result

02

Recorded on every run, so it can be searched, compared and alerted on.

Loop count

03

Recorded on every run, so it can be searched, compared and alerted on.

Token cost

04

Recorded on every run, so it can be searched, compared and alerted on.