Diseño de sistemas agénticos con LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.

- Agent: [Herramienta 1: respuesta]
- Agent: [Herramienta 2: respuesta]
- User: [Consulta]
- Agent: [Herramienta 1: respuesta]
- User: [Pregunta de seguimiento]
- Agent: [Herramienta 1: respuesta de seguimiento]
from langchain_core.messages import AIMessage, HumanMessageconfig = {"configurable": {"thread_id": "1"}}# Crea el mensaje de entrada con la consulta del usuario def multi_tool_output(query):inputs = {"messages": [HumanMessage(content=query)]}# Transmite mensajes y metadatos desde la app del chatbot for msg, metadata in app.stream(inputs, config, stream_mode="messages"):# Comprueba que el mensaje tiene contenido y no es humano if msg.content and not isinstance(msg, HumanMessage): print(msg.content, end="", flush=True)print("\n")
multi_tool_output("Is `Stella won no wallets` a palindrome?")multi_tool_output("What happened on April 12th, 1955?")
La frase o palabra 'Stella won no wallets' es un palíndromo.Sí, la frase "Stella won no wallets" es un palíndromo.El 12 de abril de 1955 es notable por varias razones, sobre todo en ciencia y tecnología. Ese día se anunció al público la primera vacuna antipoliomielítica exitoso desarrollada por el Dr. Jonas Salk. Esta vacuna fue un gran avance en la lucha contra la poliomielitis, una enfermedad que causó temor y numerosos brotes, especialmente en niños. El anuncio marcó un punto de inflexión en salud pública y llevó a campañas de vacunación masivas que contribuyeron casi a la erradicación de la polio...
# Imprime primero la consulta del usuario en cada interacción def user_agent_multiturn(queries): for query in queries: print(f"User: {query}")# Transmite mensajes para cada consulta, excluyendo metadatos print("Agent: " + "".join(msg.content for msg, metadata in app.stream( {"messages": [HumanMessage(content=query)]}, config, stream_mode="messages")# Filtra los mensajes humanos para imprimir solo los del agente if msg.content and not isinstance(msg, HumanMessage)) + "\n")queries = ["What happened on the 12 April 1961?", "What about 10 December 1948?", "Is `Mr. Owl ate my metal worm?` a palindrome?", "What about 'palladium stadium?'"] user_agent_multiturn(queries)
User: ¿Qué pasó el 12 de abril de 1961?
Agent: El 12 de abril de 1961, Yuri Gagarin, un cosmonauta soviético, se convirtió en el primer humano en viajar
al espacio a bordo de la nave Vostok 1...
User: ¿Y el 22 de noviembre de 1963?
Agent: El 10 de diciembre de 1948... marca la Declaración Universal de Derechos Humanos (DUDH).
User: ¿`Mr. Owl ate my metal worm?` es un palíndromo?
Agent: La frase o palabra 'Mr. Owl ate my metal worm?' es un palíndromo...
User: ¿Y 'palladium stadium'?
Agent: No, la frase `palladium stadium` no es un palíndromo...
Diseño de sistemas agénticos con LangChain