Normal tools
The JSON schema is pasted again
UCL · the product from the paper
The AI asks. The computer does the job. UCL shows the AI a short list of names. The rulebook stays in the kitchen.
Turn 1
The JSON schema is pasted again
One line per tool. No schema.
Host check waits
The model gets a short line. The host keeps the types and checks them before the tool runs.
- `read_file(path: string)`: Read a workspace-relative text file.
{"loom_tool_call": {"id": "c1", "name": "read_file", "arguments": {"path": "src/main.py"}}}
path: workspace_path
offset: non_negative_int
limit: non_negative_int
Same tool. One side is handed the schema. The other side is handed the name.
{
"name": "read_file",
"parameters": {
"type": "object",
"properties": {
"path": { "type": "string", "description": "…" }
},
"required": ["path"]
}
}
{
"name": "read_file",
"arguments": { "path": "src/main.py" }
}
read_file — read a text file
list_dir — list a folder
grep — search contents
{
"name": "read_file",
"arguments": { "path": "src/main.py" }
}
Every new turn sends the catalog again. Full mode adds another schema. Lean mode adds another line.
Each new tool pastes another schema into the model. The pile is sent again on the next turn.
The schemas stay in this box, on the host. The model only sees the lines above.
Names used about half the text of the whole book. The score stayed level.
Less text did not mean less waiting. The whole book was the fastest average.
This is the product from Universal Conditional Logic. The paper’s own result was 29.8% less text on specifications. The bars above are a later test of tool names. Do not add those percentages together. The short essay has the same numbers in sentences.