Nod, Sisi dan Keadaan
Takrifkan keadaan TypedDict, tulis fungsi nod yang mengubahnya dan sambungkan nod dengan sisi berarah.
Nod, Sisi dan Keadaan ialah pelajaran Ejen AI percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Sebahagian daripada pelajaran ini belum diterjemahkan dan dipaparkan dalam bahasa Inggeris.
Objek Keadaan
Setiap ejen LangGraph mempunyai keadaan bertype — biasanya 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: strCara Kemas Kini Keadaan Berfungsi
Setiap nod mengembalikan kamus separa. LangGraph:
- Membaca keadaan semasa
- Memanggil nod dengan keadaan itu
- Menggabungkan semula kamus separa yang dikembalikan
Bagi medan senarai dengan operator.add, item baharu ditambahkan dan bukannya 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)Mentakrifkan Sisi
Sisi statik dicetuskan 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 nod seterusnya:
def route(state: AgentState) -> str:
if state['needs_research']:
return 'researcher'
return 'writer'
graph.add_conditional_edges(
'planner',
route,
{'researcher': 'researcher', 'writer': 'writer'}
)END Adalah Istimewa
END ialah nod penamat. Sebarang sisi ke END menamatkan graf dan mengembalikan keadaan semasa.
Compiling the Graph
app = graph.compile()
result = app.invoke({'messages': [...]})
print(result['answer'])Menstrim Kemas Kini Keadaan
Perhatikan perubahan keadaan dalam masa nyata:
for event in app.stream({'messages': [...]}):
print(event)
# Each event is the state diff from the just-completed node.Fungsi Pengurang
Untuk gabungan keadaan yang kompleks, gunakan pengurang tersuai:
def merge_facts(old, new):
return {**old, **new}
class State(TypedDict):
facts: Annotated[dict, merge_facts]Subgraf
Sesuatu nod itu sendiri boleh menjadi graf lain yang telah disusun — berguna untuk ejen berhierarki:
subgraph = StateGraph(SubState).compile()
graph.add_node('subprocess', subgraph)Nod Tak Segerak
Nod boleh menjadi fungsi tak segerak:
async def fetch_node(state):
data = await fetch_async(state['url'])
return {'data': data}
result = await app.ainvoke({...})Ralat dalam Nod
Jika nod membangkitkan ralat, LangGraph menyebarkan ralat itu dan berhenti. Tangkap ralat dalam nod jika anda mahukan pengendalian yang lancar:
def safe_search(state):
try:
return {'results': search(state['query'])}
except Exception as e:
return {'error': str(e), 'results': []}Kemas Kini Keadaan
Apakah yang berlaku apabila nod mengembalikan {'plan': '...'} sebagai kamus?
Imbas Kembali
Takrifkan keadaan TypedDict, tulis fungsi yang mengembalikan kemas kini separa, tambahkan nod dan sisi, susun, kemudian jalankan. Itulah LangGraph.
Pelajari Ejen AI dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 60
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “Nod, Sisi dan Keadaan” percuma?
Ya — teks penuh “Nod, Sisi dan Keadaan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Nod, Sisi dan Keadaan”?
Takrifkan keadaan TypedDict, tulis fungsi nod yang mengubahnya dan sambungkan nod dengan sisi berarah. Anda berlatih Ejen AI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ejen AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Nod, Sisi dan Keadaan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ejen AI ini?
Ya. Setiap pelajaran Ejen AI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Sebab Graf Mengatasi Rantaian Rata
- Nod, Sisi dan Keadaan
- Penghalaan Bersyarat dan Percabangan
- Mengekalkan Keadaan Graf (Titik Semak)