Home
Login

غلاف خفيف الوزن يجعل أدوات بروتوكول محتوى نموذج Anthropic (MCP) متوافقة مع LangChain و LangGraph

MITPython 2.0klangchain-ai Last Updated: 2025-06-09

محولات LangChain MCP - تفاصيل المشروع

نظرة عامة على المشروع

محولات LangChain MCP هي مكتبة تغليف خفيفة الوزن تهدف إلى دمج أدوات بروتوكول محتوى Anthropic (MCP) بسلاسة مع نظامي LangChain و LangGraph. يعالج هذا المشروع مشكلات التوافق بين أطر عمل أدوات الذكاء الاصطناعي المختلفة، مما يسمح للمطورين باستخدام أدوات MCP مباشرة في بيئات LangChain/LangGraph، لبناء تطبيقات وكيل ذكاء اصطناعي أكثر قوة ومرونة.

عنوان المشروع: https://github.com/langchain-ai/langchain-mcp-adapters

الوظائف والميزات الأساسية

🔧 تحويل الأدوات والتكيف

  • تحويل أدوات MCP إلى أدوات LangChain: تحويل أدوات MCP تلقائيًا إلى تنسيق أدوات LangChain.
  • تكامل سلس: يمكن استخدام الأدوات المحولة مباشرة في وكلاء LangGraph.
  • أمان النوع: الحفاظ على معلومات النوع والتحقق من صحة المعلمات الأصلية للأدوات.
  • دعم غير متزامن: دعم كامل لعمليات الأدوات غير المتزامنة.

📦 عميل متعدد الخوادم

  • اتصال متعدد الخوادم: الاتصال بعدة خوادم MCP في وقت واحد.
  • إدارة موحدة للأدوات: تحميل وإدارة الأدوات من خوادم مختلفة.
  • تكوين الخادم: دعم تكوين مرن لمعلمات الخادم.
  • إدارة تجمع الاتصالات: إدارة فعالة لموارد الاتصال.

🌐 دعم بروتوكولات النقل

  • نقل STDIO: دعم بروتوكول نقل الإدخال والإخراج القياسي.
  • نقل SSE: دعم بروتوكول نقل أحداث دفع الخادم.
  • مزيج متعدد البروتوكولات: يمكن للخوادم المختلفة استخدام بروتوكولات نقل مختلفة.
  • إعادة الاتصال التلقائي: آلية إعادة الاتصال التلقائي عند انقطاع الاتصال.

🤖 تكامل LangGraph

  • وكيل React: تكامل مثالي مع وكيل React الخاص بـ LangGraph.
  • وكيل غير متزامن: دعم تنفيذ الوكيل غير المتزامن.
  • تركيب سلسلة الأدوات: دعم سلاسل الأدوات وسير العمل المعقدة.
  • إدارة الحالة: الحفاظ على حالة تنفيذ الوكيل.

البنية التقنية

المكونات الأساسية

تطبيق LangChain/LangGraph
         ↓
محولات LangChain MCP
         ↓
تنفيذ عميل MCP
         ↓
خوادم MCP متعددة (الرياضيات، الطقس، إلخ)

عملية تحويل الأدوات

  1. اكتشاف أدوات MCP: الحصول على قائمة بالأدوات المتاحة من خادم MCP.
  2. تحليل البيانات الوصفية للأداة: تحليل اسم الأداة ووصفها ومعلماتها.
  3. إنشاء أداة LangChain: إنشاء كائن أداة LangChain متوافق.
  4. تكامل الوكيل: تسجيل الأداة في وكيل LangGraph.
  5. إعادة توجيه التنفيذ: إعادة توجيه استدعاء أداة LangChain إلى خادم MCP.

التثبيت والاستخدام

تثبيت سريع

# التثبيت الأساسي
pip install langchain-mcp-adapters

# بيئة تطوير كاملة
pip install langchain-mcp-adapters langgraph langchain-openai

تكوين البيئة

# تعيين مفتاح واجهة برمجة تطبيقات OpenAI
export OPENAI_API_KEY=<your_api_key>

أمثلة على الاستخدام

مثال أساسي: خادم الرياضيات

1. إنشاء خادم MCP

# math_server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Math")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

@mcp.tool()
def multiply(a: int, b: int) -> int:
    """Multiply two numbers"""
    return a * b

if __name__ == "__main__":
    mcp.run(transport="stdio")

2. إنشاء وكيل LangGraph

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI

# تهيئة النموذج
model = ChatOpenAI(model="gpt-4o")

