Lectura completa
De asistentes a agentes
Agentes: quién elige el siguiente paso
Un agente es una capa de funcionamiento superior a la de los asistentes. Está programado de manera tal que el agente decide cuándo pausar su ejecución y esperar un mensaje del usuario. El modelo sigue prediciendo tokens. Cambia quién elige el siguiente paso: el agente puede decidir qué información traer, cuándo, y si pide una herramienta en el flujo.
Autonomía
Los agentes, por definición, son autónomos, lo cual les otorga más capacidades y formas de trabajar. Esta autonomía se entrega por medio de un ciclo. Reciben un mensaje e iteran hasta completar el objetivo.
1. El agente recibe un mensaje del usuario
2. Se envía al modelo, más el system prompt, y se espera la respuesta
3. Si la respuesta trae una señal de término, se detiene. Si no, agrega el mensaje al historial y vuelve al modelo
Esto se repite en bucle hasta que, eventualmente, el modelo envía una señal de término.
Este comportamiento agéntico es compartido entre el agente (código) y el modelo, puesto que el modelo está entrenado para dar respuestas en bucle.
Uso de herramientas
¿Qué ganamos si no va todo en una sola respuesta? Al separar los mensajes, el modelo puede solicitar uso de herramientas en el flujo de respuesta.
Las herramientas son funciones del entorno del agente para tomar acción sobre recursos, o bien para agregar información al contexto.
Normalmente, estas funciones se declaran en el system prompt, de manera que el agente sepa, desde un comienzo, que las tiene a su disposición.
Tipos de herramientas
Existen dos grandes tipos de herramientas: de lectura y de escritura.
Lectura. Cuando se utilizan para leer contenido de otras fuentes: archivos, páginas web, Onedrive, ejecutar un script*. Su propósito es entregar más contexto a la conversación.
Escritura. Herramientas que se utilizan para crear, modificar o eliminar recursos: crear/editar/eliminar un archivo, enviar un correo, subir un documento, interactuar con una aplicación, ejecutar un script*. Su propósito es accionar sobre las solicitudes que entrega el usuario en la conversación.
* Ejecutar un script es un caso ambiguo: se puede usar para lectura y para escritura.
TypeScript
web_search({ query: string })
read_file({ path: string })
edit_file({ path: string, old_text: string, new_text: string })
send_email({ to: string, subject: string, body: string })
run_script({ command: string })Estas firmas siguen el formato de herramientas de OpenAI y de tool use en Hugging Face.
Supervisión humana
Para dar visibilidad al usuario de lo que está haciendo el agente, todos los mensajes* se muestran al usuario. El agente devuelve los resultados y la aplicación va mostrando estos mensajes.
* En verdad no se muestran todos. Hay mensajes de pensamiento que vamos a ver más adelante en el curso, y no se muestran necesariamente.
Cómo se ve todo junto
Tres ventanas, como en Clase 03. El chat no muestra el system. El JSON sí. ChatML es el texto. Caso: resumir las reuniones de hoy y qué necesitas para prepararte.
El usuario pide el resumen. El modelo pide list_events (lectura). El agente ejecuta. El resultado entra al historial. Después write_file (escritura) con path prep-hoy.md, y una señal de término (finish_reason stop / STOP).
Chat
Resúmeme las reuniones de hoy y qué necesito para prepararme.
1. list_events
date: hoy
resultado
10:00 stand-up. 14:00 ensayo de la presentación. 16:30 1:1 con Javiera.
2. write_file
path: prep-hoy.md
Resumen listo en prep-hoy.md.JSON
[
{ "role": "system",
"content": "Eres un agente de agenda. Herramientas: list_events(date), write_file(path, text). Si ya puedes entregar el resumen, termina." },
{ "role": "user",
"content": "Resúmeme las reuniones de hoy y qué necesito para prepararme." },
{ "role": "assistant",
"tool_calls": [{ "name": "list_events",
"arguments": { "date": "hoy" } }] },
{ "role": "tool",
"content": "10:00 stand-up. 14:00 ensayo de la presentación. 16:30 1:1 con Javiera." },
{ "role": "assistant",
"tool_calls": [{ "name": "write_file",
"arguments": { "path": "prep-hoy.md", "text": "..." } }] },
{ "role": "assistant",
"content": "Resumen listo en prep-hoy.md.",
"finish_reason": "stop" }
]ChatML
<|im_start|>system
Eres un agente de agenda. Herramientas: list_events, write_file. Si ya puedes entregar el resumen, termina.<|im_end|>
<|im_start|>user
Resúmeme las reuniones de hoy y qué necesito para prepararme.<|im_end|>
<|im_start|>assistant
<tool_call>
{"name":"list_events","arguments":{"date":"hoy"}}
</tool_call><|im_end|>
<|im_start|>tool
10:00 stand-up. 14:00 ensayo. 16:30 1:1.<|im_end|>
<|im_start|>assistant
<tool_call>write_file prep-hoy.md</tool_call><|im_end|>
<|im_start|>assistant
Resumen listo en prep-hoy.md.<|im_end|>
STOPInstalemos GitHub Copilot
Vamos a poner en práctica lo aprendido. Esta es la GitHub Copilot app de escritorio, no Microsoft Copilot del navegador. Cuentan con GitHub y Git. Si alguien no tiene cuenta, que se cree una personal. La UC no sustituye GitHub.
Paso 1: descargar
1. Entra a github.com/features/ai/github-app
2. El botón verde descarga tu plataforma
3. Si no coincide, abre la flecha: macOS Silicon, Intel, Windows o Linux

Paso 2: instalar
En macOS abres el .dmg, arrastras GitHub Copilot a Aplicaciones y la abres desde ahí. En Windows ejecutas el instalador .exe. En Linux abres el paquete del menú.
Si el sistema pregunta si confías en la app, acéptala: es el instalador oficial de GitHub.
Paso 3: iniciar sesión
1. Ábrela y elige Sign in to GitHub
2. Completa la autenticación en el navegador
3. Si pide un plan, elijan la opción de estudiante o la gratuita
Por ser estudiantes cuentan con el GitHub Student Developer Pack, así que no tienen que pagar en ningún momento.

Paso 4: conectar un proyecto
1. En Home, + Add project, o el + junto a Sessions
2. Una carpeta local, un repositorio de GitHub, o una URL
3. Dejen el modo en Interactive y prueben un pedido corto
Aún no peguen el informe. Solo confirmen que la app responde.

Paso 5: Student Developer Pack
Por ser estudiantes tienen acceso al GitHub Student Developer Pack.
1. Entra a education.github.com/pack
2. Sign up for Student Developer Pack
3. La verificación y Copilot Student son pasos distintos, y pueden tardar
El pack cubre Copilot: no tienen que pagar en ningún momento.

Vamos a ganar money
En Copilot, pegan este pedido. Miren si busca fuentes, si escribe el PDF y el Excel, y si pueden detener la sesión.
Prompt
Haz un informe financiero de las cinco acciones que más subieron y las cinco que más bajaron en la bolsa durante la última semana.
Busca fuentes actuales. Entrega dos archivos:
1. un reporte en PDF con el ranking y una breve explicación de cada movimiento
2. un Excel con el análisis: ticker, variación de la semana, y las fuentes que usasteLectura: fuentes. Escritura: dos archivos. Y el stop. Si la app no abre, anota qué herramienta pedirías primero y dónde apretarías stop.
¿Y cómo tenemos control?
Mientras están en ejecución, siempre podemos detener su evaluación. Eso detiene todo proceso y generación del modelo.
Normalmente, las herramientas de escritura requieren permisos/autorización para actuar. Aquí es donde es muy importante verificar que la intención de la herramienta es la que nosotros esperamos: qué archivo, qué correo, qué recurso.
Sin embargo, a medida que los agentes mejoran, la industria se está moviendo a un mundo de menos autorización y más guardrails (lo vimos en la clase pasada). Por ello es importante fijar buenas instrucciones para controlar las acciones. El system de ayer sigue sentado arriba del agente.