تمثل وكلاء الذكاء الاصطناعي تحولاً جوهرياً في كيفية تفاعلنا مع نماذج اللغة الكبيرة. بدلاً من التفاعلات البسيطة القائمة على السؤال والجواب، يمكن للوكلاء التخطيط والاستدلال وتنفيذ المهام المعقدة متعددة الخطوات بشكل مستقل. يغطي هذا الدليل كل ما تحتاج معرفته حول بناء وكلاء الذكاء الاصطناعي، من المفاهيم الأساسية إلى النشر في الإنتاج.
ما هي وكلاء الذكاء الاصطناعي؟
وكيل الذكاء الاصطناعي هو نظام مستقل يستخدم نموذج لغة كبير (LLM) كمحرك استدلال لتحقيق الأهداف. على عكس الدردشة الآلية التقليدية التي تستجيب للاستفسارات الفردية، يمكن للوكلاء:
- التخطيط لمناهج متعددة الخطوات لحل المشكلات
- استخدام الأدوات للتفاعل مع الأنظمة الخارجية (واجهات البرمجة، قواعد البيانات، أنظمة الملفات)
- الحفاظ على الذاكرة عبر دورات المحادثة والجلسات
- اتخاذ القرارات بناءً على الملاحظات والتغذية الراجعة
- التصحيح الذاتي عندما لا تنتج الإجراءات النتائج المتوقعة
حلقة الوكيل
في جوهره، يتبع كل وكيل ذكاء اصطناعي حلقة استدلال:
1. استلام المهمة/الهدف
2. تخطيط النهج (تقسيم إلى خطوات)
3. اختيار الأداة المناسبة
4. تنفيذ الأداة مع المعلمات
5. مراقبة النتيجة
6. القرار: هل تحقق الهدف أم نستمر في الحلقة؟
7. إرجاع النتيجة النهائية أو التكرار
تمكن هذه الحلقة الوكلاء من التعامل مع المهام التي ستكون مستحيلة لاستدعاء LLM واحد، مثل البحث في مواضيع عبر مصادر متعددة، أو كتابة الكود وتصحيحه، أو إدارة سير العمل المعقدة.
المكونات الرئيسية
يتضمن كل نظام وكيل ذكاء اصطناعي هذه المكونات:
| المكون | الغرض |
|---|---|
| LLM (العقل) | الاستدلال والتخطيط واتخاذ القرار |
| الأدوات | القدرات الخارجية (البحث، تنفيذ الكود، واجهات البرمجة) |
| الذاكرة | الاحتفاظ بالسياق عبر التفاعلات |
| المنسق | يدير حلقة الوكيل وتنفيذ الأدوات |
بنيات الوكلاء
تناسب البنيات المختلفة حالات الاستخدام المختلفة. فهم هذه الأنماط يساعدك في اختيار النهج الصحيح لمشروعك.
ReAct (الاستدلال + التصرف)
يتشابك نمط ReAct آثار الاستدلال مع الإجراءات. يفكر الوكيل صراحة في نهجه قبل كل إجراء.
التفكير: أحتاج إلى إيجاد الطقس الحالي في طوكيو
الإجراء: search("طقس طوكيو اليوم")
الملاحظة: طقس طوكيو 15 درجة مئوية، غائم جزئياً
التفكير: الآن لدي المعلومات التي طلبها المستخدم
الإجراء: respond("الطقس الحالي في طوكيو 15 درجة مئوية وغائم جزئياً")
متى تستخدم: الوكلاء متعددي الأغراض، مهام البحث، عندما تحتاج استدلالاً قابلاً للتفسير.
التخطيط والتنفيذ
تفصل هذه البنية التخطيط عن التنفيذ. ينشئ وكيل المخطط خطة مفصلة، ثم ينفذها وكيل المنفذ خطوة بخطوة.
# كود توضيحي
plan = planner.create_plan(task)
# plan = ["الخطوة 1: البحث عن...", "الخطوة 2: التحليل...", "الخطوة 3: الكتابة..."]
for step in plan:
result = executor.execute(step)
if needs_replanning(result):
plan = planner.revise_plan(task, completed_steps, result)
متى تستخدم: المهام المعقدة متعددة الخطوات، عندما تحتاج تدفقات تنفيذ متوقعة.
الوكلاء الهرمية
تستخدم البنيات الهرمية وكيل مدير يفوض إلى وكلاء عمال متخصصين. يقسم المدير المهام ويوجهها إلى العامل الأنسب.
وكيل المدير
├── وكيل البحث (البحث على الويب، تحليل المستندات)
├── وكيل الكود (كتابة وتصحيح الكود)
├── وكيل البيانات (استعلامات قاعدة البيانات، معالجة البيانات)
└── وكيل الكتابة (إنشاء المحتوى، التلخيص)
متى تستخدم: تطبيقات المؤسسات، عندما تحتاج قدرات متخصصة، المهام متعددة المجالات.
أطر الوكلاء الشائعة
نضج النظام البيئي لأطر الوكلاء بشكل كبير. إليك الخيارات الأكثر اعتماداً.
وكلاء LangChain
يوفر LangChain لبنات بناء مرنة لإنشاء الوكلاء. يقدم كلاً من التجريدات عالية المستوى والتحكم منخفض المستوى.
from langchain.agents import create_react_agent
from langchain_openai import ChatOpenAI
from langchain.tools import DuckDuckGoSearchTool, WikipediaTool
# تعريف الأدوات
tools = [DuckDuckGoSearchTool(), WikipediaTool()]
# إنشاء الوكيل
llm = ChatOpenAI(model="gpt-4")
agent = create_react_agent(llm, tools, prompt_template)
# تشغيل الوكيل
result = agent.invoke({"input": "ما هو الحوسبة الكمومية؟"})
نقاط القوة: مكتبة أدوات واسعة، بنية مرنة، مجتمع كبير.
LangGraph
يوسع LangGraph LangChain بإدارة حالة صريحة وسير عمل قائم على الرسوم البيانية. إنه مثالي للوكلاء الإنتاجية التي تحتاج تنفيذاً موثوقاً وقابلاً للمراقبة.
from langgraph.graph import StateGraph, END
from typing import TypedDict
class AgentState(TypedDict):
messages: list
next_action: str
# تعريف العقد (خطوات الوكيل)
def reasoning_node(state: AgentState):
# منطق استدلال LLM
return {"next_action": "use_tool"}
def tool_node(state: AgentState):
# منطق تنفيذ الأداة
return {"messages": state["messages"] + [tool_result]}
# بناء الرسم البياني
workflow = StateGraph(AgentState)
workflow.add_node("reason", reasoning_node)
workflow.add_node("tool", tool_node)
workflow.add_edge("reason", "tool")
workflow.add_conditional_edges("tool", should_continue)
agent = workflow.compile()
نقاط القوة: استمرارية الحالة، نقاط التفتيش، دعم الإنسان في الحلقة، قابلية المراقبة.
CrewAI
يتخصص CrewAI في تنسيق الوكلاء المتعددين، مما يتيح لك تعريف طواقم من الوكلاء التي تعمل معاً.
from crewai import Agent, Task, Crew
# تعريف الوكلاء بأدوار
researcher = Agent(
role="محلل أبحاث أول",
goal="البحث وتحليل اتجاهات السوق",
tools=[search_tool, scrape_tool]
)
writer = Agent(
role="كاتب محتوى",
goal="إنشاء محتوى جذاب من البحث",
tools=[writing_tool]
)
# تعريف المهام
research_task = Task(
description="البحث في أطر وكلاء الذكاء الاصطناعي",
agent=researcher
)
writing_task = Task(
description="كتابة ملخص للنتائج",
agent=writer
)
# إنشاء وتشغيل الطاقم
crew = Crew(agents=[researcher, writer], tasks=[research_task, writing_task])
result = crew.kickoff()
نقاط القوة: وكلاء قائمة على الأدوار، تبعيات المهام، أنماط تعاون مدمجة.
AutoGen
يركز AutoGen من Microsoft على الوكلاء الحوارية التي يمكنها المشاركة في مناقشات متعددة الدورات.
from autogen import AssistantAgent, UserProxyAgent
assistant = AssistantAgent(
name="assistant",
llm_config={"model": "gpt-4"}
)
user_proxy = UserProxyAgent(
name="user_proxy",
human_input_mode="NEVER",
code_execution_config={"work_dir": "coding"}
)
# بدء المحادثة
user_proxy.initiate_chat(
assistant,
message="اكتب دالة Python لحساب أرقام فيبوناتشي"
)
نقاط القوة: محادثات متعددة الوكلاء، تنفيذ الكود، قدرات الدردشة الجماعية.
تكامل الأدوات واستدعاء الوظائف
تمد الأدوات قدرات الوكيل إلى ما بعد توليد النص. تدعم نماذج LLM الحديثة استدعاء وظائف منظم يمكن من استخدام أدوات موثوق.
تعريف الأدوات
يتم تعريف الأدوات بمخططات واضحة يستخدمها LLM لتوليد استدعاءات مناسبة.
from langchain.tools import tool
@tool
def search_database(query: str, limit: int = 10) -> str:
"""
البحث في قاعدة بيانات المنتجات عن العناصر المطابقة للاستعلام.
Args:
query: مصطلحات البحث لإيجاد المنتجات
limit: الحد الأقصى لعدد النتائج المرجعة
Returns:
سلسلة JSON للمنتجات المطابقة
"""
results = db.search(query, limit=limit)
return json.dumps(results)
استدعاء الوظائف مع OpenAI
يوفر استدعاء وظائف OpenAI مخرجات منظمة لاستخدام الأدوات:
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "الحصول على الطقس الحالي لموقع",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "اسم المدينة"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
}]
response = client.chat.completions.create(
model="gpt-4",
messages=messages,
tools=tools,
tool_choice="auto"
)
أفضل ممارسات الأدوات
- أوصاف واضحة: تعتمد نماذج LLM على الأوصاف لاختيار الأدوات
- معلمات محددة: استخدم أوصاف معلمات مفصلة مع أمثلة
- معالجة الأخطاء: أرجع رسائل خطأ إعلامية يمكن للوكيل فهمها
- التماثل: صمم الأدوات لتكون قابلة لإعادة المحاولة بأمان
- تحديد المعدل: احم واجهات البرمجة الخارجية من الاستدعاءات المفرطة
الذاكرة وإدارة الحالة
تتيح الذاكرة للوكلاء الحفاظ على السياق عبر التفاعلات والتعلم من التجارب السابقة.
الذاكرة قصيرة المدى (تاريخ المحادثة)
أبسط شكل يخزن الرسائل الأخيرة:
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
memory.save_context(
{"input": "ما هي Python؟"},
{"output": "Python هي لغة برمجة..."}
)
الذاكرة طويلة المدى (مخازن المتجهات)
للذاكرة المستمرة عبر الجلسات، استخدم قواعد بيانات المتجهات:
from langchain.memory import VectorStoreRetrieverMemory
from langchain_community.vectorstores import Pinecone
# تخزين الذكريات كتضمينات
vectorstore = Pinecone.from_texts(
texts=past_interactions,
embedding=embeddings,
index_name="agent-memory"
)
memory = VectorStoreRetrieverMemory(
retriever=vectorstore.as_retriever(k=5)
)
الذاكرة العرضية
تخزين حلقات التفاعل الكاملة للتعلم من التجربة:
class Episode:
task: str
actions: list[Action]
result: str
success: bool
lessons_learned: str
أنظمة متعددة الوكلاء
غالباً ما تستفيد المهام المعقدة من وكلاء متخصصين متعددين يعملون معاً.
أنماط الاتصال
| النمط | الوصف | حالة الاستخدام |
|---|---|---|
| تسلسلي | الوكلاء يعالجون بالترتيب | الأنابيب، سير العمل |
| متوازي | الوكلاء يعملون في وقت واحد | المهام الفرعية المستقلة |
| هرمي | المدير يفوض للعمال | التنسيق المعقد |
| نقاش | الوكلاء يناقشون للوصول إلى إجماع | اتخاذ القرار |
مثال: فريق البحث
from crewai import Agent, Crew, Task, Process
# وكلاء متخصصون
analyst = Agent(
role="محلل بيانات",
goal="تحليل البيانات وتحديد الأنماط",
backstory="خبير في التحليل الإحصائي"
)
researcher = Agent(
role="أخصائي أبحاث",
goal="جمع معلومات شاملة",
backstory="ماهر في إيجاد مصادر موثوقة"
)
synthesizer = Agent(
role="كاتب التقارير",
goal="تجميع النتائج في تقارير واضحة",
backstory="خبير في الكتابة التقنية"
)
# إنشاء طاقم بعملية هرمية
crew = Crew(
agents=[analyst, researcher, synthesizer],
tasks=[analyze_task, research_task, write_task],
process=Process.hierarchical,
manager_llm=ChatOpenAI(model="gpt-4")
)
اعتبارات الإنتاج
يتطلب نقل الوكلاء من النموذج الأولي إلى الإنتاج اهتماماً دقيقاً بالموثوقية وقابلية المراقبة والتكلفة.
الموثوقية
- المهلات: حدد مهلات مناسبة لاستدعاءات الأدوات
- إعادة المحاولات: نفذ تراجعاً أسياً للفشل العابر
- البدائل: حدد مسارات تدهور رشيقة
- التحقق: تحقق من مدخلات ومخرجات الأدوات
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=4, max=10)
)
def call_external_api(params):
return api.call(params)
قابلية المراقبة
تتبع سلوك الوكيل للتصحيح والتحسين:
- التتبعات: سجل كل خطوة من حلقة الوكيل
- المقاييس: استخدام الرموز، الكمون، معدلات النجاح
- النطاقات: أداة استدعاءات الأدوات وطلبات LLM
تساعد أدوات مثل LangSmith و Langfuse أو التسجيل المخصص في مراقبة الوكلاء في الإنتاج.
إدارة التكلفة
يمكن أن تستهلك حلقات الوكيل العديد من الرموز. استراتيجيات لإدارة التكاليف:
- اختيار النموذج: استخدم نماذج أصغر للاستدلال البسيط
- التخزين المؤقت: خزن نتائج الأدوات واستجابات LLM مؤقتاً
- حدود الرموز: حدد الحد الأقصى للتكرارات وطول السياق
- البث: استخدم البث للمهام طويلة التشغيل
الأمان
الوكلاء ذوو الوصول إلى الأدوات يتطلبون تدابير أمنية:
- التحقق من المدخلات: نظف مدخلات المستخدم قبل تمريرها للأدوات
- العزل: نفذ الكود في بيئات معزولة
- نطاق الأذونات: حدد قدرات الأدوات للعمليات الضرورية
- تسجيل المراجعة: تتبع جميع إجراءات الوكيل للامتثال
البدء
هل أنت مستعد لبناء أول وكيل لك؟ إليك مسار تعلم موصى به:
- ابدأ بسيطاً: ابن وكيل ReAct مع 2-3 أدوات
- أضف الذاكرة: نفذ تاريخ المحادثة
- وسع الأدوات: أضف قدرات خاصة بالمجال
- توسع: استكشف بنيات متعددة الوكلاء
- انتقل للإنتاج: أضف أنماط قابلية المراقبة والموثوقية
النظام البيئي لوكلاء الذكاء الاصطناعي يتطور بسرعة. ابق على اطلاع بمتابعة إصدارات الأطر وتجربة أنماط جديدة.