跳转至

LLM 任务

llm-task 是一个内置的可选插件工具,它会执行一次仅 JSON 的 LLM 调用并返回结构化输出,可选地根据 JSON Schema 进行验证。它为 Lobster 等工作流引擎提供 LLM 步骤,而无需为每个工作流编写自定义 OpenClaw 代码。

启用

  1. 启用插件:
{
  "plugins": {
    "entries": {
      "llm-task": { "enabled": true }
    }
  }
}
  1. 允许该工具:
{
  "tools": {
    "alsoAllow": ["llm-task"]
  }
}

alsoAllow 会在当前工具配置之上添加 llm-task,而不会限制其他核心工具。只有当你希望改用限制性允许列表模式时,才使用 tools.allow。

配置(可选)

{
  "plugins": {
    "entries": {
      "llm-task": {
        "enabled": true,
        "llm": {
          "allowModelOverride": true,
          "allowedCompletionModels": ["openai/gpt-6-astra"],
          "allowAuthProfileOverride": true
        },
        "config": {
          "defaultProvider": "openai",
          "defaultModel": "gpt-6-astra",
          "defaultAuthProfileId": "main",
          "maxTokens": 800,
          "timeoutMs": 30000
        }
      }
    }
  }
}

llm 块是宿主拥有的授权。allowedCompletionModels 会限制所有补全,因此请同时包含解析后的代理默认值以及任何覆盖目标。allowAuthProfileOverride 允许使用 defaultAuthProfileId 和每次调用的 authProfileId 参数。config 中的键是选择默认值,当工具调用省略对应参数时使用。

对于旧版本创建的 llm-task 条目,请运行一次 openclaw doctor --fix。Doctor 会授予随附的模型/配置文件选择权限,并将任何遗留的 config.allowedModels 值移动到 llm.allowedCompletionModels,同时不会扩大其范围。

工具参数

参数 类型 说明
prompt string 必填。给 LLM 的任务指令。
input any 可选负载;会序列化为 JSON 并附加到 Prompt。
schema object 可选 JSON Schema,解析后的输出必须通过其验证。
provider string 覆盖 defaultProvider / 代理的默认 provider。
model string 覆盖 defaultModel;接受裸模型 ID、别名或 provider/model 引用(重复的 provider 前缀会自动去除)。
thinking string 推理级别(例如 low、medium);必须是解析后的模型支持的级别之一。
authProfileId string 覆盖 defaultAuthProfileId。
temperature number 尽力而为;并非所有 provider 都会遵循它。
maxTokens number 输出 Token 的尽力而为上限。
timeoutMs number 运行超时;默认 30000。

输出

返回 details.json(解析并经过 Schema 验证的 JSON),以及 details.provider 和 details.model,标明实际运行的是什么。

每次调用都会启动一个新的仅 Prompt 推理操作。它不会复用调用代理的转录或原生运行时会话,不会运行代理生命周期钩子,也不会将模型输出传递到某个通道。OpenClaw 只使用一次所选的 provider、模型、认证配置文件和运行时;当该所有者无法提供隔离补全时,它不会回退到另一条路由。

Agents API 默认运行受限会话,没有执行器或提供的工具,但其服务可能保留内置辅助工具。它无法保证字面上的零工具推理。如果你的工作流需要该保证,请使用另一种运行时;拒绝携带工具的输出无法撤销原生辅助工具的效果。

所选的代理 harness 必须实现隔离补全。否则,调用会在推理之前以 does not support isolated completion 错误失败。这种失败关闭行为可防止 JSON 任务悄悄变成普通的具备工具能力的代理轮次。

CLI 运行时必须提供等效的隔离准备保证。内置的 Claude 和 Gemini CLI 运行时满足该要求;未采用此内部约定的其他 CLI 运行时会在其进程启动前失败。

Gemini CLI 隔离补全支持 Gemini API-key 和 Vertex 认证。Google OAuth 和 compute/Code Assist 认证会被拒绝,因为托管账户策略可以在本地 CLI 设置加载后添加需要管理员的工具。包含原生 @path 包含项或以 /command 开头的 Gemini Prompt 也会在推理前失败,因为 Gemini CLI 没有字面上的原始输入模式。

示例:Lobster 工作流步骤

重要限制

下面的示例假设独立的 Lobster CLI 正在运行,并且 openclaw.invoke 已经具有正确的 gateway URL/认证上下文。

对于 OpenClaw 内置的嵌入式 Lobster 运行器,这种嵌套 CLI 模式目前并不可靠:

openclaw.invoke --tool llm-task --action json --args-json '{ ... }'

在嵌入式 Lobster 拥有此流程的支持桥接之前,请优先选择以下任一方式:

  • 在 Lobster 之外直接调用 llm-task 工具,或
  • 不依赖嵌套 openclaw.invoke 调用的 Lobster 步骤。

独立的 Lobster CLI 示例:

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

安全说明

  • 仅 JSON:指示模型只返回一个 JSON 值,不使用代码围栏,也不添加注释。
  • 不提供工具:运行时强制保持一个字面上为空的模型可调用工具集,除了文档中记录的 Agents API 原生辅助限制。 OpenClaw 会拒绝工具形状的结果,而不是将其视为任务输出。
  • 隔离:该运行没有代理转录、会话复用、生命周期钩子、通道投递或提供商回退。
  • 除非使用 schema 验证输出,否则应将其视为不可信。
  • 在任何消费此输出的副作用步骤(send、post、exec)之前,先进行审批。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw