0Pricing
AI Agents · Lección

Un agente que explica código

Cree un agente que lea archivos de código fuente, pida al LLM una explicación y devuelva documentación en Markdown.

Un agente que explica código es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Objetivo del proyecto

Construya un agente que reciba un archivo fuente (Python, JS o cualquier otro) y devuelva documentación en Markdown: finalidad, funciones principales y ejemplo de uso.

¿Por qué es útil?

Generar documentación a partir del código es uno de los casos de uso más fiables de los LLM: el código está estructurado, la tarea está acotada y las personas leen la salida, por lo que los errores menores son tolerables.

Arquitectura

  1. Leer el archivo fuente
  2. Dividirlo opcionalmente por clase o función
  3. Pedir al LLM que explique cada fragmento
  4. Combinar los resultados en un documento Markdown

Step 1: Read the File

import sys

with open('example.py', 'w') as f:
    f.write('print("hello")\n')

path = sys.argv[1] if len(sys.argv) > 1 else 'example.py'
with open(path) as f:
    code = f.read()
print(f'Read {len(code)} characters from {path}')

Step 2: Prompt for Documentation

from openai import OpenAI
oai = OpenAI()

prompt = f'''
You are a senior engineer writing developer-friendly docs.

Given this source file, produce a Markdown document with:
# {path}

## Purpose
(One paragraph)

## Public API
(Each function/class with one-line description)

## Usage Example
(One short, runnable snippet)

Source:
```
{code}
```
'''

response = oai.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0.2,
)
print(response.choices[0].message.content)

Gestione los archivos largos

Si el archivo es demasiado largo, divídalo por función y explique cada una por separado:

import ast

tree = ast.parse(code)
functions = [node for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)]

for func in functions:
    snippet = ast.unparse(func)
    explain(snippet)

Paso 3: combinar las salidas

En ejecuciones con varios fragmentos, una las explicaciones de cada función en un único documento:

docs = []
for func_name, snippet in functions:
    explanation = explain(snippet)
    docs.append(f'### {func_name}\n\n{explanation}\n')

full_doc = '\n'.join(docs)
open('docs.md', 'w').write(full_doc)

Añada un resumen del proyecto

Después de explicar cada función, pida al LLM una descripción general de alto nivel:

summary_prompt = 'Summarise the purpose of this package in 3 sentences, given these function docs:\n\n' + full_doc
summary = ask(summary_prompt)

Multilenguaje

El mismo prompt funciona para JS, Go, Rust, etc. Para obtener mejores resultados, añada el lenguaje al prompt:

prompt = f'You are documenting {language} code. ...'

Documentación basada en diferencias

Para actualizaciones incrementales, vuelva a ejecutarlo solo en los archivos modificados:

import subprocess
changed = subprocess.check_output(['git', 'diff', '--name-only', 'HEAD~1']).decode().splitlines()
for path in changed:
    if path.endswith('.py'):
        regenerate_doc(path)

Use una herramienta para ejecutar el ejemplo

Verifique que el ejemplo de uso del LLM se ejecuta realmente: proporcione al agente una herramienta de REPL de Python:

def run_python(code):
    try:
        exec(code, {})
        return {'stdout': 'ok', 'stderr': ''}
    except Exception as e:
        return {'stdout': '', 'stderr': str(e)}

tools = [{'name': 'run_python', 'description': 'Execute a Python snippet and return stdout/stderr', 'parameters': {'code': 'str'}}]

broken_example = 'print(1/0)'
result = run_python(broken_example)
if result['stderr']:
    print('Example failed:', result['stderr'])
    fixed_example = 'print(1)'
    result = run_python(fixed_example)
    print('Self-corrected result:', result)
else:
    print('Example ran fine:', result)

Cuando el agente alucina

En ocasiones, el modelo inventa funciones o argumentos. Medidas de mitigación:

  • Proporcione ÚNICAMENTE el contenido del archivo, sin memoria del modelo
  • Temperatura 0
  • Incluya un paso de verificación (ejecute el ejemplo y analice el fragmento con un linter)

Conviértalo en un producto

Envuélvalo como una CLI:

# pip install -e .
# docgen src/myproject/agent.py
# Outputs docs.md

De la herramienta a CI

Intégrelo en CI: en cada PR, regenere la documentación de los archivos modificados y haga commit de los cambios. Así, su repositorio siempre estará documentado.

¿Por qué leer el archivo completo?

¿Por qué pasar el archivo fuente COMPLETO al LLM en lugar de solo las firmas de las funciones?

Resumen

Un agente de 30 líneas que convierte código en documentación. Es fácil ampliarlo con herramientas y verificación. Un excelente segundo proyecto después de RAG.

Preguntas frecuentes

¿La lección «Un agente que explica código» es gratis?

Sí — el texto completo de «Un agente que explica código» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Un agente que explica código»?

Cree un agente que lea archivos de código fuente, pida al LLM una explicación y devuelva documentación en Markdown. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Un agente que explica código»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Un bot de preguntas y respuestas sobre sus documentos
  2. Un agente que explica código
  3. Un agente de investigación que navega por la web
  4. Un asistente SQL para su base de datos
← Volver a AI Agents