Kerangka ReAct: Berpikir, Bertindak, Mengamati
Pahami putaran ReAct ketika model menghasilkan Thought, memilih Action, menerima Observation, dan mengulanginya hingga mencapai Final Answer.
Kerangka ReAct: Berpikir, Bertindak, Mengamati adalah pelajaran AI Engineering Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Engineering Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Engineering Academy mencakup 4 pelajaran total.
Apa Itu Kerangka Kerja ReAct?
ReAct (Penalaran + Tindakan) adalah kerangka kerja pemberian perintah yang menyelingi penalaran internal model dengan tindakan eksternal. Alih-alih langsung menghasilkan jawaban akhir, model menghasilkan Pikiran, memilih Tindakan, menerima Pengamatan dari pelaksanaan tindakan tersebut, lalu mengulangi siklus sampai dapat memberikan Jawaban Akhir.
Putaran Pikirkan-Bertindak-Amati
Setiap iterasi putaran ReAct memiliki tiga fase:
- Pikiran: Model menalar tentang hal yang diketahuinya dan hal yang perlu dicari tahu berikutnya.
- Tindakan: Model memanggil alat, seperti pencarian web, kalkulator, atau pencarian basis data.
- Pengamatan: Hasil pemanggilan alat dikembalikan dan ditambahkan ke konteks model.
Putaran berlanjut sampai model mengeluarkan Final Answer: beserta kesimpulannya.
Contoh Jejak ReAct
Berikut adalah jejak konkret agen ReAct saat menjawab 'Berapa jumlah penduduk Tokyo?' menggunakan alat pencarian. Perhatikan bagaimana setiap langkah dibangun berdasarkan pengamatan sebelumnya.
# ReAct trace (pseudocode showing the reasoning loop)
# Iteration 1
Thought_1 = 'I need to find the current population of Tokyo. I will search for it.'
Action_1 = 'search("Tokyo population 2024")'
Observation_1 = 'According to the 2023 census, Tokyo has approximately 13.96 million people in the city proper.'
# Iteration 2
Thought_2 = 'I have the population. I can now give a final answer.'
Final_Answer = 'The population of Tokyo is approximately 13.96 million people.'Mengapa ReAct Mengungguli Pemberian Perintah Langsung
Pemberian perintah langsung meminta model menjawab berdasarkan ingatannya, sehingga menimbulkan halusinasi pada pertanyaan faktual. Pemberian perintah rantai pemikiran meningkatkan penalaran, tetapi tetap tidak dapat mengakses informasi eksternal. ReAct menggabungkan keduanya: jejak penalaran eksplisit seperti rantai pemikiran serta kemampuan mengumpulkan informasi terbaru melalui pemanggilan alat.
Struktur Perintah ReAct
Perintah sistem ReAct mengajarkan format yang tepat untuk digunakan model. Perintah tersebut mencantumkan alat yang tersedia beserta deskripsinya dan menampilkan contoh pola Pikiran/Tindakan/Pengamatan/Jawaban Akhir. Model belajar mengikuti format ini dengan tepat dari perintah tersebut.
REACT_SYSTEM_PROMPT = '''You are an AI assistant with access to these tools:
- search(query: str): Search the web for up-to-date information.
- calculator(expression: str): Evaluate a mathematical expression.
- lookup(topic: str): Look up a topic in the knowledge base.
Always follow this exact format:
Thought: [your reasoning about what to do next]
Action: tool_name(arguments)
Observation: [result of the action, provided by the system]
... (repeat as needed)
Final Answer: [your final response to the user]
Begin!'''Mengurai Pikiran, Tindakan, dan Pengamatan
Kode aplikasi Anda bertindak sebagai runtime untuk putaran ReAct. Setelah setiap respons model, uraikan output untuk mengambil nama tindakan dan argumennya, jalankan fungsi Python yang sesuai, format hasilnya sebagai pengamatan, tambahkan hasil tersebut ke riwayat pesan, lalu panggil model lagi.
import re
def parse_react_output(text: str):
'''Extract action name and argument from a ReAct model output.'''
action_match = re.search(r'Action:\s*(\w+)\((.*)\)', text)
if action_match:
tool_name = action_match.group(1)
tool_input = action_match.group(2).strip('\"\' ')
return tool_name, tool_input
if 'Final Answer:' in text:
answer = text.split('Final Answer:')[-1].strip()
return 'final', answer
return None, NonePutaran Eksekusi Agen
Putaran eksekusi memanggil LLM, mengurai outputnya, mengarahkan alat, menambahkan pengamatan, lalu mengulangi proses. Penjaga max_iterations mencegah putaran tanpa akhir saat model tidak dapat menyelesaikan tugas.
from openai import OpenAI
client = OpenAI()
def run_react_agent(user_query: str, tools: dict, max_iterations: int = 10) -> str:
messages = [
{'role': 'system', 'content': REACT_SYSTEM_PROMPT},
{'role': 'user', 'content': user_query}
]
for i in range(max_iterations):
resp = client.chat.completions.create(model='gpt-4o', messages=messages)
output = resp.choices[0].message.content
messages.append({'role': 'assistant', 'content': output})
tool_name, tool_input = parse_react_output(output)
if tool_name == 'final':
return tool_input
if tool_name and tool_name in tools:
observation = tools[tool_name](tool_input)
messages.append({'role': 'user', 'content': f'Observation: {observation}'})
else:
messages.append({'role': 'user', 'content': 'Observation: Tool not found.'})
return 'Max iterations reached without a final answer.'Mendaftarkan Alat Sederhana
Alat hanyalah fungsi Python. Anda mendaftarkannya dalam kamus yang memetakan nama alat ke fungsi. Fungsi menerima argumen string dan mengembalikan hasil string—hal ini menjaga antarmuka tetap sederhana dan konsisten dengan pengamatan yang diharapkan model.
import math
def calculator_tool(expression: str) -> str:
try:
# Restrict to safe math expressions
allowed_names = {k: v for k, v in math.__dict__.items() if not k.startswith('_')}
result = eval(expression, {'__builtins__': {}}, allowed_names)
return str(result)
except Exception as e:
return f'Error: {e}'
def search_tool(query: str) -> str:
# Stub — replace with real web search API
return f'Top result for "{query}": [placeholder result]'
# Register tools
tools = {
'calculator': calculator_tool,
'search': search_tool
}Penalaran Multi-Langkah dengan ReAct
ReAct sangat unggul pada pertanyaan multi-langkah yang memerlukan penggabungan beberapa informasi. Contohnya: 'Siapa CEO perusahaan yang membuat GPT-4, dan pada tahun berapa perusahaan itu didirikan?' Agen pertama-tama mencari CEO, lalu menggunakan hasil tersebut untuk mencari tahun pendirian perusahaan—dua pemanggilan alat terpisah yang dihubungkan oleh penalaran.
ReAct vs. Rantai Pemikiran Murni
Chain-of-Thought (CoT) meningkatkan penalaran dengan membuat model berpikir langkah demi langkah, tetapi tidak dapat mengakses informasi eksternal. ReAct menambahkan tindakan ke CoT, sehingga model dapat mengambil data nyata, menjalankan perhitungan, dan memverifikasi fakta. Imbalannya: ReAct lebih lambat (karena beberapa pemanggilan API), tetapi jauh lebih akurat untuk tugas yang memerlukan pengetahuan terkini atau khusus.
Men-debug ReAct dengan Jejak
Saat agen ReAct menghasilkan jawaban yang salah, periksa seluruh jejak Pikiran/Tindakan/Pengamatan. Pola kegagalan yang umum meliputi: model mengarang pengamatan alih-alih memanggil alat, kesalahan penguraian yang melewati eksekusi alat, dan penalaran yang keliru pada langkah Pikiran sehingga menghasilkan pilihan tindakan yang salah.
- Catat setiap pesan yang ditambahkan ke konteks
- Periksa bahwa output alat benar-benar telah ditambahkan sebelum pemanggilan model berikutnya
- Pastikan regex tindakan cocok dengan format output model
Pemeriksaan Singkat
Uji pemahaman Anda tentang kerangka kerja ReAct.
Ringkasan Pelajaran
Dalam pelajaran ini, Anda mempelajari bahwa: ReAct menyelingi Pikiran, Tindakan, dan Pengamatan dalam sebuah putaran, kode aplikasi Anda bertindak sebagai runtime yang menjalankan alat dan menambahkan pengamatan, dan penjaga max_iterations mencegah putaran agen tanpa akhir. Selanjutnya, kita akan belajar mendefinisikan alat khusus agar agen Anda dapat melakukan persis seperti yang dibutuhkan aplikasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kerangka ReAct: Berpikir, Bertindak, Mengamati” gratis?
Ya — teks lengkap “Kerangka ReAct: Berpikir, Bertindak, Mengamati” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Engineering Academy, upgrade ke CoddyKit PRO. Kursus AI Engineering Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kerangka ReAct: Berpikir, Bertindak, Mengamati”?
Pahami putaran ReAct ketika model menghasilkan Thought, memilih Action, menerima Observation, dan mengulanginya hingga mencapai Final Answer. Kamu berlatih AI Engineering Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Engineering Academy?
Tidak diperlukan pengalaman sebelumnya. AI Engineering Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Kerangka ReAct: Berpikir, Bertindak, Mengamati” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Engineering Academy ini?
Ya. Setiap pelajaran AI Engineering Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kerangka ReAct: Berpikir, Bertindak, Mengamati
- Mendefinisikan Alat untuk Agent Anda
- Membangun Agent ReAct dengan LangChain
- Menangani Kegagalan dan Perulangan Agen