Tools: mcp_list_tools + mcp_call_tool — MCP client แบบจำกัดสำหรับ Agent Lite
Agent Lite รุ่นปัจจุบันมี generic MCP client สอง tool:
mcp_list_tools
mcp_call_tool
ใช้สำหรับเรียก MCP server ที่ developer provision ไว้ล่วงหน้า เช่น lite-rag ซึ่งชี้ไปยัง MCP-RagDoc
ทำไมไม่ให้โมเดลเพิ่ม MCP server เอง
โมเดล 2B ไม่ควรมีสิทธิ์ขยาย capability surface ของตัวเองระหว่างสนทนา ดังนั้น Lite มีเฉพาะ list/call และจงใจไม่มี dynamic add/remove registration ให้โมเดล
server configuration มาจาก code/config ที่เชื่อถือได้ ไม่ใช่ข้อความจากผู้ใช้หรือ tool output
mcp_list_tools
ใช้ดูรายการ tool ของ server ที่กำหนด หรือ inspect schema ของ tool เฉพาะตัวเมื่อจำเป็น
Agent ไม่ต้องเรียก list ก่อนทุก call ถ้า server/tool contract คงที่และรู้อยู่แล้ว เช่น lite-rag.rag_search
mcp_call_tool
รับ:
server
tool_name
arguments_json
แล้วเปิด stdio MCP child แบบ bounded timeout/output ก่อนคืนผลเข้า ReAct loop
ปัจจุบันรองรับ local stdio เท่านั้น
Lite ตรวจว่า transport เป็น stdio, command เป็น absolute executable ที่มีอยู่จริง และ cwd อยู่ภายใน MCP workspace ที่อนุญาต
ไม่ได้เปิด network MCP endpoint ให้โมเดลต่อเอง
Child process ไม่ inherit environment ทั้งก้อน
MCP client ส่งผ่านเฉพาะ environment ที่จำเป็นและค่ากลุ่ม LITE_* ที่ไม่ใช่ API key รวมถึงแปลง trusted Agent Lite paths ไปเป็น generic RAGDOC_* configuration สำหรับ MCP-RagDoc
เป้าหมายคือไม่ส่ง unrelated credentials/environment secrets เข้า child process โดยไม่จำเป็น
Sandbox ของ stdio MCP
child process รันผ่าน macOS sandbox policy ที่:
- deny network
- deny file writes โดย default
- deny read sensitive directories
- allow writes เฉพาะ MCP workspace และ capability paths ที่ developer provision ไว้
สำหรับ lite-rag source rag_document/ เป็น read-only ส่วน SQLite/runtime state ได้ write capability ใต้ private data directory
Agent Lite กับ MCP-RagDoc เชื่อมกันอย่างไร
Agent Lite
│
▼
mcp_call_tool(server="lite-rag")
│ stdio + sandbox
▼
MCP-RagDoc
├─ rag_search
├─ sync_kb
├─ sync_status
├─ cancel_sync
└─ rag_health
MCP-RagDoc ไม่ import Agent Lite; host-specific routing และ retry policy อยู่ฝั่ง agent
Failure handling
ถ้า server/tool unavailable Agent Lite ไม่ควรวนเรียก MCP เดิมซ้ำไม่จบ สำหรับ Knowledge Base search มี code-owned fallback ไป bash แบบ read-only โดยรักษา scope เดิม
การมี generic MCP client จึงไม่ได้หมายความว่า failure behavior ถูกโยนให้โมเดลตัดสินทั้งหมด
ความคิดเห็น
กำลังโหลดความคิดเห็น...