<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Felipe</title>
    <description>The latest articles on DEV Community by Felipe (@pivelcode).</description>
    <link>https://dev.to/pivelcode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4048519%2Fbcedccaf-2f56-4106-b613-709a7cd902e0.jpeg</url>
      <title>DEV Community: Felipe</title>
      <link>https://dev.to/pivelcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pivelcode"/>
    <language>en</language>
    <item>
      <title>Agentes de AI: Por Qué No Es Solo Un Chatbot fancy</title>
      <dc:creator>Felipe</dc:creator>
      <pubDate>Tue, 28 Jul 2026 17:06:04 +0000</pubDate>
      <link>https://dev.to/pivelcode/agentes-de-ai-por-que-no-es-solo-un-chatbot-fancy-1m3k</link>
      <guid>https://dev.to/pivelcode/agentes-de-ai-por-que-no-es-solo-un-chatbot-fancy-1m3k</guid>
      <description>&lt;p&gt;&lt;strong&gt;Un Chatbot&lt;/strong&gt; responde preguntas.&lt;br&gt;
&lt;strong&gt;Un Agente de AI&lt;/strong&gt; ejecuta tareas.&lt;/p&gt;

&lt;p&gt;Parece simple, pero la diferencia cambia todo en cómo diseñas, construyes y despliegas sistemas con LLMs.&lt;/p&gt;

&lt;p&gt;Después de meses experimentando con Houston + Composio, esto es lo que aprendí:&lt;/p&gt;
&lt;h2&gt;
  
  
  La Diferencia Conceptual
&lt;/h2&gt;

&lt;p&gt;Un &lt;strong&gt;chatbot&lt;/strong&gt; vive en una conversación:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recibe un input&lt;/li&gt;
&lt;li&gt;Genera texto&lt;/li&gt;
&lt;li&gt;Te devuelve texto&lt;/li&gt;
&lt;li&gt;Fin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un &lt;strong&gt;agente&lt;/strong&gt; es un sistema con memoria y herramientas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recibe un input (o lo busca automáticamente)&lt;/li&gt;
&lt;li&gt;Decide qué herramientas necesita usar&lt;/li&gt;
&lt;li&gt;Ejecuta acciones outside del LLM&lt;/li&gt;
&lt;li&gt;Mantiene estado entre interacciones&lt;/li&gt;
&lt;li&gt;Aprende del resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  La Diferencia Práctica
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Chatbot: "Escríbeme un email a Juan"
→ Te devuelve texto → Tú lo copias → Tú lo pegas → Tú lo envías

Agente: "Contacta a todos los leads que no respondieron"
→ Lee la lista → Genera mensajes personalizados → Envía → Registra respuestas → Agenda follow-up
→ Sin ti.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Los 4 Componentes de Un Agente
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Percepción
&lt;/h3&gt;

&lt;p&gt;Recibe información de múltiples fuentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs externas&lt;/li&gt;
&lt;li&gt;Bases de datos&lt;/li&gt;
&lt;li&gt;Archivos subidos&lt;/li&gt;
&lt;li&gt;webhooks&lt;/li&gt;
&lt;li&gt;Conversaciones previas&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. Razonamiento
&lt;/h3&gt;

&lt;p&gt;El LLM orquesta las decisiones, pero no es el único cerebro. Decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qué información necesita&lt;/li&gt;
&lt;li&gt;Qué herramientas usar&lt;/li&gt;
&lt;li&gt;Cuándo actuar&lt;/li&gt;
&lt;li&gt;Cuándo pausar (human-in-the-loop)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Acción
&lt;/h3&gt;

&lt;p&gt;Ejecuta cosas en el mundo real:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Esto es tool calling
&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;send_email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Seguimiento&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;body&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;personalized_message&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Memoria y Estado
&lt;/h3&gt;

&lt;p&gt;Mantiene contexto entre ejecuciones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qué hizo la última vez&lt;/li&gt;
&lt;li&gt;Qué funcionó vs qué no&lt;/li&gt;
&lt;li&gt;Preferencias del usuario&lt;/li&gt;
&lt;li&gt;Progreso del workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  El Error Más Común
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Construí un agente de AI."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nope. Construiste un chatbot con mejor prompt.&lt;/p&gt;

&lt;p&gt;Un agente real tiene &lt;strong&gt;tool calling&lt;/strong&gt;, &lt;strong&gt;estado persistente&lt;/strong&gt; y &lt;strong&gt;ejecución outside del LLM&lt;/strong&gt;. Si solo está generando texto, es un chatbot sofisticado, no un agente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Un Ejemplo Concreto
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;El chatbot de soporte:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Cuéntame qué problema tienes"&lt;/li&gt;
&lt;li&gt;"Te ayudo con eso"&lt;/li&gt;
&lt;li&gt;Fin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;El agente de soporte:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Recibe el mensaje&lt;/li&gt;
&lt;li&gt;Consulta tu base de conocimiento&lt;/li&gt;
&lt;li&gt;Revisa el historial del cliente&lt;/li&gt;
&lt;li&gt;Genera una respuesta personalizada&lt;/li&gt;
&lt;li&gt;Si no sabe, crea un ticket en tu sistema&lt;/li&gt;
&lt;li&gt;Notifica al humano pertinente&lt;/li&gt;
&lt;li&gt;Registra la interacción para mejorar&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cómo Empezar
&lt;/h2&gt;

&lt;p&gt;La forma más simple de convertir un chatbot en un agente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Antes (chatbot)
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;envía un email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Después (agente)
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;should_send_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;analysis&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;send_email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;body&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;body_context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update_memory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;email_sent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La diferencia: ahora tu código &lt;strong&gt;decide&lt;/strong&gt; y &lt;strong&gt;actúa&lt;/strong&gt;. El LLM solo ayuda a generar el contenido.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;Si tu "agente" solo responde preguntas, tienes un chatbot. Si puede:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tomar acciones outside del chat&lt;/li&gt;
&lt;li&gt;Mantener estado&lt;/li&gt;
&lt;li&gt;Llamar herramientas reales&lt;/li&gt;
&lt;li&gt;Iterar basándose en resultados&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...entonces sí tienes un agente.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Estoy documentando mi aprendizaje en IA. Si estás explorando agentes de AI, happy to chat.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#AIAgents #LLMs #ToolCalling #SoftwareEngineering&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
