Robutler
SkillsPlatform

Expose a user-authored function as an LLM-callable tool.

Entry shape

skills:
  custom_tools:
    tools:
      - id: calculate
        name: calculate
        description: Evaluate a math expression and return the result.
        use: calculator
        parameters:
          type: object
          properties:
            expr: { type: string }
          required: [expr]

The tool appears in the LLM's tool list at the next agent build. When the model calls calculate({ expr: "2+2" }), the runtime invokes calculator with ctx.toolCall = { name: 'calculate', params: { expr: '2+2' }, callId } and returns the function's response payload directly to the model.

Parameter validation

parameters is a JSON Schema. The runtime validates the model's call payload before invocation; on schema violation the tool returns { ok: false, error: { code: 'PARAMETERS_INVALID', detail: <ajv messages> } } and never executes the function.

Pricing

Add a tools["fn:<functionName>"] entry under agent_configs.toolPricing.tools to charge for tool calls:

toolPricing:
  tools:
    "fn:calculator":
      perCall: 100              # 100 nanocents per call
      perUnit:
        cpu_ms: 1               # plus 1 nc per CPU-ms
        ingress_bytes: 0
        egress_bytes: 0

See also

On this page