AI Agents · Pelajaran

Simpul, Sisi, dan Keadaan

Definisikan keadaan TypedDict, tulis fungsi simpul yang mengubahnya, lalu hubungkan simpul dengan sisi berarah.

Pelajaran 2 dari 415 langkah

Simpul, Sisi, dan Keadaan adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 2 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 Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Objek Keadaan

Setiap agen LangGraph memiliki keadaan bertipe — biasanya berupa TypedDict:

from typing import TypedDict
from typing_extensions import Annotated
import operator

class AgentState(TypedDict):
    messages: Annotated[list, operator.add]   # appends instead of replaces
    plan: str
    answer: str

Cara Kerja Pembaruan Keadaan

Setiap simpul mengembalikan dict sebagian. LangGraph:

  1. Membaca keadaan saat ini
  2. Memanggil simpul dengan keadaan tersebut
  3. Menggabungkan kembali dict sebagian yang dikembalikan

Untuk bidang daftar dengan operator.add, item baru ditambahkan, bukan menimpa item lama.

Defining a Node

def planner(state: AgentState) -> dict:
    prompt = f'User wants: {state["messages"][-1].content}'
    plan = llm.invoke(prompt).content
    return {'plan': plan}

Registering the Node

from langgraph.graph import StateGraph, END

graph = StateGraph(AgentState)
graph.add_node('planner', planner)

Mendefinisikan Sisi

Sisi statis berjalan tanpa syarat:

graph.set_entry_point('planner')
graph.add_edge('planner', 'researcher')
graph.add_edge('researcher', 'writer')
graph.add_edge('writer', END)

Sisi Bersyarat

Untuk percabangan, daftarkan fungsi yang memilih simpul berikutnya:

def route(state: AgentState) -> str:
    if state['needs_research']:
        return 'researcher'
    return 'writer'

graph.add_conditional_edges(
    'planner',
    route,
    {'researcher': 'researcher', 'writer': 'writer'}
)

END Itu Khusus

END adalah simpul terminal. Sisi apa pun yang menuju END mengakhiri graf dan mengembalikan keadaan saat ini.

Compiling the Graph

app = graph.compile()
result = app.invoke({'messages': [...]})
print(result['answer'])

Mengalirkan Pembaruan Keadaan

Amati perubahan keadaan secara waktu nyata:

for event in app.stream({'messages': [...]}):
    print(event)
# Each event is the state diff from the just-completed node.

Fungsi Pereduksi

Untuk penggabungan keadaan yang rumit, gunakan pereduksi khusus:

def merge_facts(old, new):
    return {**old, **new}

class State(TypedDict):
    facts: Annotated[dict, merge_facts]

Subgraf

Sebuah simpul dapat berupa graf lain yang telah dikompilasi — berguna untuk agen hierarkis:

subgraph = StateGraph(SubState).compile()
graph.add_node('subprocess', subgraph)

Simpul Asinkron

Simpul dapat berupa fungsi asinkron:

async def fetch_node(state):
    data = await fetch_async(state['url'])
    return {'data': data}

result = await app.ainvoke({...})

Kesalahan pada Simpul

Jika sebuah simpul menimbulkan kesalahan, LangGraph meneruskan kesalahan tersebut dan berhenti. Tangkap kesalahan di dalam simpul jika Anda menginginkan penanganan yang baik:

def safe_search(state):
    try:
        return {'results': search(state['query'])}
    except Exception as e:
        return {'error': str(e), 'results': []}

Pembaruan Keadaan

Apa yang terjadi saat sebuah simpul mengembalikan {'plan': '...'} sebagai dict?

Ringkasan

Definisikan keadaan TypedDict, tulis fungsi yang mengembalikan pembaruan sebagian, tambahkan simpul dan sisi, kompilasi, lalu jalankan. Itulah LangGraph.

Gratis untuk memulai

Belajar AI Agents dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
60
Pelajaran
239

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Simpul, Sisi, dan Keadaan” gratis?

Ya — teks lengkap “Simpul, Sisi, dan Keadaan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Simpul, Sisi, dan Keadaan”?

Definisikan keadaan TypedDict, tulis fungsi simpul yang mengubahnya, lalu hubungkan simpul dengan sisi berarah. Kamu berlatih AI Agents 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 Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents 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 2 dari 4.

Berapa lama pelajaran “Simpul, Sisi, dan Keadaan” 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 Agents ini?

Ya. Setiap pelajaran AI Agents 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

  1. Mengapa Graf Mengungguli Rantai Datar
  2. Simpul, Sisi, dan Keadaan
  3. Perutean dan Percabangan Bersyarat
  4. Menyimpan Keadaan Graf (Titik Pemeriksaan)
← Kembali ke AI Agents