LLM 任务
llm-task 是一个内置的可选插件工具,它会执行一次仅 JSON 的 LLM 调用并返回结构化输出,可选地根据 JSON Schema 进行验证。它为 Lobster 等工作流引擎提供 LLM 步骤,而无需为每个工作流编写自定义 OpenClaw 代码。
启用¶
- 启用插件:
- 允许该工具:
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 模式目前并不可靠:
在嵌入式 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