การจัดการเครื่องมือ
ภาพรวม
เครื่องมือ คือ "มือและเท้า" ที่ Agent ใช้ดำเนินการต่าง ๆ ระบบมี เครื่องมือในตัว 19 รายการ และรองรับการขยายชุดเครื่องมือผ่าน โปรโตคอล MCP, การนิยาม OpenAPI และ ทักษะ (Skill) หน้าการจัดการเครื่องมือใช้สำหรับกำหนดค่าและจัดการเครื่องมือทั้งหมดที่มีให้ใช้งาน

เครื่องมือในตัว 19 รายการ
ประเภทการดำเนินการกับไฟล์ (7 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| Read File | อ่านเนื้อหาไฟล์ รองรับช่วงหมายเลขบรรทัด สูงสุด 5MB | P0 (ทำงานอัตโนมัติ) |
| Write File | เขียนไฟล์ หากไม่มีจะสร้างพร้อมไดเรกทอรีแม่ให้อัตโนมัติ | P0 |
| Edit | แก้ไขบางส่วนของไฟล์ที่มีอยู่ (โหมดค้นหาแทนที่) | P0 |
| MultiEdit | แก้ไขหลายตำแหน่งแบบเป็นชุดกับไฟล์ที่มีอยู่ | P0 |
| List Directory | แสดงรายการไฟล์และไดเรกทอรีย่อย พร้อมแสดงขนาดไฟล์ | P0 (ล็อก) |
| Glob Files | ค้นหาไฟล์ตามรูปแบบไวลด์การ์ด ได้ผลลัพธ์สูงสุด 100 รายการ | P0 (ล็อก) |
| Search Files | ค้นหาในเนื้อหาไฟล์ด้วย regex ได้ผลลัพธ์สูงสุด 250 รายการ | P0 (ล็อก) |
ประเภทการรันคำสั่ง (1 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| Bash | รันคำสั่ง Shell, สคริปต์, การดำเนินการ Git หมดเวลา 120 วินาที เอาต์พุตสูงสุด 50KB | P1 (ยืนยันครั้งแรก) |
ประเภทเครือข่าย (1 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| Web Fetch | ดึงเนื้อหา URL แปลงเป็น Markdown ลดสัญญาณรบกวนอัตโนมัติ แคช 15 นาที | P1 |
ประเภทการจัดการงาน (1 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| Task Manage | จัดการรายการงานแบบมีโครงสร้าง (รอทำ/กำลังทำ/เสร็จแล้ว) เรียกใช้อัตโนมัติสำหรับงานที่มีมากกว่า 3 ขั้นตอน | P0 (ล็อก) |
ประเภทการเรียกใช้ทักษะ (1 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| Skill | เรียกใช้โมดูล Skill ที่ติดตั้งไว้เพื่อดำเนินงานเฉพาะทาง | P1 |
ประเภทการโต้ตอบกับผู้ใช้ (1 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| AskUserQuestion | Agent ตั้งคำถามกับผู้ใช้ (สูงสุด 4 คำถาม แต่ละคำถามมี 2-10 ตัวเลือก) | P0 (ล็อก) |
ประเภทซับเอเจนต์ (3 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| create_local_sub_agent | สร้างซับเอเจนต์ชั่วคราวบนโหนดนี้ รองรับการซ้อน 1-3 ระดับ | P0 |
| dispatch_sub_agent | มอบหมายงานให้ซับเอเจนต์ที่ลงทะเบียนไว้ | P0 |
| dispatch_multi_node_agent | มอบหมายงานไปยังโหนดระยะไกลผ่าน Gateway | P0 |
ประเภทความจำ (4 รายการ)
| เครื่องมือ | ฟังก์ชัน | ระดับความปลอดภัย |
|---|---|---|
| Conversation Search | ค้นหาบทสนทนาย้อนหลังตามคำสำคัญ รองรับการกรองตามช่วงเวลา สูงสุด 10 รายการ | P0 (ล็อก) |
| Recent Chats | แสดงรายการเซสชันบทสนทนาล่าสุด 1-20 รายการ รองรับการกรองตามเวลา | P0 (ล็อก) |
| Memory Query | ค้นหาความจำของผู้ใช้ที่จัดเก็บไว้ (การค้นหาเชิงความหมาย + การขยายด้วยกราฟ) | P0 (ล็อก) |
| Memory Manage | เพิ่ม อัปเดต หรือลบความจำของผู้ใช้ | P1 |
คำอธิบายระดับความปลอดภัย
| ระดับ | ความหมาย | พฤติกรรม |
|---|---|---|
| P0 | การดำเนินการที่ปลอดภัย | ทำงานอัตโนมัติ ไม่ต้องให้ผู้ใช้ยืนยัน |
| P1 | ต้องยืนยัน | แสดงหน้าต่างยืนยันสิทธิ์เมื่อเรียกใช้ครั้งแรก |
| P2 | ยืนยันทุกครั้ง | ต้องให้ผู้ใช้ยืนยันในการเรียกใช้ทุกครั้ง |
| ล็อก | ลดระดับไม่ได้ | ระดับความปลอดภัยถูกกำหนดตายตัว ปรับไม่ได้ |
ผู้ดูแลระบบสามารถปรับระดับสิทธิ์ของเครื่องมือที่ไม่ถูกล็อกได้ที่ เกราะป้องกันความปลอดภัย (ค่าขั้นต่ำขององค์กร) และผู้ใช้แต่ละคนสามารถเข้มงวดเพิ่มเติมได้ในความปลอดภัยขณะรันของ APP
โปรโตคอลเครื่องมือ MCP
MCP (Model Context Protocol) คือโปรโตคอลการสื่อสารสำหรับเครื่องมือ AI ที่เป็นมาตรฐาน รองรับการขยายชุดเครื่องมือผ่านบริการภายนอก
วิธีการรับส่งข้อมูลสามแบบ
| การรับส่ง | คำอธิบาย | สถานการณ์ที่เหมาะสม |
|---|---|---|
| stdio | การสื่อสารกับกระบวนการย่อยในเครื่อง (command + args) | เครื่องมือ CLI ในเครื่อง |
| SSE | Server-Sent Events (การเชื่อมต่อ HTTP ระยะยาว) | บริการระยะไกล |
| HTTP | Streamable HTTP API | บริการระยะไกล |
โหมดการยืนยันตัวตนห้าแบบ
| การยืนยันตัวตน | คำอธิบาย |
|---|---|
| none | ไม่มีการยืนยันตัวตน |
| bearer | Bearer Token |
| basic | HTTP Basic Auth |
| service | การยืนยันตัวตนระหว่างบริการ |
| oauth2 | กระบวนการ authorization code ของ OAuth2 (ค้นหาปลายทาง well-known อัตโนมัติ) |
หน้าจอจัดการ MCP
จัดการเซิร์ฟเวอร์ MCP ผ่านคอมโพเนนต์ McpManager:
- เพิ่มเซิร์ฟเวอร์: กำหนดค่าชื่อ วิธีการรับส่งข้อมูล พารามิเตอร์การเชื่อมต่อ และวิธีการยืนยันตัวตน
- แก้ไข/ลบ: แก้ไขหรือลบการกำหนดค่าที่มีอยู่
- เปิด/ปิดใช้งาน: สลับสถานะการใช้งานของเซิร์ฟเวอร์
- การค้นพบเครื่องมือ: ค้นพบรายการเครื่องมือที่เซิร์ฟเวอร์ให้บริการโดยอัตโนมัติหลังเชื่อมต่อ
การแยกความปลอดภัย
กระบวนการย่อยของ MCP จะส่งต่อเฉพาะ ตัวแปรสภาพแวดล้อมในบัญชีขาว เท่านั้น เพื่อป้องกันการรั่วไหลของข้อมูลอ่อนไหว เช่น API Key
เครื่องมือ API
รองรับการแยกวิเคราะห์และสร้างเครื่องมืออัตโนมัติจากเอกสาร OpenAPI/Swagger:
| ฟังก์ชัน | คำอธิบาย |
|---|---|
| แยกวิเคราะห์อัตโนมัติ | ดึงปลายทางและ Schema ของพารามิเตอร์จากข้อกำหนด OpenAPI |
| การกำหนดค่าการยืนยันตัวตน | โหมดการยืนยันตัวตนห้าแบบ |
| ตัวแปรเทมเพลต | การแทนที่แบบไดนามิก {{variable}} |
| เมธอด HTTP | GET / POST / PUT / DELETE / PATCH |
ไดเรกทอรีเครื่องมือแบบกำหนดเอง NEW
ระบบเพิ่ม ToolDirectoryManager —— จัดการเครื่องมือแบบกำหนดเองภายใต้ไดเรกทอรี {dataDir}/TOOLs/{orgId}/_custom/ โดย ไม่ต้องรีสตาร์ท APP ก็สามารถโหลดได้
โครงสร้างไดเรกทอรี
{dataDir}/TOOLs/{orgId}/_custom/
├── my-tool-1/
│ ├── metadata.json
│ └── ...
└── my-tool-2/
├── metadata.json
└── ...
ตัวอย่าง metadata.json
{
"id": "my-tool-1",
"name": "My Custom Tool",
"description": "自定义工具说明",
"type": "API",
"enabled": true,
"createdAt": 1776921208476,
"updatedAt": 1776921208476
}
กลไกการโหลด
- วิธีสแกน:
scanAndLoad(orgId) - ประเภทที่รองรับ:
API/MCP - การแยกองค์กร: แบ่งไดเรกทอรีตาม orgId ไม่รบกวนกัน
- การโหลดแบบร้อน: ไม่ต้องรีสตาร์ท APP
ไปป์ไลน์การโหลดเครื่องมือ
เครื่องมือทั้งหมดจะถูกโหลดและรวมกันตามลำดับต่อไปนี้:
① เครื่องมือในตัว (19 รายการ)
↓
② เครื่องมือ MCP (ค้นพบจากเซิร์ฟเวอร์ MCP ที่กำหนดค่าไว้)
↓
③ เครื่องมือ API (แยกวิเคราะห์จากการนิยาม OpenAPI)
↓
④ เครื่องมือแบบกำหนดเอง (ToolDirectoryManager สแกนไดเรกทอรี _custom/)
↓
⑤ เครื่องมือทักษะ (ฉีด execute_skill_{id} จาก Skills ที่เปิดใช้งาน)
↓
⑥ รวมและกำจัดรายการซ้ำ → รายการเครื่องมือสุดท้าย → ส่งให้ LLM
สถานการณ์การใช้งานของเครื่องมือที่ใช้บ่อย
| ตัวอย่างคำขอของผู้ใช้ | เครื่องมือที่ Agent เรียกใช้ | คำอธิบาย |
|---|---|---|
| "ช่วยดูเนื้อหาของ package.json ให้หน่อย" | Read File | อ่านและส่งคืนเนื้อหาไฟล์ |
| "เปลี่ยนชื่อฟังก์ชันจาก getData เป็น fetchData" | Edit | ค้นหาแทนที่อย่างแม่นยำ |
| "สร้าง README.md สักไฟล์" | Write File | สร้างไฟล์ใหม่ |
| "ในโปรเจกต์มีไฟล์ .tsx อะไรบ้าง?" | Glob Files | ค้นหาชื่อไฟล์ตามรูปแบบ |
| "ในโค้ดตรงไหนใช้ useEffect บ้าง?" | Search Files | ค้นหาด้วย regex ในเนื้อหาไฟล์ |
| "ช่วยรัน npm install ให้หน่อย" | Bash | รันคำสั่ง Shell |
| "ช่วยสรุปเนื้อหาของหน้าเว็บนี้: https://..." | Web Fetch | ดึงหน้าเว็บแปลงเป็น Markdown |
| "งานนี้ค่อนข้างซับซ้อน ช่วยวางแผนก่อน" | Task Manage | สร้างรายการงานแบบมีโครงสร้าง |
| "ช่วยค้นหาบทสนทนาเมื่อวานเกี่ยวกับการย้ายฐานข้อมูล" | Conversation Search | ค้นหาบทสนทนาย้อนหลัง |
| "จำไว้ว่าฉันชอบใช้ธีม dark" | Memory Manage | จัดเก็บลงในความจำ |
คู่มือการใช้งาน: เพิ่มเครื่องมือ MCP
- เปิด APP → การตั้งค่า → เครื่องมือ → พื้นที่เครื่องมือ MCP
- คลิก เพิ่มเซิร์ฟเวอร์ MCP
- กรอกการกำหนดค่า:
- ชื่อ: ตั้งชื่อสำหรับระบุเซิร์ฟเวอร์ MCP นี้
- วิธีการรับส่งข้อมูล: เลือก stdio / SSE / HTTP
- หากเป็น stdio: กรอกคำสั่ง (เช่น
npx) และพารามิเตอร์ (เช่น@anthropic/mcp-server-filesystem) - หากเป็น SSE/HTTP: กรอก URL ของเซิร์ฟเวอร์
- หากต้องการการยืนยันตัวตน ให้เลือกวิธีการยืนยันตัวตนและกรอกข้อมูลรับรอง
- คลิก บันทึก
- ระบบจะเชื่อมต่อเซิร์ฟเวอร์และค้นพบเครื่องมือที่ใช้ได้โดยอัตโนมัติ
- เครื่องมือที่ค้นพบจะปรากฏในรายการเครื่องมือ และเปิดใช้งานตามค่าเริ่มต้น
เคล็ดลับ: กระบวนการย่อยของ MCP จะส่งต่อเฉพาะตัวแปรสภาพแวดล้อมในบัญชีขาวเท่านั้น หากเครื่องมือ MCP ต้องการตัวแปรสภาพแวดล้อม เช่น API Key จะต้องประกาศอย่างชัดเจนในฟิลด์ env ของการกำหนดค่า
ผลกระทบของการปิดใช้งานเครื่องมือ
หลังจากปิดใช้งานเครื่องมือใดเครื่องมือหนึ่ง Agent จะ ไม่รับรู้เลย ว่ามีเครื่องมือนั้นอยู่ในบทสนทนา ซึ่งหมายความว่า:
| เครื่องมือที่ปิดใช้งาน | ผลกระทบ |
|---|---|
| Bash | Agent ไม่สามารถรันคำสั่ง Shell ใด ๆ ได้ (npm, git, การคอมไพล์ ฯลฯ) |
| Read File / Write File | Agent ไม่สามารถอ่านหรือสร้างไฟล์ได้ |
| Web Fetch | Agent ไม่สามารถดึงเนื้อหาหน้าเว็บได้ และทักษะประเภทการค้นหาก็ได้รับผลกระทบด้วย |
| Memory Query / Manage | Agent จะไม่ค้นหาหรือจัดเก็บความจำ |
| Skill | Agent ไม่สามารถเรียกใช้โมดูลทักษะใด ๆ ได้ |
| create_local_sub_agent | Agent ไม่สามารถสร้างซับเอเจนต์เพื่อแยกย่อยงานได้ |
คำแนะนำ: หากไม่มีเหตุผลด้านความปลอดภัยที่ชัดเจน ไม่แนะนำให้ปิดใช้งานเครื่องมือดำเนินการกับไฟล์หลัก (Read / Write / Edit / Glob / Search) มิฉะนั้นความสามารถในการดำเนินงานของ Agent จะถูกจำกัดอย่างรุนแรง
คำถามที่พบบ่อย
Agent บอกว่า "ฉันไม่สามารถดำเนินการกับไฟล์ได้"
ตรวจสอบว่าเครื่องมือประเภทการดำเนินการกับไฟล์ (Read File, Write File, Edit ฯลฯ) ถูกปิดใช้งานหรือไม่ ยืนยันในหน้าการจัดการเครื่องมือว่าเครื่องมือเหล่านี้อยู่ในสถานะเปิดใช้งาน
เครื่องมือ MCP เชื่อมต่อล้มเหลว
- ยืนยันว่าคำสั่ง/URL ของเซิร์ฟเวอร์ MCP ถูกต้องหรือไม่
- หากเป็นวิธี stdio ให้ยืนยันว่าคำสั่งที่เกี่ยวข้องได้ติดตั้งแล้ว (เช่น
npxต้องมีสภาพแวดล้อม Node.js) - ตรวจสอบว่าต้องการตัวแปรสภาพแวดล้อมหรือไม่ (API Key ฯลฯ)
- ดูบันทึก (log) ของ APP เพื่อรับข้อมูลข้อผิดพลาดโดยละเอียด
Agent ไม่ได้ใช้เครื่องมือที่ฉันคาดหวัง
Agent เลือกเครื่องมือด้วยตนเองตามความต้องการของงาน หาก Agent เลือกเครื่องมือ "ผิด" คุณสามารถระบุอย่างชัดเจนในบทสนทนาได้: "โปรดใช้เครื่องมือ Bash เพื่อรันคำสั่งนี้"
เอกสารที่เกี่ยวข้อง
- การจัดการทักษะ — ระบบทักษะ
- ความปลอดภัยขณะรัน — การกำหนดค่าสิทธิ์ของเครื่องมือ
- เกราะป้องกันความปลอดภัย — การจัดการสิทธิ์เครื่องมือระดับองค์กร
