English · Español
Fase 31 — Uso de herramientas y el Model Context Protocol (MCP)¶
Requiere: 30 — Generación estructurada y decodificación restringida Enseña:
tool-use·function-calling·mcp·json-schema·json-rpcSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
Pre-escrita según A12. Esta entrada de fase existe antes de que Borja comience el estudio. La teoría y los enunciados de los labs son borradores estables; las soluciones se escriben justo a tiempo en la apertura de la fase.
🇪🇸 "Function calling", "tool use", "agentic" — vocabulario para una sola idea: el modelo emite JSON que dispara una función Python. La gracia de MCP es estandarizar cómo ese JSON se descubre, valida y enruta. Esta fase construye el plumbing desde cero.
Objetivo¶
Construir la capa de herramientas del stack del tutor de gramática: cuatro funciones Python tipadas (conjugate, lookup_irregular_verb, lookup_spanish, check_subject_verb_agreement) que operan sobre el universo §A13, más un par mínimo de servidor/cliente MCP (Model Context Protocol) que las expone vía JSON-RPC por stdio. Al cierre de la fase, Borja puede enviar un mensaje JSON-RPC desde un proceso cliente a un proceso servidor y obtener un resultado tipado de vuelta — y explicar exactamente qué bytes viajan por el pipe.
Esta fase introduce el nuevo módulo src/miniagent/ (tools + maquinaria MCP). La Fase 32 lo extiende con el bucle del agente, la memoria y el sandbox.
Orden de lectura¶
theory/00-motivation.md— por qué el bucle del agente necesita herramientas; los límites de un sistema puro de LM.theory/01-function-calling-formats.md— encuesta: estilo OpenAI, estilo Anthropic, JSON-Schema en crudo. Qué hace bien y mal cada uno.theory/02-mcp-architecture.md— la forma tripartita de MCP (servidor, cliente, transporte); los cuatro verbos del wire que nos importan (initialize,tools/list,tools/call,notifications/...); el framing de JSON-RPC 2.0.theory/03-authn-authz.md— modelos de permisos, la suposición de confianza local que nos da stdio, qué cambia cuando pasamos a HTTP.lab/00-typed-tools.md— escribir las cuatro tools como funciones Python planas con descriptores JSON-Schema.lab/01-mcp-server.md— servidor JSON-RPC por stdio hecho a mano que expone las tools.lab/02-mcp-roundtrip.md— el cliente lanza el servidor, lista tools, llama a una.lab/03-mask-driven-toolcall.md— conectar elJSONSchemaMaskde la Fase 30 con la generación de argumentos de tool calls. End-to-end.
solutions/ está vacío durante el pre-escrito — se rellena en la apertura de la fase.
Definition of Done¶
Ver PHASE_31_PLAN.md §6. Brevemente:
- 4 tools implementadas y testeadas contra la tabla de verdad §A13.
- El round-trip servidor + cliente MCP funciona en stdio.
- Un blob de argumentos de tool call generado por el modelo bajo
JSONSchemaMaskse despacha correctamente. src/miniagent/BLUEPRINT.mdrevisado y coincide con la API entregada.
Qué NO cubre esta fase intencionadamente¶
- El bucle del agente. Eso es la Fase 32. La Fase 31 termina en "el cliente puede llamar a una tool"; no hay planificador, ni memoria, ni razonamiento multi-paso.
- Sandboxing. Fase 32. Las tools de la Fase 31 son Python puro sin efectos secundarios; el sandbox sería ornamental.
- Transportes HTTP/SSE. Fase 33 (
src/miniserve/) expondrá el agente vía HTTP; la Fase 31 se queda en stdio porque ese es el transporte mínimo correcto. - El SDK
mcpde Anthropic en producción. La Fase 31 hace el protocolo a mano para verlo. Un objetivo opcional lo porta al SDK como comparación. - Streaming de tool calls. Las tools son request/response síncronas. Tools en streaming (p. ej., una query a base de datos que emite filas progresivamente) están fuera de alcance.
- Authn/authz más allá de la confianza local. Documentamos el modelo de amenazas y paramos. La Fase 37 lo revisita.
El alcance de la Fase 31 es: tools tipadas, round-trip MCP por stdio, generación de tool calls dirigida por máscara. Nada más.
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📘 Model Context Protocol — Specification — Anthropic · 2024. el protocolo sobre el que expones tools.
- 📄 Toolformer: Language Models Can Teach Themselves to Use Tools — Schick et al. · 2023. cómo los modelos aprenden cuándo llamar a una tool.