Lompat ke konten
Rahman FakhruDiskusi proyek

Pelajaran 03 / 09

3. Function Calling dan Tool Contract

Menentukan Tool vs Resource vs Skill, desain nama/schema/description, serta kapan memakai first-class tool atau generic dispatcher.

Visual

Function Calling dan Tool Contract

Pilih Primitive yang Tepat

  • Tool: operasi yang dipilih model dan membutuhkan arguments.
  • Resource: data readable dengan identity/alamat stabil.
  • Prompt/Skill: workflow berulang, sequencing, recovery, atau policy guidance.
  • Internal-only: helper/low-level capability yang tidak layak diekspos.

Jangan expose function hanya karena function itu ada.

Public Tool = Public API

Nama harus stabil, spesifik, dan mudah dibedakan: projects_list, projects_get, projects_create.

Description harus menjawab kapan dipakai, kapan jangan dipakai, dari mana ID diperoleh, side effect, dan prerequisite.

Input schema harus bounded, typed, documented, dan tidak meminta identity seperti userId atau tenantId jika server bisa menurunkannya dari credential.

Handler yang Sehat

MCP Tool
→ validate args
→ resolve authenticated principal
→ policy / permission / approval
→ existing domain function
→ normalize output
→ redact
→ audit
→ result

First-class vs Dynamic Function Calling

Capability core/stable sebaiknya first-class MCP tools. Capability yang berasal dari project-specific plugins, downstream MCP, atau integrations dinamis lebih cocok memakai discovery + call generic seperti project_mcp_tools dan project_mcp_call.

Ini menghindari tool explosion, collision, context waste, dan cache instability.

Gunakan Contract yang Sama

Buat MCP kamu sendiri

Gunakan MCP Builder Kit sebagai starter/reference production-grade.

Buka MCP Builder Kit di GitHub →

Baca alasan kenapa MCP penting →