Tool Calling

Preview

Selection, argument synthesis, parallel calls and result handling.

Pimsy selects tools from the step goal rather than requiring the caller to name one. Explicit tool hints are honoured when supplied.

Selection#

  1. 1

    Candidate retrieval

    Tools are retrieved by semantic match against the step goal, filtered by the effective capability set.

  2. 2

    Ranking

    Candidates are ranked on description fit, historical success rate for similar steps, cost and effect class.

  3. 3

    Argument synthesis

    Arguments are produced against the schema. Missing required values trigger an investigation step, not a guess.

  4. 4

    Dispatch

    The policy engine evaluates the call; allowed calls execute, gated calls raise an approval request.

  5. 5

    Normalization

    Results become observations with provenance, size accounting and truncation markers where applicable.

Parallel calls#

Concurrent read-only calls in one step
{
  class="tok-str">"step": class="tok-str">"s4",
  class="tok-str">"parallel": [
    { class="tok-str">"tool": class="tok-str">"markets.quote", class="tok-str">"args": { class="tok-str">"symbols": [class="tok-str">"NVDA", class="tok-str">"AMD"] } },
    { class="tok-str">"tool": class="tok-str">"markets.fundamentals", class="tok-str">"args": { class="tok-str">"symbol": class="tok-str">"NVDA", class="tok-str">"period": class="tok-str">"ttm" } },
    { class="tok-str">"tool": class="tok-str">"web.search", class="tok-str">"args": { class="tok-str">"query": class="tok-str">"NVDA Q2 class="tok-num">2026 datacenter revenue" } }
  ],
  class="tok-str">"concurrency": class="tok-num">3
}

Forcing or excluding tools#

ts
await pimsy.tasks.create({
  objective: class="tok-str">"Reconcile last month's invoices against the ledger.",
  tools: {
    allow: [class="tok-str">"db.query", class="tok-str">"files.write", class="tok-str">"sandbox.exec"],
    deny: [class="tok-str">"web.search"],           // keep the run offline
    hints: { class="tok-str">"reconciliation": class="tok-str">"db.query" }
  }
});

Last updated 2026-09-03