Tools
งานของ LLM
llm-task เป็น เครื่องมือ Plugin แบบเลือกใช้ที่รวมมาให้ ซึ่งเรียกใช้ LLM เพียงครั้งเดียวโดยรับและส่งคืนเฉพาะ JSON พร้อมคืนผลลัพธ์แบบมีโครงสร้าง และสามารถตรวจสอบกับ JSON Schema ได้ตามต้องการ เครื่องมือนี้ช่วยให้เอนจินเวิร์กโฟลว์อย่าง Lobster มีขั้นตอน LLM ได้โดยไม่ต้องเขียนโค้ด OpenClaw เฉพาะสำหรับแต่ละเวิร์กโฟลว์
เปิดใช้งาน
- เปิดใช้งาน Plugin:
{ "plugins": { "entries": { "llm-task": { "enabled": true } } }}- อนุญาตเครื่องมือ:
{ "tools": { "alsoAllow": ["llm-task"] }}alsoAllow เพิ่ม llm-task เข้าไปจากโปรไฟล์เครื่องมือที่ใช้งานอยู่ โดยไม่จำกัดเครื่องมือหลักอื่น ๆ ใช้ tools.allow เฉพาะเมื่อต้องการใช้โหมดรายการอนุญาตแบบจำกัดเท่านั้น
การกำหนดค่า (ไม่บังคับ)
{ "plugins": { "entries": { "llm-task": { "enabled": true, "config": { "defaultProvider": "openai", "defaultModel": "gpt-5.6-sol", "defaultAuthProfileId": "main", "allowedModels": ["openai/gpt-5.6-sol"], "maxTokens": 800, "timeoutMs": 30000 } } } }}allowedModels คือรายการอนุญาตของสตริง provider/model โดยคำขอที่ระบุโมเดลอื่นจะถูกปฏิเสธ คีย์อื่นทั้งหมดเป็นค่าสำรองสำหรับแต่ละการเรียกใช้ ซึ่งจะใช้เมื่อการเรียกเครื่องมือไม่ได้ระบุพารามิเตอร์นั้น
พารามิเตอร์เครื่องมือ
| พารามิเตอร์ | ชนิดข้อมูล | หมายเหตุ |
|---|---|---|
prompt |
string | จำเป็น คำสั่งงานสำหรับ LLM |
input |
any | เพย์โหลดที่ไม่บังคับ โดยจะแปลงเป็น JSON และต่อท้ายพรอมต์ |
schema |
object | JSON Schema ที่ไม่บังคับ ซึ่งผลลัพธ์ที่แยกวิเคราะห์แล้วต้องผ่านการตรวจสอบ |
provider |
string | แทนที่ defaultProvider / ผู้ให้บริการเริ่มต้นของเอเจนต์ |
model |
string | แทนที่ defaultModel โดยรับรหัสโมเดลเปล่า นามแฝง หรือการอ้างอิง provider/model (คำนำหน้าผู้ให้บริการที่ซ้ำกันจะถูกตัดออกโดยอัตโนมัติ) |
thinking |
string | ระดับการใช้เหตุผล (เช่น low, medium) ต้องเป็นระดับที่โมเดลซึ่งเลือกได้รองรับ |
authProfileId |
string | แทนที่ defaultAuthProfileId |
temperature |
number | ใช้ตามความสามารถที่รองรับ ผู้ให้บริการบางรายอาจไม่รองรับค่านี้ |
maxTokens |
number | ขีดจำกัดจำนวนโทเค็นผลลัพธ์ตามความสามารถที่รองรับ |
timeoutMs |
number | เวลาหมดเวลาสำหรับการทำงาน ค่าเริ่มต้นคือ 30000 |
ผลลัพธ์
คืนค่า details.json (JSON ที่แยกวิเคราะห์และผ่านการตรวจสอบสคีมาแล้ว) พร้อม details.provider และ details.model ซึ่งระบุผู้ให้บริการและโมเดลที่ใช้งานจริง
ตัวอย่าง: ขั้นตอนเวิร์กโฟลว์ Lobster
ข้อจำกัดสำคัญ
ตัวอย่างด้านล่างสมมติว่า Lobster CLI แบบสแตนด์อโลน กำลังทำงานในสภาพแวดล้อมที่ openclaw.invoke มี URL ของ Gateway และบริบทการยืนยันตัวตนที่ถูกต้องอยู่แล้ว
สำหรับตัวรัน Lobster แบบ ฝังในระบบ ที่รวมอยู่ภายใน OpenClaw รูปแบบ CLI ซ้อนกันนี้ ยังไม่เสถียรในขณะนี้:
openclaw.invoke --tool llm-task --action json --args-json '{ ... }'จนกว่า Lobster แบบฝังในระบบจะมีบริดจ์ที่รองรับโฟลว์นี้ ควรเลือกใช้วิธีใดวิธีหนึ่งต่อไปนี้:
- เรียกเครื่องมือ
llm-taskโดยตรงจากภายนอก Lobster หรือ - ใช้ขั้นตอน Lobster ที่ไม่พึ่งพาการเรียก
openclaw.invokeแบบซ้อนกัน
ตัวอย่าง 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 โดยไม่มีกรอบโค้ดและไม่มีคำอธิบายเพิ่มเติม
- ไม่มีเครื่องมือ: การทำงานเบื้องหลังจะปิดใช้งานเครื่องมือ โมเดลจึงไม่สามารถเรียกเครื่องมือภายนอกระหว่างทำงานได้
- ให้ถือว่าผลลัพธ์ไม่น่าเชื่อถือ เว้นแต่จะตรวจสอบด้วย
schema - กำหนดขั้นตอนการอนุมัติก่อนขั้นตอนใด ๆ ที่ก่อให้เกิดผลข้างเคียง (ส่ง โพสต์ เรียกใช้คำสั่ง) และใช้ผลลัพธ์นี้