Saltar al contenido
← BlogTutorial

Crea tu primer agente de IA con acceso a herramientas

Tutorial paso a paso para crear un agente que busque en la web, ejecute código y envíe correos con herramientas MCP.

·3 min de lectura

Este tutorial explica cómo crear un agente que usa herramientas externas para buscar, ejecutar código aislado y enviar correos. Usaremos herramientas compatibles con MCP del catálogo de 4agent.

Requisitos previos

  • Node.js 20+
  • Una clave API de tu proveedor de LLM
  • Conocimientos básicos de TypeScript

Paso 1: elige las herramientas

Cada agente necesita herramientas adecuadas. Para nuestro asistente de investigación, que busca y resume información, hacen falta:

  1. Búsqueda web para encontrar información actual
  2. Ejecución de código para procesar y analizar datos
  3. Correo para entregar los resultados
E
E2B

Sandbox en nube para ejecutar código con agentes de IA

Paso 2: configura el proyecto

mkdir my-agent && cd my-agent
npm init -y
npm install @anthropic-ai/sdk @e2b/code-interpreter

Crea un tsconfig.json con resolución ESM y un punto de entrada src/index.ts.

Paso 3: define el bucle del agente

El núcleo del agente es el bucle de uso de herramientas:

  1. Envía al LLM un mensaje con las herramientas disponibles
  2. El LLM decide si llama a alguna herramienta y a cuál
  3. Ejecuta la herramienta y devuelve el resultado
  4. Repite hasta obtener una respuesta final
import Anthropic from "@anthropic-ai/sdk";
 
const client = new Anthropic();
 
async function runAgent(task: string) {
  const messages: Anthropic.MessageParam[] = [
    { role: "user", content: task },
  ];
 
  while (true) {
    const response = await client.messages.create({
      model: "claude-sonnet-4-6",
      max_tokens: 4096,
      tools: toolDefinitions,
      messages,
    });
 
    // Check if the model wants to use a tool
    if (response.stop_reason === "tool_use") {
      const toolUse = response.content.find(
        (c) => c.type === "tool_use"
      );
      const result = await executeTool(
        toolUse.name,
        toolUse.input
      );
      messages.push(
        { role: "assistant", content: response.content },
        { role: "user", content: [{ type: "tool_result", tool_use_id: toolUse.id, content: result }] },
      );
    } else {
      // Final response
      return response.content;
    }
  }
}

Paso 4: implementa la ejecución de herramientas

Cada herramienta necesita un manejador que convierta la solicitud del LLM en una llamada API:

async function executeTool(
  name: string,
  input: Record<string, unknown>
): Promise<string> {
  switch (name) {
    case "run_code":
      return await runCodeInSandbox(input.code as string);
    case "search_web":
      return await searchWeb(input.query as string);
    default:
      return `Unknown tool: ${name}`;
  }
}

Ejecutar código con E2B

import { Sandbox } from "@e2b/code-interpreter";
 
async function runCodeInSandbox(code: string) {
  const sandbox = await Sandbox.create();
  const result = await sandbox.runCode(code);
  await sandbox.kill();
  return JSON.stringify(result);
}

Paso 5: ejecuta el agente

const result = await runAgent(
  "Find the top 5 trending AI tools this week and create a summary table."
);
console.log(result);

El agente buscará en la web, procesará los resultados en un entorno aislado y devolverá una respuesta estructurada.

Próximos pasos

  • Añade memoria para recordar contexto entre conversaciones
  • Añade gestión de errores y reintentos ante fallos
  • Explora más herramientas en 4agent para ampliar las capacidades
Consejo

Trata los argumentos generados como entrada no fiable. Valídalos antes de llamar a servicios externos y evita incluir secretos en prompts, resultados y registros.

Fuentes

tutorialagentsmcpgetting-started