Percakapan dengan agen ReAct

Merancang Sistem Agentic dengan LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Percakapan

Luas persegi panjang dengan sisi 5 dan 7 adalah 35 satuan persegi.
  • Memvalidasi jawaban

  • Pengguna: "Berapa luas persegi panjang dengan sisi 5 dan 7?"

  • Agen: "Luas persegi panjang dengan sisi 5 dan 7 adalah 35 satuan persegi."
Merancang Sistem Agentic dengan LangChain

Percakapan

tools = [rectangle_area]
query = "What is the area of a rectangle with sides 14 and 4?"


# Create the ReAct agent app = create_react_agent(model, tools)
# Invoke the agent with a query and store the messages response = app.invoke({"messages": [("human", query)]})
# Define and print the input and output messages print({ "user_input": query, "agent_output": response["messages"][-1].content})
Merancang Sistem Agentic dengan LangChain

Keluaran percakapan

{'user_input': 'What is the area of a rectangle with sides 14 and 4?',
 'agent_output': 'The area of a rectangle with sides 14 and 4 is 56 
 square units.'}
Merancang Sistem Agentic dengan LangChain

Pertanyaan lanjutan

  • Tindak lanjut:
    • Pengguna: "Bagaimana dengan yang sisinya 12 dan 14?"
  • Riwayat percakapan:
    • Pengguna: "Berapa luas persegi panjang dengan sisi 5 dan 7?"
    • Agen: "Luas persegi panjang dengan sisi 5 dan 7 adalah 35 satuan persegi."
    • Pengguna: "Bagaimana dengan yang sisinya 12 dan 14?"
    • Agen: "Luas persegi panjang dengan sisi 12 dan 14 adalah 168 satuan persegi."
  • Keluaran
    • Pengguna: "Bagaimana dengan yang sisinya 12 dan 14?"
    • Agen: "Luas persegi panjang dengan sisi 12 dan 14 adalah 168 satuan persegi."
Merancang Sistem Agentic dengan LangChain

Pertanyaan lanjutan

{'user_input': 'Bagaimana dengan yang sisinya 12 dan 14?',

'agent_output': ['HumanMessage: Berapa luas persegi panjang dengan sisi 5 dan 7?', 'AIMessage: Luas persegi panjang dengan sisi 5 dan 7 adalah 35 satuan persegi.', 'HumanMessage: Bagaimana dengan yang sisinya 12 dan 14?', 'AIMessage: Luas persegi panjang dengan sisi 12 dan 14 adalah 168 satuan persegi.',
'HumanMessage: Bagaimana dengan yang sisinya 12 dan 14?', 'AIMessage: Luas persegi panjang dengan sisi 12 dan 14 adalah 168 satuan persegi.']}
Merancang Sistem Agentic dengan LangChain

Riwayat percakapan

from langchain_core.messages import 
HumanMessage, AIMessage












Merancang Sistem Agentic dengan LangChain

Riwayat percakapan

from langchain_core.messages import 
HumanMessage, AIMessage


message_history = messages["messages"]

Awal penyiapan percakapan linear dengan "riwayat pesan".

Merancang Sistem Agentic dengan LangChain

Riwayat percakapan

from langchain_core.messages import 
HumanMessage, AIMessage

message_history = messages["messages"]

new_query = "Bagaimana dengan yang sisinya 4 dan 3?"

Penyiapan percakapan diperbarui dengan kueri baru.

Merancang Sistem Agentic dengan LangChain

Riwayat percakapan

from langchain_core.messages import 
HumanMessage, AIMessage

message_history = messages["messages"]

new_query = "Bagaimana dengan yang sisinya 4 dan 3?"
# Jalankan aplikasi dengan riwayat pesan lengkap messages = app.invoke({"messages": message_history + [("human", new_query)]})

Penyiapan percakapan diperbarui dengan pemanggilan aplikasi.

Merancang Sistem Agentic dengan LangChain

Riwayat percakapan

# Ambil pesan dari manusia dan AI
filtered_messages = [msg for msg in 
                    messages["messages"] if 
                    isinstance(msg, 
                    (HumanMessage, 
                    AIMessage)) 
                    and msg.content.strip()]








Penyiapan percakapan diperbarui dengan pemfilteran pesan.

Merancang Sistem Agentic dengan LangChain

Riwayat percakapan

# Ambil pesan dari manusia dan AI
filtered_messages = [msg for msg in 
                    messages["messages"] if 
                    isinstance(msg, 
                    (HumanMessage, 
                    AIMessage)) 
                    and msg.content.strip()]


# Format dan cetak hasil akhir print({ "user_input": new_query, "agent_output": [f"{msg.__class__.__name__}: {msg.content}" for msg in filtered_messages]})

Penyiapan percakapan diperbarui dengan pencetakan pesan.

Merancang Sistem Agentic dengan LangChain

Keluaran riwayat percakapan

{'user_input': 'Bagaimana dengan yang sisinya 4 dan 3?',

'agent_output': ['HumanMessage: Berapa luas persegi panjang dengan sisi 14 dan 4?', 'AIMessage: Luas persegi panjang dengan sisi 14 dan 4 adalah 56 satuan persegi.', 'HumanMessage: Bagaimana dengan yang sisinya 4 dan 3?', 'AIMessage: Luas persegi panjang dengan sisi 4 dan 3 adalah 12 satuan persegi.',
'HumanMessage: Bagaimana dengan yang sisinya 4 dan 3?', 'AIMessage: Luas persegi panjang dengan sisi 4 dan 3 adalah 12 satuan persegi.']}
Merancang Sistem Agentic dengan LangChain

Ayo berlatih!

Merancang Sistem Agentic dengan LangChain

Preparing Video For Download...