Prefacio
Para Quién Es Este Libro
Eres un desarrollador de software escéptico ante el bombo publicitario de la IA.
Has probado los frameworks —y has visto cómo tu aplicación de LangChain alucinaba hasta borrar una base de datos en producción. Y piensas: “Tiene que haber una forma mejor.”
La hay. Este libro es para desarrolladores que quieren entender qué ocurre realmente cuando un agente de IA se ejecuta. No los diagramas de marketing. No las abstracciones del “Motor de Razonamiento”. Las peticiones HTTP reales. El bucle while real.
Si puedes leer Python y has construido antes una aplicación web o una herramienta CLI, tienes todo lo que necesitas.
Qué Vas a Construir
Nanocode es un agente de programación que se ejecuta en tu terminal. Al final de este libro, será capaz de:
- Leer y escribir archivos en tu base de código
- Ejecutar comandos de shell
- Buscar código usando Python puro
- Recordar el contexto entre sesiones
- Separar la planificación de la ejecución mediante un modo seguro
- Buscar en la web documentación y respuestas
Lo construirás desde cero usando requests, python-dotenv y pytest; el acceso al shell viene del módulo subprocess de la biblioteca estándar de Python. Sin LangChain. Sin bases de datos vectoriales. Sin “frameworks de orquestación”. Solo Python que puedes depurar con print().
La única excepción: el Capítulo 11 añade ddgs para la búsqueda web —una única dependencia ligera.
Enfoque de Pruebas
Este libro utiliza un enfoque de “pruebas en paralelo al desarrollo”. Para la mayoría de las funcionalidades:
- Presentamos el concepto —por qué lo necesitamos
- Mostramos primero la prueba, para que sepas cómo es el éxito
- Implementamos el código para que la prueba pase
- Verificamos con pytest
Esto enseña el pensamiento del Desarrollo Guiado por Pruebas sin la ceremonia completa de rojo-verde-refactorizar en formato impreso. También resuelve un problema crítico: no puedes probar una aplicación impulsada por un LLM llamando realmente al LLM. Las llamadas a la API son lentas, costosas y no deterministas.
A partir del Capítulo 3, presentamos el patrón FakeBrain —un doble de prueba que devuelve respuestas predecibles. Esto te permite ejecutar toda tu suite de pruebas sin realizar una sola llamada a la API ni gastar un solo céntimo.
Ejemplos de Código
Este libro sigue un enfoque de “Código Primero”. Cada capítulo se construye sobre el anterior, y cada ejemplo de código se extrae de archivos funcionales.
Para obtener el código:
- GitHub: Clona o descarga desde GitHub.1
- Leanpub: El código fuente completo también se incluye en los recursos descargables con tu compra.
El código está organizado por capítulo (ch01/, ch03/, ch04/, etc.) más una carpeta appendix/. La mayoría de las carpetas contienen:
nanocode.py— El agente completo y ejecutable para ese capítulotest_nanocode.py— Las pruebas que verifican que el código funciona sin llamadas a la API
Dos excepciones: ch02/ contiene únicamente un script independiente test_api.py (usado una vez y descartado), y el snapshot del agente de ch12/ es funcionalmente igual al de ch11/, con artefactos del proyecto final añadidos.
Puedes copiar cualquier carpeta de capítulo y continuar desde ahí. Ejecuta pytest para verificar que tu código coincide con el comportamiento esperado.
Convenciones Utilizadas en Este Libro
A lo largo del libro, verás tres tipos de recuadros destacados:
![]() |
Advertencia: Riesgos de seguridad o de protección. Presta atención a estos —ignorarlos puede llevar a borrar archivos o filtrar claves de API. |
![]() |
Aparte: Análisis en profundidad y digresiones. Contexto útil, pero puedes saltártelos en una primera lectura sin perder el hilo. |
Las explicaciones de código siguen un patrón consistente: primero el contexto (por qué necesitamos este código), luego el código en sí, y después una explicación línea por línea de las partes importantes.
Es hora de escribir algo de código.
https://github.com/optimalone/build-your-own-coding-agent↩︎

