การจัดการเครื่องมือ

การจัดการเครื่องมือ

ภาพรวม

เครื่องมือ คือ "มือและเท้า" ที่ 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 └── ...
                      
                      {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 }
                      
                      {
  "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
                      
                      ① เครื่องมือในตัว (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

  1. เปิด APP → การตั้งค่า → เครื่องมือ → พื้นที่เครื่องมือ MCP
  2. คลิก เพิ่มเซิร์ฟเวอร์ MCP
  3. กรอกการกำหนดค่า:
    • ชื่อ: ตั้งชื่อสำหรับระบุเซิร์ฟเวอร์ MCP นี้
    • วิธีการรับส่งข้อมูล: เลือก stdio / SSE / HTTP
    • หากเป็น stdio: กรอกคำสั่ง (เช่น npx) และพารามิเตอร์ (เช่น @anthropic/mcp-server-filesystem)
    • หากเป็น SSE/HTTP: กรอก URL ของเซิร์ฟเวอร์
  4. หากต้องการการยืนยันตัวตน ให้เลือกวิธีการยืนยันตัวตนและกรอกข้อมูลรับรอง
  5. คลิก บันทึก
  6. ระบบจะเชื่อมต่อเซิร์ฟเวอร์และค้นพบเครื่องมือที่ใช้ได้โดยอัตโนมัติ
  7. เครื่องมือที่ค้นพบจะปรากฏในรายการเครื่องมือ และเปิดใช้งานตามค่าเริ่มต้น

เคล็ดลับ: กระบวนการย่อยของ 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 เชื่อมต่อล้มเหลว

  1. ยืนยันว่าคำสั่ง/URL ของเซิร์ฟเวอร์ MCP ถูกต้องหรือไม่
  2. หากเป็นวิธี stdio ให้ยืนยันว่าคำสั่งที่เกี่ยวข้องได้ติดตั้งแล้ว (เช่น npx ต้องมีสภาพแวดล้อม Node.js)
  3. ตรวจสอบว่าต้องการตัวแปรสภาพแวดล้อมหรือไม่ (API Key ฯลฯ)
  4. ดูบันทึก (log) ของ APP เพื่อรับข้อมูลข้อผิดพลาดโดยละเอียด

Agent ไม่ได้ใช้เครื่องมือที่ฉันคาดหวัง

Agent เลือกเครื่องมือด้วยตนเองตามความต้องการของงาน หาก Agent เลือกเครื่องมือ "ผิด" คุณสามารถระบุอย่างชัดเจนในบทสนทนาได้: "โปรดใช้เครื่องมือ Bash เพื่อรันคำสั่งนี้"


เอกสารที่เกี่ยวข้อง