اجرای Langgraph برای سیستم های AI چند عامل

بیاموزید که چگونه چندین عامل هوش مصنوعی را در یک سیستم منسجم و مشترک با استفاده از ارکستر ارکستر کنید لنگرافیبا پایگاه داده های بردار، و الگوهای معماری متفکرانه.
ظهور Aticic AI در ساخت سیستم های هوشمند و چند عامل را باز کرده است که می تواند دلیل ، برقراری ارتباط و همکاری به سمت اهداف مشترک اما هماهنگی این عوامل به طور مؤثر – در عین حال نگه داشتن حافظه ، حالت و زمینه دست نخورده – یک نوع متفاوت از چالش است.
وارد کردن لنگرافیبشر
Langgraph یک مدل اجرای انعطاف پذیر و مبتنی بر نمودار را برای ساختمان ارائه می دهد گردش کار چند عامل در بالای LLM های قدرتمند. این مدولار ، مدیریت حافظه و جریان کنترل پویا را به جدول می آورد – مواد تشکیل دهنده کلید برای مقیاس بندی معماری عامل.
در این مقاله ، ما نحوه اجرای Langgraph را در یک سیستم درجه یک تولید و چند عامل که توسط Openai مدل ها ، پایگاه داده های بردار، و ادغام ابزار سفارشی.
🚀 چرا سیستم های چند عامل؟
برنامه های سنتی LLM اغلب تک عامل و همزمان – خوب برای کارهای ساده ، اما با افزایش پیچیدگی محدود.
سیستم های چند عامل اجازه می دهند:
- تخصص (به عنوان مثال ، محقق در مقابل رمزگذار در مقابل تستر)
- پردازش موازی از کارهای فرعی
- مذاکره و نمایندگی در میان عوامل
- گردش کار پویا بر اساس بازخورد عامل
اما … این مزایا چالش های جدیدی را ایجاد می کند:
- عوامل چگونه هستند برق؟
- چگونه مدیریت می کنید حافظه و حالت مشترک؟
- چگونه پویا را هماهنگ می کنید جریان کنترل؟
Langgraph دقیقاً این را حل می کند.
langgraph چیست؟
Langgraph یک کتابخانه منبع باز است که Langchain را با اجازه تعریف به شما گسترش می دهد گردش کار نماینده حالت با استفاده از نمودارهای حرکتی کارگردانی (DAG) یا ماشینهای دولتی محدودبشر
ویژگی های کلیدی:
- 🔁 حلقه ها و بازگشت برای رفتار عامل تکراری
- 💬 پیام رسانی حمایت
- 🧱 انتزاع حالت برای زمینه های طولانی مدت
- 🧠 افزونه آسان برای فروشگاه های بردار، حافظه و ابزارها
🧩 بررسی اجمالی معماری
در اینجا آنچه یک سیستم چند عاملی معمولی با قدرت لانگگراف به نظر می رسد:
┌──────────────┐ ┌──────────────┐
│ User Input ├─────▶│ Entry Agent │
└──────────────┘ └────┬─────────┘
│
┌──────▼──────┐
│ Router Agent│
└────┬───────▲┘
│ │
┌──────────────▼─┐ ┌───▼────────────┐
│ Research Agent │ │ Codegen Agent │
└─────────────▲──┘ └──────▲─────────┘
│ │
┌─────┴───────────▼─────┐
│ Evaluation Agent │
└────────┬──────────────┘
▼
┌──────────────┐
│ Final Output│
└──────────────┘
هر نماینده به عنوان یک گره در یک لانگگراف اجرا می شود و می تواند به حالت مشترک بخواند و بنویسد.
🛠 راه اندازی Langgraph
وابستگی های مورد نیاز را نصب کنید:
pip install langgraph langchain openai qdrant-client
اختیاری (اگر از ابزار یا بازیابی استفاده می کنید):
pip install beautifulsoup4 faiss-cpu
📦 مرحله 1: حالت مشترک را تعریف کنید
Langgraph یک مشترک را پشت سر می گذارد state
فرهنگ لغت برای هر گره.
در اینجا یک طرحواره مثال وجود دارد:
state = {
"input": "", # user input
"history": [], # full agent interaction history
"documents": [], # retrieved docs from vector store
"code": "", # generated or modified code
"evaluation": "" # output from evaluator agent
}
اگر ترجیح می دهید تایپ دقیق را ترجیح دهید از یک مدل دیتاكلاس یا Pydantic استفاده كنید.
🤖 مرحله 2: عوامل خود را تعریف کنید (گره ها)
هر نماینده تابعی است که حالت به روز شده را دریافت و برمی گرداند.
def researcher_agent(state):
query = state["input"]
docs = vector_store.search(query)
state["documents"] = docs
state["history"].append("Researcher retrieved docs.")
return state
def coder_agent(state):
prompt = build_prompt(state["documents"])
code = openai.ChatCompletion.create(...).choices[0].message["content"]
state["code"] = code
state["history"].append("Coder generated code.")
return state
🔁 مرحله 3: جریان نمودار را تعریف کنید
لانگگراف پشتیبانی می کند انشعاب پویا بر اساس شرایط
from langgraph.graph import StateGraph
graph = StateGraph()
graph.add_node("researcher", researcher_agent)
graph.add_node("coder", coder_agent)
graph.add_node("evaluator", evaluator_agent)
graph.set_entry_point("researcher")
graph.add_edge("researcher", "coder")
graph.add_edge("coder", "evaluator")
graph.set_finish_point("evaluator")
app = graph.compile()
📚 مرحله 4: با فروشگاه های بردار ادغام شوید
Langgraph با پایگاه داده های بردار مانند جفت می شود qdrantبا کلوچه، یا بافته کردن برای بازیابی حافظه.
مثال تنظیم Qdrant:
from qdrant_client import QdrantClient
qdrant = QdrantClient(url="http://localhost:6333")
retriever = qdrant.as_retriever("my_collection")
vector_store = RetrieverWrapper(retriever)
اسناد بین نمایندگان را از طریق دولت مشترک منتقل کنید.
🔍 مرحله 5: حافظه و قابلیت ردیابی
برای حفظ حافظه عامل مداوم، ادغام:
- تاریخ گفتگو به اعلان ها
- حافظه مستند از جستجوی بردار
- ورود به سیستم میانی (دنباله حسابرسی)
مثال:
state["history"].append({
"agent": "Evaluator",
"action": "Scored output at 9/10"
})
برای مشاهده ، انتشار رویدادها را در یک صف یا سیستم ورود به سیستم در نظر بگیرید.
💡 پیشرفته: حلقه های شاخه ای و بازخورد
Langgraph از منطق شرطی مانند:
def decision_node(state):
if "bug" in state["evaluation"]:
return "coder" # loop back to codegen
return "final_output"
حلقه تا موفقیت!
🔒 امنیت و محافظ
برای سیستم های درجه تولید:
- استفاده کردن عملکردی یا ابله برای اقدامات عامل ایمن
- ورودی های کاربر و خروجی های سریع را تأیید کنید
- اضافه کردن محدودیت نرخ و رسیدگی به زمان
- نظارت استفاده از نشانه و هشدارهای هزینه
🧪 آزمایش سیستم
Langgraph را می توان به راحتی با عوامل مسخره آزمایش کرد:
def mock_agent(state):
state["history"].append("Mock agent called")
return state
می توانید جریان ها را با app.invoke()
:
result = app.invoke({"input": "Build a weather app"})
print(result["code"])
موارد استفاده در دنیای واقعی
- پشتیبانی مشتری هوش مصنوعی: نماینده روتر + دانش رکوردور + ژنراتور پاسخ
- دستیار تحقیق: نماینده برنامه ریز + وب اسکرابر + Summarizer
- ربات بررسی کد: Agent Linter + Fixer Agent + ژنراتور تست واحد
🧩 لانگگراف در مقابل خطوط لوله سنتی
نشان | لنگرافی | زنجیره سنتی |
---|---|---|
چندین عامل | ✅ بله | 🚫 محدود |
منطق انشعاب | ✅ بله | 🚫 کدگذاری شده سخت |
حالت مشترک | ✅ صریح | ❌ ضمنی |
اشکال زدایی | ✅ بالا | ⚠ دشوار |
پشتیبانی حلقه | ✅ بومی | 🚫 هکی |
✅ نتیجه گیری
Langgraph روشی تمیز ، مقیاس پذیر و اشکال زدایی را برای هماهنگی چندین عامل هوش مصنوعی با زمینه مشترک و کنترل جریان پویا فراهم می کند. هنگامی که با یک پایگاه داده بردار قوی و ادغام ابزار جفت می شود ، نسل جدیدی از آن را باز می کند سیستم های تعاونی و هوشمندبشر
کوچک شروع کنید. جریان عامل خود را مدل کنید. در نمودارها فکر کنید ، نه فقط زنجیر.
📚 خواندن بیشتر و ابزارها