...
/ما هو ReAct؟ - دليل لاتخاذ القرارات في وكلاء الذكاء الاصطناعي
ما هو ReAct؟ - دليل لاتخاذ القرارات في وكلاء الذكاء الاصطناعي
تعرف على ما هو ReAct وكيف يساهم في عملية بناء الوكيل.
سنغطي ما يلي...
تخيّل نفسك تلعب لعبة فيديو. أنت تجتاز مرحلةً صعبة، وتفكر: "عليّ تجاوز تلك العقبة، لكن دعني أولًا أهزم العدو الذي أمامي". أنت تستخدم صوتك الداخلي لتوجيه أفعالك. هذا المزج بين ما نفعله (أفعالنا) وما نفكر به (منطقنا) هو سمة فريدة من سمات الذكاء البشري.
يتمتع البشر بقدرة مذهلة على التحدث إلى أنفسهم في عقولهم. هذا "الحديث الداخلي" ليس مجرد مصاحبة لنا، بل هو أداة فعّالة للتخطيط وحل المشكلات والتنظيم. عند اللعب، لا تنتقل من مهمة لأخرى دون وعي. بل تفكر فيما تفعله، وتعدّل خططك عند الحاجة ("صحتي ضعيفة، لذا سأتجنب المشاجرات وأبحث عن حزمة صحة")، وتبحث عن معلومات جديدة عندما تكون غير متأكد ("كيف أهزم هذا الزعيم؟ دعني أبحث عن بعض الاستراتيجيات"). هذا التناوب المستمر بين الفعل والمنطق هو ما يجعلنا متكيفين وسريعي التعلم. نستطيع التعامل مع المواقف الجديدة، واتخاذ القرارات بسرعة، والتعامل مع عدم اليقين لأننا ندمج هاتين العمليتين بسلاسة.
هذا التآزر بين الفعل والتفكير هو جوهر الذكاء البشري. فهو ما يُمكّننا ليس فقط من أداء المهام، بل أيضًا من وضع الاستراتيجيات والتكيف والابتكار.
كيف يعد ReAct مفيدًا لوكلاء الذكاء الاصطناعي؟
الآن، لننتقل إلى موضوع الذكاء الاصطناعي. تخيّل محاولة تصميم روبوت ذكاء اصطناعي لا يقتصر دوره على أداء الأفعال فحسب، بل يشمل أيضًا التفكير فيها. أظهرت الأبحاث الحديثة أن هذه ليست مجرد فكرة جامحة؛ بل من الممكن بالفعل دمج التفكير اللفظي مع اتخاذ القرارات التفاعلية في الأنظمة ذاتية التشغيل. عند توجيهها بشكل صحيح، تستطيع نماذج اللغة الكبيرة أداء مهام تفكير معقدة، مثل حل المسائل الحسابية أو فهم السيناريوهات المنطقية. هذا ما نسميه التفكير المتسلسل . يشبه الأمر أن الذكاء الاصطناعي يفكر في المشكلة خطوة بخطوة، تمامًا كما نفعل نحن.
لكن هناك مشكلة. هذا النوع من التفكير أشبه بالتفكير داخل صندوق. يستخدم النموذج تمثيلاته الداخلية لتوليد الأفكار، لكنه لا يرتكز على العالم الخارجي. هذا يعني أنه لا يستطيع تحديث معارفه بسهولة أو التفاعل مع المعلومات الجديدة، مما يؤدي إلى مشاكل مثل اختلاق الحقائق (الهلوسة) أو ارتكاب الأخطاء التي تتراكم مع مرور الوقت.
الآن، تخيّلوا برنامج ذكاء اصطناعي قادر على التخطيط والتصرف بناءً على ما يراه ويسمعه. غالبًا ما تتضمن هذه الأساليب تحويل ما يلاحظه الذكاء الاصطناعي إلى نص، واستخدام نموذج لغوي لتوليد إجراءات أو خطط، ثم تنفيذها. يشبه الأمر إعطاء الذكاء الاصطناعي قائمة مهام بناءً على ملاحظاته. مع ذلك، غالبًا ما تفتقر هذه الأنظمة إلى القدرة على التفكير المجرد في الأهداف العليا أو الاحتفاظ بذاكرة عاملة لدعم إجراءاتها. وهنا يأتي دور ReAct.
إن الجمع بين التفكير والتصرف بشكل تآزري يُمكّن وكلاء الذكاء الاصطناعي من أداء أفضل بكثير. تخيّل الأمر كأنه يمنح الذكاء الاصطناعي عقلًا لا يفكر فقط فيما يفعله، بل يتكيف ويخطط أيضًا كالإنسان. فبدلًا من اتباع نص مكتوب، يستطيع الذكاء الاصطناعي حل المشكلات بعقلانية، والتكيف مع المواقف الجديدة، واتخاذ القرارات بسرعة. هذا المزيج يُساعد وكلاء الذكاء الاصطناعي على التعامل مع المهام المعقدة بفعالية أكبر، تمامًا كما نفعل عندما نلعب ألعاب الفيديو أو نتنقل في حياتنا اليومية.
نموذج ReAct مقابل مطالبات ReAct
من المهم أن نفهم أن نموذج ReAct ومطالبات ReAct هما مفهومان مرتبطان ولكنهما متميزان.
نموذج ReAct: إطار عمل شامل يجمع بين التفكير والتنفيذ لوكلاء الذكاء الاصطناعي. يتضمن هذا الإطار قيام الوكلاء بالتفكير في المهام، واتخاذ القرارات بناءً على تفكيرهم، ثم تنفيذ الإجراءات. يضمن نموذج ReAct قدرة الوكلاء على التكيف مع المعلومات الجديدة وتغيير إجراءاتهم ديناميكيًا بناءً على تفكيرهم. يُطبق هذا النموذج على مستوى النظام أو الإطار، ويتضمن تصميم الوكلاء والمهام والعمليات.
توجيه ReAct: تقنية مُحددة تُستخدم لتوجيه نماذج اللغة لاتباع نموذج ReAct. تتضمن توجيهات ReAct تصميم توجيهات مُهيكلة تُساعد النموذج على تحليل المشكلة خطوة بخطوة، ثم التصرف بناءً على ذلك. تُستخدم هذه التقنية غالبًا في نماذج اللغة الكبيرة مثل GPT أو Gemini لمحاكاة نموذج ReAct ضمن استجاباتها.
عادةً ما يتبع الوكلاء في أطر عمل مثل CrewAI، التي سنستخدمها، نموذج ReAct للجمع بين التفكير والفعل. ومع ذلك، قد لا يستخدمون دائمًا توجيهات ReAct إلا إذا صُممت خصيصًا لذلك. على سبيل المثال، قد يستخدم الوكيل أداة لجمع المعلومات (التصرف) ثم تحليلها لاتخاذ قرار (الاستدلال)، مجسدًا بذلك نموذج ReAct دون استخدام تقنيات توجيه ReAct صراحةً. في حين أن توجيهات ReAct تقنية مفيدة لتوجيه نماذج اللغة، إلا أن الوكلاء عادةً ما يتبعون نموذج ReAct الأوسع لتعزيز قدراتهم. لهذا السبب، تُعد هذه الأطر سهلة الاستخدام للغاية!
كيف تعمل وكلاء الذكاء الاصطناعي في LangChain؟
قبل الخوض في أساسيات CrewAI، دعونا نستعرض مثالاً لكيفية عمل الوكلاء في LangChain. سيمنحك هذا أساسًا متينًا ويساعدك على فهم أوجه التشابه والاختلاف عند الانتقال إلى CrewAI. في هذا المثال، سننشئ وكيل ذكاء اصطناعي يستخدم LangChain لأداء مهمة. وبشكل أكثر تحديدًا، سيجيب الوكيل على السؤال "ما هو التعليم؟" باستخدام مزيج من التفكير والعمل.
في هذا المثال، سنستخدم نموذج OpenAI وواجهة API البحث Tavily. Tavily هو محرك بحث مُحسّن خصيصًا لطلاب الماجستير في القانون، مُصمم لتوفير نتائج بحث فعّالة وسريعة وثابتة. يُقدم Tavily خطة مجانية سخية لواجهة API ، والتي يُمكن إنشاؤها هنا . إليك الكود الخاص بمثال LangChain:
بايت تعليمي: تم تحديث مركز LangChain إلى مركز LangSmith. مع هذا التحديث، أصبحنا بحاجة إلى مفتاح API من LangSmith لسحب المطالبات من المركز. هذا تغيير عن الإعداد السابق، حيث لم يكن مفتاح API ضروريًا. في حال واجهت خطأً مشابهًا، أضف مفتاح API كما هو موضح في الأداة أدناه.
# Import necessary modules from LangChainfrom langchain import hubfrom langchain.agents import AgentExecutor, create_react_agentfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langchain_openai import OpenAIimport osos.environ["TAVILY_API_KEY"] = '{{TAVILY_API_KEY}}'os.environ["OPENAI_API_KEY"] = '{{OPENAI_API_KEY}}'os.environ["LANGCHAIN_API_KEY"] = '{{LANGCHAIN_API_KEY}}'os.environ['LANGCHAIN_PROJECT']= 'Project Name'# Get the prompt to use - you can modify this!prompt = hub.pull("hwchase17/react")# Define the tools the agent will usetools = [TavilySearchResults(max_results=1)]# Choose the LLM (Large Language Model) to usellm = OpenAI()# Construct the ReAct agent using the LLM, tools, and promptagent = create_react_agent(llm, tools, prompt)# Create an agent executor by passing in the agent and toolsagent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)# Invoke the agent executor with a specific inputresponse = agent_executor.invoke({"input": "What is Educative?"})# Print the responseprint(response)
في الكود أعلاه:
الأسطر ٢-٦: نستورد الوحدات اللازمة من LangChain. يتضمن ذلك نموذج
OpenAI
، وAgentExecutor
، وأدوات مثلTavilySearchResults
.الأسطر 8-10: قمنا بتعيين قيم مفاتيح API المطلوبة.
السطر ١٤: نستخدم موجهًا مُحددًا مسبقًا من مركز LangChain المُصمم لوكلاء ReAct. يبدو كالتالي:
Answer the following questions as best you can. You have access to the following tools:,{tools}Use the following format:Question: the input question you must answerThought: you should always think about what to doAction: the action to take, should be one of [{tool_names}]Action Input: the input to the actionObservation: the result of the action... (this Thought/Action/Action Input/Observation can repeat N times)Thought: I now know the final answerFinal Answer: the final answer to the original input questionBegin!Question: {input}Thought:{agent_scratchpad}
ملاحظة: يُرشد هذا التوجيه عميل الذكاء الاصطناعي خلال عملية تفكير مُهيكلة باستخدام إطار عمل ReAct. يبدأ العميل بسؤال، ثم يُفكر في أفضل نهج، ثم يتخذ إجراءً باستخدام أداة مُحددة، ثم يُلاحظ النتائج، ثم يُكرر هذه الدورة حسب الحاجة. وأخيرًا، يُدمج العميل ملاحظاته لتقديم إجابة نهائية مُحكمة، مما يضمن استجابة شاملة ودقيقة.
السطر 15: يستخدم الوكيل
TavilySearchResults
لجلب نتائج البحث، ويقتصر الأمر على نتيجة واحدة لهذا المثال.السطر 18: نحدد نموذج
OpenAI
كنموذج اللغة لوكيلنا.السطر 21: باستخدام وظيفة
create_react_agent
، نقوم بدمج LLM والأدوات والموجه لإنشاء وكيلنا.السطر 24: يتم إنشاء
AgentExecutor
باستخدام الوكيل والأدوات، مما يتيح له تنفيذ الإجراءات والتفكير من خلال المهام.الأسطر 27-30: أخيرًا، نستدعي الوكيل باستخدام إدخال محدد (
"What is Educative?"
) ونطبع استجابة.
يمكننا تشغيل الكود أعلاه في دفتر ملاحظات Jupyter التالي، ونرى أنه يوضح كيفية بناء وكلاء الذكاء الاصطناعي في LangChain لدمج التفكير والفعل. لا يقتصر دور الوكيل على البحث فحسب، بل يلجأ أيضًا إلى التفكير من خلال إدخال لتوليد استجابة متماسكة وغنية بالمعلومات.
تم تصميم دفتر الملاحظات لمعاينة مخرجات التعليمات البرمجية في وضع التنفيذ المسبق، ومعالجة القيود الزمنية وقيود واجهة API التي قد تمنع التنفيذ الكامل داخل البيئة المقدمة.
الآن بعد أن رأينا كيفية عمل الوكلاء في LangChain، دعنا ننتقل إلى CrewAI.