claudio.cool
CCAR-FLecciones

CCAR-F · Diseño de herramientas y MCP

Read, Write, Edit, Bash, Grep y Glob: cuál usar para qué

⏱ 3 min de lecturaBorrador

Claude Code y el Agent SDK traen herramientas integradas (built-in tools) para trabajar con archivos y comandos. El examen no pregunta cómo se llaman sus parámetros, sino cuál elegir en cada situación y cómo combinarlas.

Qué hace cada una

Herramienta Para qué Ejemplo
Grep Búsqueda por contenido (content search): qué dice el archivo Quién llama a processLegacyOrder, dónde aparece un mensaje de error, una clave con el patrón AKIA[0-9A-Z]{16}
Glob Búsqueda por ruta (file path pattern matching): cómo se llama el archivo Todos los tests con **/*.test.tsx
Read Leer un archivo completo Abrir el archivo que registra una ruta
Edit Cambio puntual reemplazando un texto único const PORT = 3000; por const PORT = 8080;
Write Escribir un archivo entero Crear un archivo o reescribirlo después de leerlo
Bash Ejecutar comandos Correr los tests o el build

La regla corta: Grep es qué dice; Glob es cómo se llama. Buscar tests con Grep trae cualquier archivo que mencione “test”; buscar quién llama a una función con Glob solo encuentra archivos con ese nombre.

Edit y su plan B

Edit necesita un texto ancla único (unique anchor text): reemplaza un fragmento que aparece una sola vez. Si timeout: 30 aparece en tres secciones y solo hay que cambiar la de pagos, Edit falla. El plan B que nombra la guía del examen es Read + Write: cargar el archivo completo, cambiar solo lo necesario y escribirlo entero. En la práctica también se puede ampliar el texto con más contexto, pero en el examen la respuesta es Read + Write.

Al revés también hay trampa: si el texto es único, Edit es lo correcto. Reescribir 900 líneas para cambiar una arriesga cambios accidentales.

Explorar sin leer todo

Para entender un módulo de 47 archivos, leerlos todos primero llena el contexto de código que no viene al caso. La exploración incremental (incremental exploration) arranca con un ancla:

  1. Grep de algo concreto: el string de una ruta (/api/v2/invoices), un nombre de clase, un mensaje de error.
  2. Read del archivo que aparece.
  3. Seguir los imports y el flujo, leyendo solo lo que se va necesitando.

Encontrar todos los usos

Un solo Grep por el nombre original no alcanza cuando hay reexportaciones con otro nombre o alias de import. Si un archivo “barrel” exporta processOrder como submitOrder, los consumidores que importan submitOrder nunca contienen el texto processOrder. La búsqueda va en varios pasos:

  1. Grep de la definición y sus reexportaciones.
  2. Read de esos archivos para juntar todos los nombres exportados (fmtMoney, fc).
  3. Un nuevo Grep por cada nombre.

Las trampas típicas

  • Grep para buscar archivos por nombre o Glob para buscar contenido.
  • Leer todo el repositorio “para tener contexto”: el antipatrón principal.
  • sed o replace_all cuando Edit falla por texto repetido: cambian todas las apariciones, incluidas las que tenían que quedar igual.
  • Modificar el archivo para que el texto sea único o reestructurar el código para esquivar un límite de la herramienta.
  • find o grep por Bash: funcionan, pero el examen espera la herramienta integrada hecha para eso.
  • Escribir de memoria con Write sin leer antes: destruye el resto del archivo.

En el examen

Identificá qué se busca: ¿un texto adentro de los archivos o un patrón de nombres? ¿Un cambio con un ancla única o repetida? ¿Hay alias o reexportaciones en el escenario? Con esas tres preguntas sale la secuencia de herramientas.

Pregunta rápida

Una pregunta del simulacro sobre este dominio. Cuenta para tu progreso.

A financial analysis firm uses a research coordinator that delegates source gathering to subagents. For a report on renewable-energy financing, it sends a subagent a brief listing 8 sources.

The subagent returns findings from 6 of the 8 sources plus two structured errors. Source 7: errorCategory "transient", isRetryable: true (rate limited). Source 8: errorCategory "permission", isRetryable: false (subscription required). The six successful sources are relevant and of good quality.

The report is due to a client at the end of the week, and the firm's procurement team handles requests for new data subscriptions.

What should the coordinator do?

Practicá este dominio en el simulacro →