Tools

Attività LLM

llm-task è un tool Plugin facoltativo che esegue un task LLM solo JSON e restituisce output strutturato (facoltativamente validato rispetto a JSON Schema).

È ideale per motori di workflow come Lobster: puoi aggiungere un singolo passaggio LLM senza scrivere codice OpenClaw personalizzato per ogni workflow.

Abilitare il Plugin

  1. Abilita il Plugin:
{
  "plugins": {
    "entries": {
      "llm-task": { "enabled": true }
    }
  }
}
  1. Consenti il tool facoltativo:
{
  "tools": {
    "alsoAllow": ["llm-task"]
  }
}

Usa tools.allow solo quando vuoi la modalità allowlist restrittiva.

Configurazione (facoltativa)

{
  "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 è un'allowlist di stringhe provider/model. Se impostata, qualsiasi richiesta fuori dall'elenco viene rifiutata.

Parametri del tool

  • prompt (string, obbligatorio)
  • input (any, facoltativo)
  • schema (object, JSON Schema facoltativo)
  • provider (string, facoltativo)
  • model (string, facoltativo)
  • thinking (string, facoltativo)
  • authProfileId (string, facoltativo)
  • temperature (number, facoltativo)
  • maxTokens (number, facoltativo)
  • timeoutMs (number, facoltativo)

thinking accetta i preset di ragionamento standard di OpenClaw, come low o medium.

Output

Restituisce details.json contenente il JSON analizzato (e lo valida rispetto a schema quando fornito).

Esempio: passaggio di workflow Lobster

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
  }
}'

Note sulla sicurezza

  • Il tool è solo JSON e indica al modello di produrre solo JSON (senza code fence, senza commenti).
  • Nessun tool viene esposto al modello per questa esecuzione.
  • Tratta l'output come non attendibile a meno che tu non lo validi con schema.
  • Inserisci le approvazioni prima di qualsiasi passaggio con effetti collaterali (send, post, exec).

Correlati