การค้นหาเครื่องมือเป็นฟีเจอร์ทดลองของ OpenClaw PI-agent ฟีเจอร์นี้ให้ PI agents มีวิธีแบบกะทัดรัดหนึ่งวิธีในการค้นพบและเรียกใช้แค็ตตาล็อกเครื่องมือขนาดใหญ่ ฟีเจอร์นี้มีประโยชน์เมื่อการรันมีเครื่องมือที่ใช้งานได้จำนวนมาก แต่โมเดลมีแนวโน้มว่าจะต้องใช้เพียงไม่กี่เครื่องมือเท่านั้น หน้านี้จัดทำเอกสาร OpenClaw PI Tool Search ไม่ใช่พื้นผิวการค้นหาเครื่องมือหรือเครื่องมือไดนามิกแบบเนทีฟของ Codex โหมดโค้ดแบบเนทีฟของ Codex, การค้นหาเครื่องมือ, เครื่องมือไดนามิกแบบเลื่อนเวลา และการเรียกเครื่องมือซ้อนกันเป็นพื้นผิวของ Codex harness ที่เสถียร และไม่ได้ขึ้นอยู่กับDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
tools.toolSearch
เมื่อเปิดใช้งานสำหรับ PI โมเดลจะได้รับเครื่องมือ tool_search_code หนึ่งรายการตามค่าเริ่มต้น เครื่องมือนั้นรันบอดี้ JavaScript สั้น ๆ ในกระบวนการย่อย Node ที่แยกออกมา โดยมีบริดจ์ openclaw.tools:
วิธีการรันหนึ่งเทิร์น
ในเวลาวางแผน ตัวรัน PI แบบฝังจะสร้างแค็ตตาล็อกที่มีผลสำหรับการรัน:- แก้ไขนโยบายเครื่องมือที่ใช้งานอยู่สำหรับเอเจนต์ โปรไฟล์ แซนด์บ็อกซ์ และเซสชัน
- แสดงรายการเครื่องมือ OpenClaw และ Plugin ที่มีสิทธิ์
- แสดงรายการเครื่องมือ MCP ที่มีสิทธิ์ผ่านรันไทม์ MCP ของเซสชัน
- เพิ่มเครื่องมือไคลเอนต์ที่มีสิทธิ์ซึ่งจัดเตรียมให้สำหรับการรันปัจจุบัน
- ทำดัชนีดิสคริปเตอร์แบบกะทัดรัดสำหรับการค้นหา
- เปิดเผยบริดจ์โค้ด PI หรือเครื่องมือสำรองแบบมีโครงสร้างให้โมเดล
openclaw.tools.call(...) จะข้ามบริดจ์กลับเข้าสู่ Gateway ซึ่งนโยบายปกติ การอนุมัติ hook การบันทึก log และการจัดการผลลัพธ์ยังคงมีผลอยู่
โหมด
tools.toolSearch มีสองโหมดที่โมเดลมองเห็นได้:
code: เปิดเผยtool_search_codeซึ่งเป็นบริดจ์ JavaScript แบบกะทัดรัดค่าเริ่มต้นtools: เปิดเผยtool_search,tool_describeและtool_callเป็นเครื่องมือแบบมีโครงสร้างธรรมดาสำหรับผู้ให้บริการที่ไม่ควรได้รับโค้ด
code ค่าเริ่มต้นจะถอยกลับไปใช้ tools ก่อนการบีบอัดแค็ตตาล็อก
ทั้งสองโหมดเป็นแบบทดลอง ควรใช้การเปิดเผยเครื่องมือโดยตรงสำหรับแค็ตตาล็อกเครื่องมือ PI ขนาดเล็ก และควรใช้พื้นผิวที่เสถียรแบบเนทีฟของ Codex สำหรับการรัน Codex harness
ไม่มีคอนฟิกสำหรับการเลือกแหล่งที่มาแยกต่างหาก เมื่อเปิดใช้งาน Tool Search แค็ตตาล็อกจะรวมเครื่องมือ OpenClaw, MCP และเครื่องมือไคลเอนต์ที่มีสิทธิ์หลังจากการกรองนโยบายปกติ
เหตุผลที่มีฟีเจอร์นี้
แค็ตตาล็อกขนาดใหญ่มีประโยชน์แต่มีต้นทุนสูง การส่งสคีมาเครื่องมือทุกตัวไปยังโมเดลทำให้คำขอมีขนาดใหญ่ขึ้น ทำให้การวางแผนช้าลง และเพิ่มการเลือกเครื่องมือโดยไม่ตั้งใจ Tool Search เปลี่ยนรูปร่างดังนี้:- เครื่องมือโดยตรง: โมเดลเห็นสคีมาที่เลือกทุกตัวก่อนโทเค็นแรก
- โหมดโค้ดของ Tool Search: โมเดลเห็นเครื่องมือโค้ดแบบกะทัดรัดหนึ่งรายการและสัญญา API สั้น ๆ
- โหมดเครื่องมือของ Tool Search: โมเดลเห็นเครื่องมือสำรองแบบมีโครงสร้างกะทัดรัดสามรายการ
- ระหว่างเทิร์น: โมเดลโหลดเฉพาะสคีมาเครื่องมือที่ต้องใช้จริงเท่านั้น
API
openclaw.tools.search(query, options?)
ค้นหาแค็ตตาล็อกที่มีผลสำหรับการรันปัจจุบัน ผลลัพธ์มีขนาดกะทัดรัดและปลอดภัยสำหรับใส่กลับเข้าไปในบริบท prompt
openclaw.tools.describe(id)
โหลดเมทาดาทาเต็มสำหรับผลการค้นหาหนึ่งรายการ รวมถึงสคีมาอินพุตที่แน่นอน
openclaw.tools.call(id, args)
เรียกเครื่องมือที่เลือกผ่าน OpenClaw
tool_searchtool_describetool_call
ขอบเขตรันไทม์
บริดจ์โค้ดรันในกระบวนการย่อย Node อายุสั้น กระบวนการย่อยเริ่มต้นโดยเปิดใช้งานโหมด permission ของ Node มี environment ว่าง ไม่มีสิทธิ์ระบบไฟล์หรือเครือข่าย และไม่มีสิทธิ์กระบวนการย่อยหรือ worker OpenClaw บังคับใช้ timeout แบบ wall-clock ของกระบวนการแม่และฆ่ากระบวนการย่อยเมื่อ timeout รวมถึงหลังจากการทำงานต่อเนื่องแบบ async รันไทม์เปิดเผยเฉพาะ:console.log,console.warnและconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- นโยบายอนุญาตและปฏิเสธเครื่องมือ
- ข้อจำกัดเครื่องมือต่อเอเจนต์และต่อแซนด์บ็อกซ์
- การกั้นเฉพาะเจ้าของ
- hook การอนุมัติ
- hook
before_tool_callของ Plugin - ตัวตนเซสชัน log และ telemetry
คอนฟิก
เปิดใช้งาน Tool Search สำหรับการรัน PI ด้วยบริดจ์โค้ดค่าเริ่มต้น:Prompt และ telemetry
Tool Search บันทึก telemetry เพียงพอเพื่อเปรียบเทียบกับการเปิดเผยเครื่องมือโดยตรง:- จำนวนไบต์ของเครื่องมือและ prompt ที่ซีเรียลไลซ์ทั้งหมดซึ่งส่งไปยัง harness
- ขนาดแค็ตตาล็อกและการแจกแจงตามแหล่งที่มา
- จำนวนการค้นหา การอธิบาย และการเรียก
- การเรียกเครื่องมือสุดท้ายที่ประมวลผลผ่าน OpenClaw
- ID เครื่องมือและแหล่งที่มาที่เลือก
- โมเดลเห็นสคีมาเครื่องมือกี่รายการตั้งแต่ต้น
- โมเดลดำเนินการค้นหาและอธิบายกี่ครั้ง
- เครื่องมือสุดท้ายใดถูกเรียก
- ผลลัพธ์มาจาก OpenClaw, MCP หรือเครื่องมือไคลเอนต์หรือไม่
การตรวจสอบ E2E
ตัวรัน E2E ของ gateway พิสูจน์ทั้งสองเส้นทางด้วย PI harness:- โหมดโดยตรงสามารถเรียกเครื่องมือ Plugin ปลอมได้
- Tool Search สามารถเรียกเครื่องมือ Plugin ปลอมเดียวกันได้
- โหมดโดยตรงเปิดเผยสคีมาเครื่องมือ Plugin ปลอมต่อผู้ให้บริการโดยตรง
- Tool Search เปิดเผยเฉพาะบริดจ์แบบกะทัดรัด
- payload คำขอของ Tool Search มีขนาดเล็กกว่าสำหรับแค็ตตาล็อกปลอมขนาดใหญ่
- log ของเซสชันแสดงจำนวนการเรียกเครื่องมือและ telemetry การเรียกผ่านบริดจ์ตามที่คาดไว้
พฤติกรรมเมื่อเกิดความล้มเหลว
Tool Search ควรล้มเหลวแบบปิด:- หากเครื่องมือไม่ได้อยู่ในนโยบายที่มีผล การค้นหาไม่ควรคืนเครื่องมือนั้น
- หากเครื่องมือที่เลือกไม่พร้อมใช้งาน
tool_callควรล้มเหลว - หากนโยบายหรือการอนุมัติบล็อกการประมวลผล ผลลัพธ์การเรียกควรรายงานการบล็อกนั้นแทนที่จะข้ามไป
- หากบริดจ์โค้ดไม่สามารถสร้างรันไทม์ที่แยกออกมาได้ ให้ใช้
mode: "tools"หรือปิดใช้งาน Tool Search สำหรับการปรับใช้นั้น