เครื่องมือ
Clew มีเครื่องมือในตัว 50+ รายการ พร้อมเครื่องมือ MCP ที่โหลดแบบไดนามิก เครื่องมือถูกเรียกโดยโมเดล AI ผ่านบล็อก tool_use
วิธีการทำงานของเครื่องมือ
เครื่องมือถูกกำหนดด้วย Zod schemas ใน src/Tool.ts ผ่านตัวช่วย buildTool() และลงทะเบียนใน src/tools.ts
โมเดลส่ง tool_use
ปรับมาตรฐานการเรียกใช้เครื่องมือ (toolCallParser.ts)
ตรวจสอบสิทธิ์ (permissions.ts)
ฮุค PreToolUse (ปลั๊กอิน)
ดำเนินการเครื่องมือ (StreamingToolExecutor)
ฮุค PostToolUse (ปลั๊กอิน)
ส่งคืนผลลัพธ์เป็น tool_result
วนซ้ำคำถามต่อไป
การดำเนินการไฟล์และโค้ด
| เครื่องมือ | คำอธิบาย |
|---|---|
Read | อ่านไฟล์พร้อมหมายเลขบรรทัด, รองรับรูปภาพ, PDF, Jupyter notebooks |
Write | สร้างไฟล์ใหม่พร้อมเนื้อหาเต็ม |
Edit | แก้ไขแบบแทนที่สตริงที่แน่นอน |
Glob | ค้นหาไฟล์ด้วย pattern, เรียงตามเวลาแก้ไข |
Grep | ค้นหาเนื้อหาด้วย regex พร้อมบรรทัดบริบท |
NotebookEdit | แก้ไขเซลล์ Jupyter notebook |
เชลล์และระบบ
| เครื่องมือ | คำอธิบาย |
|---|---|
Bash | รันคำสั่ง shell พร้อม timeout, background, sandbox |
Monitor | สตรีม stdout/stderr จากงานพื้นหลังแบบเรียลไทม์ |
TaskOutput | รับผลลัพธ์จากงานที่กำลังรันหรือเสร็จแล้ว |
ค้นหาและเว็บ
| เครื่องมือ | คำอธิบาย |
|---|---|
WebSearch | ค้นหาเว็บหลายผู้ให้บริการ (Tavily, Brave, Serper, SearXNG, DuckDuckGo) |
WebFetch | ดึงและวิเคราะห์เนื้อหาจาก URL |
SessionSearch | ค้นหาข้อความเต็มในประวัติเซสชันที่ผ่านมา |
ความปลอดภัยและสิทธิ์ของเครื่องมือ
แต่ละเครื่องมือประกาศ:
- isEnabled() — พร้อมใช้งานใน build ปัจจุบันหรือไม่
- isConcurrencySafe() — รันพร้อมกับเครื่องมืออื่นได้หรือไม่
- isReadOnly() — ไม่แก้ไขระบบไฟล์
- isDestructive() — ดำเนินการที่ไม่สามารถย้อนกลับ