# تكوين معلمات الخادم
server_params = StdioServerParameters(
    command="python",
    args=["/path/to/math_server.py"],
)

# إنشاء وكيل وتنفيذه
async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        
        # تحميل أدوات MCP
        tools = await load_mcp_tools(session)
        
        # إنشاء وكيل
        agent = create_react_agent(model, tools)
        
        # تنفيذ الاستعلام
        response = await agent.ainvoke({
            "messages": "what's (3 + 5) x 12?"
        })

مثال متقدم: تكامل متعدد الخوادم

1. خادم الطقس

# weather_server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Weather")

@mcp.tool()
async def get_weather(location: str) -> str:
    """Get weather for location."""
    return f"It's always sunny in {location}"

if __name__ == "__main__":
    mcp.run(transport="sse")

2. عميل متعدد الخوادم

from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o")

# تكوين متعدد الخوادم
async with MultiServerMCPClient({
    "math": {
        "command": "python",
        "args": ["/path/to/math_server.py"],
        "transport": "stdio",
    },
    "weather": {
        "url": "http://localhost:8000/sse",
        "transport": "sse",
    }
}) as client:
    # إنشاء وكيل
    agent = create_react_agent(model, client.get_tools())
    
    # العمليات الحسابية
    math_response = await agent.ainvoke({
        "messages": "what's (3 + 5) x 12?"
    })
    
    # استعلام عن الطقس
    weather_response = await agent.ainvoke({
        "messages": "what is the weather in NYC?"
    })

تكامل خادم واجهة برمجة تطبيقات LangGraph

1. ملف تعريف الرسم البياني

# graph.py
from contextlib import asynccontextmanager
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_anthropic import ChatAnthropic

model = ChatAnthropic(model="claude-3-5-sonnet-latest")

@asynccontextmanager
async def make_graph():
    async with MultiServerMCPClient({
        "math": {
            "command": "python",
            "args": ["/path/to/math_server.py"],
            "transport": "stdio",
        },
        "weather": {
            "url": "http://localhost:8000/sse",
            "transport": "sse",
        }
    }) as client:
        agent = create_react_agent(model, client.get_tools())
        yield agent

2. تكوين LangGraph

{
  "dependencies": ["."],
  "graphs": {
    "agent": "./graph.py:make_graph"
  }
}

سيناريوهات التطبيق والمزايا

🎯 سيناريوهات التطبيق

وكيل الذكاء الاصطناعي على مستوى المؤسسة

  • تكامل متعدد الوظائف: دمج مختلف أدوات وواجهات برمجة تطبيقات الأعمال.
  • أتمتة سير العمل: بناء أتمتة معقدة لعمليات الأعمال.
  • معالجة البيانات: دمج مصادر بيانات مختلفة وأدوات معالجة.

سلسلة أدوات المطورين

  • إنشاء التعليمات البرمجية: دمج أدوات إنشاء وتحليل التعليمات البرمجية.
  • أتمتة الاختبار: بناء وكلاء اختبار ذكيين.
  • تكامل DevOps: أتمتة النشر والمراقبة.

البحث والتعليم

  • الحساب العلمي: دمج أدوات الرياضيات والحساب العلمي.
  • تحليل البيانات: بناء مساعدين ذكيين لتحليل البيانات.
  • مساعد التدريس: إنشاء أدوات تعليمية تفاعلية.

✨ المزايا التقنية

قابلية التشغيل البيني للنظام البيئي

  • واجهة موحدة: اتباع بروتوكول MCP القياسي.
  • توافق واسع: تكامل سلس مع نظام LangChain البيئي.
  • قابلية التوسع: دعم الأدوات المخصصة وتوسيع البروتوكولات.

تحسين كفاءة التطوير

  • تكامل سريع: يمكن دمج أدوات MCP ببضعة أسطر من التعليمات البرمجية.
  • أمان النوع: تلميحات وتحقق كامل للنوع.
  • معالجة الأخطاء: معالجة أخطاء كاملة وآليات إعادة المحاولة.

الأداء والموثوقية

  • دعم غير متزامن: عمليات غير متزامنة عالية الأداء.
  • إدارة الاتصال: تجمع اتصال ذكي وآلية إعادة الاتصال.
  • تحسين الموارد: استخدام وإدارة فعالة للموارد.

المواصفات الفنية

إصدارات البروتوكولات المدعومة

  • بروتوكول MCP: متوافق مع أحدث مواصفات بروتوكول MCP.
  • LangChain: يدعم LangChain الإصدار 0.1+.
  • LangGraph: يدعم أحدث إصدار من LangGraph.

