Tools: mcp_list_tools + mcp_call_tool — MCP client แบบจำกัดสำหรับ Agent Lite

ภาพรวมระบบสำหรับ: Tools: mcp_list_tools + mcp_call_tool — MCP client แบบจำกัดสำหรับ Agent LiteAgent Lite ใช้ MCP server ที่ developer provision ไว้ผ่าน local stdio ได้ แต่โมเดลเพิ่ม server เองไม่ได้; command/cwd/write paths ถูกตรวจและ child process รันผ่าน sandboxคำขอขั้นที่ 1ตรวจเงื่อนไขขั้นที่ 2ทำงานจริงขั้นที่ 3ผลลัพธ์ขั้นที่ 4agent 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 ถูกโยนให้โมเดลตัดสินทั้งหมด

อ่านต่อ

ความคิดเห็น

กำลังโหลดความคิดเห็น...