docs/tools/llm-task.md
llm-task is an optional plugin tool that runs a JSON-only LLM task and
returns structured output (optionally validated against JSON Schema).
This is ideal for workflow engines like Lobster: you can add a single LLM step without writing custom OpenClaw code for each workflow.
{
"plugins": {
"entries": {
"llm-task": { "enabled": true }
}
}
}
{
"tools": {
"alsoAllow": ["llm-task"]
}
}
Use tools.allow only when you want restrictive allowlist mode.
{
"plugins": {
"entries": {
"llm-task": {
"enabled": true,
"config": {
"defaultProvider": "openai-codex",
"defaultModel": "gpt-5.5",
"defaultAuthProfileId": "main",
"allowedModels": ["openai/gpt-5.4"],
"maxTokens": 800,
"timeoutMs": 30000
}
}
}
}
}
allowedModels is an allowlist of provider/model strings. If set, any request
outside the list is rejected.
prompt (string, required)input (any, optional)schema (object, optional JSON Schema)provider (string, optional)model (string, optional)thinking (string, optional)authProfileId (string, optional)temperature (number, optional)maxTokens (number, optional)timeoutMs (number, optional)thinking accepts the standard OpenClaw reasoning presets, such as low or medium.
Returns details.json containing the parsed JSON (and validates against
schema when provided).
openclaw.invoke --tool llm-task --action json --args-json '{
"prompt": "Given the input email, return intent and draft.",
"thinking": "low",
"input": {
"subject": "Hello",
"body": "Can you help?"
},
"schema": {
"type": "object",
"properties": {
"intent": { "type": "string" },
"draft": { "type": "string" }
},
"required": ["intent", "draft"],
"additionalProperties": false
}
}'
schema.