Interface ForgeToolRequest

Request payload for the forge_tool system tool.

An agent submits this to request the creation of a new emergent tool. The engine validates the request, runs the judge, and returns a ForgeResult.

interface ForgeToolRequest {
    name: string;
    description: string;
    inputSchema: JSONSchemaObject;
    outputSchema: JSONSchemaObject;
    implementation: ToolImplementation;
    testCases: [ForgeTestCase, ...ForgeTestCase[]];
}

Properties

name: string

Desired machine-readable name for the new tool. Must be unique among tools currently visible to the requesting agent.

description: string

Natural language description of the tool's purpose and behaviour. Used verbatim as the tool's description in the LLM tool list.

inputSchema: JSONSchemaObject

JSON Schema for the tool's input arguments.

outputSchema: JSONSchemaObject

JSON Schema for the tool's expected output.

implementation: ToolImplementation

Implementation specification — composable pipeline or sandboxed code.

testCases: [ForgeTestCase, ...ForgeTestCase[]]

One or more test cases the judge uses to evaluate correctness. At least one test case is required for the forge request to be accepted.