การเรียกใช้เครื่องมือ (HTTP)¶
Gateway ของ OpenClaw เปิดเผยเอ็นด์พอยต์ HTTP แบบเรียบง่ายสำหรับการเรียกใช้เครื่องมือเดี่ยวโดยตรง โดยจะเปิดใช้งานเสมอ แต่ถูกควบคุมด้วยการยืนยันตัวตนของ Gateway และนโยบายของเครื่องมือ เปิดใช้งานเสมอ แต่ถูกควบคุมด้วยการยืนยันตัวตนของเกตเวย์และนโยบายเครื่องมือ
POST /tools/invoke- ใช้พอร์ตเดียวกับ Gateway (มัลติเพล็กซ์ WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
ขนาดเพย์โหลดสูงสุดเริ่มต้นคือ 2 MB
การยืนยันตัวตน¶
ใช้การกำหนดค่าการยืนยันตัวตนของ Gateway ส่ง bearer token: ส่ง bearer token:
Authorization: Bearer <token>
หมายเหตุ:
- เมื่อ
gateway.auth.mode="token"ให้ใช้gateway.auth.token(หรือOPENCLAW_GATEWAY_TOKEN). - เมื่อ
gateway.auth.mode="password"ให้ใช้gateway.auth.password(หรือOPENCLAW_GATEWAY_PASSWORD).
Request body¶
{
"tool": "sessions_list",
"action": "json",
"args": {},
"sessionKey": "main",
"dryRun": false
}
ฟิลด์:
tool(string, จำเป็น): ชื่อเครื่องมือที่จะเรียกใช้action(string, ไม่บังคับ): จะถูกแมปเข้า args หากสคีมาของเครื่องมือรองรับactionและเพย์โหลด args ไม่ได้ระบุฟิลด์นี้args(object, ไม่บังคับ): อาร์กิวเมนต์เฉพาะของเครื่องมือsessionKey(สตริง, ไม่บังคับ): คีย์เซสชันเป้าหมายsessionKey(string, ไม่บังคับ): คีย์เซสชันเป้าหมาย หากไม่ระบุหรือเป็น"main"Gateway จะใช้คีย์เซสชันหลักที่ตั้งค่าไว้ (คำนึงถึงsession.mainKeyและเอเจนต์เริ่มต้น หรือglobalในสโคปส่วนกลาง)dryRun(boolean, ไม่บังคับ): สงวนไว้สำหรับการใช้งานในอนาคต ปัจจุบันจะถูกละเว้น
Policy + routing behavior¶
ความพร้อมใช้งานของเครื่องมือจะถูกกรองผ่านสายโซ่นโยบายเดียวกับที่ใช้โดยเอเจนต์ของ Gateway:
tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- นโยบายกลุ่ม (หากคีย์เซสชันแมปไปยังกลุ่มหรือช่องทาง)
- นโยบายซับเอเจนต์ (เมื่อเรียกใช้ด้วยคีย์เซสชันของซับเอเจนต์)
หากเครื่องมือไม่ได้รับอนุญาตตามนโยบาย เอ็นด์พอยต์จะส่งคืน 404
เพื่อช่วยให้นโยบายกลุ่มสามารถระบุบริบทได้ คุณสามารถตั้งค่าเพิ่มเติมได้ดังนี้:
x-openclaw-message-channel: <channel>(ตัวอย่าง:slack,telegram)x-openclaw-account-id: <accountId>(เมื่อมีหลายบัญชี)
Responses¶
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(คำขอไม่ถูกต้องหรือเกิดข้อผิดพลาดของเครื่องมือ)401→ ไม่ได้รับอนุญาต404→ เครื่องมือไม่พร้อมใช้งาน (ไม่พบหรือไม่อยู่ในรายการอนุญาต)405→ ไม่อนุญาตเมธอด
Example¶
curl -sS http://127.0.0.1:18789/tools/invoke \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"tool": "sessions_list",
"action": "json",
"args": {}
}'