بروتوكولات النقل

  • STDIO: نقل الإدخال والإخراج القياسي.
  • SSE: أحداث دفع الخادم.
  • HTTP: واجهة برمجة تطبيقات RESTful تعتمد على HTTP.
  • WebSocket: اتصال ثنائي الاتجاه في الوقت الفعلي (مخطط له).

دعم أنواع الأدوات

  • أدوات متزامنة: أدوات وظائف متزامنة تقليدية.
  • أدوات غير متزامنة: أدوات غير متزامنة عالية الأداء.
  • أدوات تدفق: دعم الإخراج المتدفق.
  • أدوات الحالة: أدوات تدعم إدارة الحالة.

أفضل الممارسات

🔧 اقتراحات التطوير

تصميم الأدوات

  • وظيفة واحدة: تركز كل أداة على وظيفة واحدة.
  • معلمات واضحة: توفير وصف ونوع واضحين للمعلمات.
  • معالجة الأخطاء: تنفيذ منطق معالجة أخطاء كامل.
  • وثائق كاملة: توفير وثائق أداة مفصلة.

تحسين الأداء

  • إعادة استخدام الاتصال: إعادة استخدام اتصالات خادم MCP.
  • الأولوية غير المتزامنة: إعطاء الأولوية لاستخدام الأدوات والعمليات غير المتزامنة.
  • إدارة الموارد: تحرير الموارد غير الضرورية في الوقت المناسب.
  • استراتيجية التخزين المؤقت: استخدام التخزين المؤقت بشكل معقول لتحسين الأداء.

اعتبارات السلامة

  • التحكم في الأذونات: تنفيذ فحص الأذونات المناسب.
  • التحقق من صحة الإدخال: التحقق بدقة من صحة معلمات الإدخال.
  • تسجيل الدخول: تسجيل العمليات والأخطاء الرئيسية.
  • إدارة المفاتيح: إدارة مفاتيح واجهة برمجة التطبيقات وبيانات الاعتماد بأمان.

ملخص

مشروع محولات LangChain MCP هو بنية تحتية مهمة في نظام أدوات الذكاء الاصطناعي البيئي، وقد نجح في سد الفجوة بين بروتوكول MCP وإطار عمل LangChain. من خلال هذا المحول، يمكن للمطورين:

🎯 القيمة الأساسية

  • نظام بيئي موحد للأدوات: توحيد أدوات الذكاء الاصطناعي بموجب بروتوكولات مختلفة في نظام LangChain البيئي.
  • تحسين كفاءة التطوير: تقليل كبير في تعقيد وعبء عمل تطوير وكيل الذكاء الاصطناعي.
  • قابلية توسيع الوظائف: دمج مختلف أدوات وخدمات الطرف الثالث بسهولة.
  • دعم موحد: اتباع معايير الصناعة لضمان التوافق على المدى الطويل.

🌟 أبرز مميزات المشروع

  • تصميم خفيف الوزن: تقليل التبعيات، سهل التكامل والنشر.
  • وظائف كاملة: تغطية العملية الكاملة من تحويل الأدوات إلى تنفيذ الوكيل.
  • جاهز للإنتاج: توفير استقرار وأداء على مستوى المؤسسة.
  • مدفوعة بالمجتمع: مجتمع مفتوح المصدر نشط وتكرار مستمر للوظائف.

🔮 آفاق التطبيق

مع التطور السريع لتقنيات وكيل الذكاء الاصطناعي، سيصبح تكامل الأدوات وقابليتها للتشغيل البيني أكثر أهمية. ستلعب محولات LangChain MCP، باعتبارها جسرًا يربط بين أنظمة أدوات الذكاء الاصطناعي البيئية المختلفة، دورًا رئيسيًا في تطوير تطبيقات الذكاء الاصطناعي المستقبلية. فهي لا تبسط عمليات التطوير الحالية فحسب، بل تضع أيضًا أساسًا متينًا لبناء تطبيقات وكيل ذكاء اصطناعي أكثر ذكاءً وغنية بالميزات.

سواء كنت مطور تطبيقات ذكاء اصطناعي، أو صانع قرار تقني في مؤسسة، أو باحثًا، فإن هذا المشروع يستحق الدراسة والتطبيق المتعمقين. إنه يمثل أفضل الممارسات في مجال تكامل أدوات الذكاء الاصطناعي، وسيساعدك على بناء حلول ذكاء اصطناعي أكثر قوة ومرونة.