الانتقال إلى المحتوى الرئيسي

نظرة عامة

مكّن وكلاءك من إدارة المهام والمشاريع وتنسيق الفريق عبر Asana. أنشئ المهام وحدّث حالة المشروع وأدر التعيينات وبسّط سير عمل فريقك مع الأتمتة المدعومة بالذكاء الاصطناعي.

المتطلبات الأساسية

قبل استخدام تكامل Asana، تأكد من أن لديك:

إعداد تكامل Asana

1. ربط حساب Asana الخاص بك

  1. انتقل إلى تكاملات CrewAI AMP
  2. ابحث عن Asana في قسم تكاملات المصادقة
  3. انقر على ربط وأكمل تدفق OAuth
  4. امنح الأذونات اللازمة لإدارة المهام والمشاريع
  5. انسخ رمز Enterprise الخاص بك من إعدادات التكامل

2. تثبيت الحزمة المطلوبة

uv add crewai-tools

3. إعداد متغير البيئة

لاستخدام التكاملات مع Agent(apps=[]), يجب تعيين متغير البيئة CREWAI_PLATFORM_INTEGRATION_TOKEN برمز Enterprise الخاص بك.
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
أو أضفه إلى ملف .env:
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token

الإجراءات المتاحة

الوصف: إنشاء تعليق في Asana.المعاملات:
  • task (string, مطلوب): معرف المهمة - معرف المهمة التي سيُضاف إليها التعليق. سيُنسب التعليق للمستخدم المصادق عليه حاليًا.
  • text (string, مطلوب): النص (مثال: “This is a comment.”).
الوصف: إنشاء مشروع في Asana.المعاملات:
  • name (string, مطلوب): الاسم (مثال: “Stuff to buy”).
  • workspace (string, مطلوب): مساحة العمل - استخدم إعدادات سير عمل بوابة الاتصال للسماح للمستخدمين باختيار مساحة العمل لإنشاء المشاريع فيها. الافتراضي هو أول مساحة عمل للمستخدم إذا تُرك فارغًا.
  • team (string, اختياري): الفريق - استخدم إعدادات سير عمل بوابة الاتصال للسماح للمستخدمين باختيار الفريق لمشاركة هذا المشروع معه. الافتراضي هو أول فريق للمستخدم إذا تُرك فارغًا.
  • notes (string, اختياري): ملاحظات (مثال: “These are things we need to purchase.”).
الوصف: الحصول على قائمة المشاريع في Asana.المعاملات:
  • archived (string, اختياري): مؤرشف - اختر “true” لعرض المشاريع المؤرشفة، “false” لعرض المشاريع النشطة فقط، أو “default” لعرض كليهما.
    • الخيارات: default, true, false
الوصف: الحصول على مشروع بواسطة المعرف في Asana.المعاملات:
  • projectFilterId (string, مطلوب): معرف المشروع.
الوصف: إنشاء مهمة في Asana.المعاملات:
  • name (string, مطلوب): الاسم (مثال: “Task Name”).
  • workspace (string, اختياري): مساحة العمل - استخدم إعدادات سير عمل بوابة الاتصال للسماح للمستخدمين باختيار مساحة العمل لإنشاء المهام فيها. الافتراضي هو أول مساحة عمل للمستخدم إذا تُرك فارغًا.
  • project (string, اختياري): المشروع - استخدم إعدادات سير عمل بوابة الاتصال للسماح للمستخدمين باختيار المشروع لإنشاء هذه المهمة فيه.
  • notes (string, اختياري): ملاحظات.
  • dueOnDate (string, اختياري): تاريخ الاستحقاق - التاريخ الذي تستحق فيه هذه المهمة. لا يمكن استخدامه مع Due At. (مثال: “YYYY-MM-DD”).
  • dueAtDate (string, اختياري): الاستحقاق في - التاريخ والوقت (طابع زمني ISO) الذي تستحق فيه هذه المهمة. لا يمكن استخدامه مع Due On. (مثال: “2019-09-15T02:06:58.147Z”).
  • assignee (string, اختياري): المُكلف - معرف مستخدم Asana الذي سيتم تعيين هذه المهمة له. استخدم إعدادات سير عمل بوابة الاتصال للسماح للمستخدمين باختيار المُكلف.
  • gid (string, اختياري): معرف خارجي - معرف من تطبيقك لربط هذه المهمة به. يمكنك استخدام هذا المعرف لمزامنة التحديثات لهذه المهمة لاحقًا.
الوصف: تحديث مهمة في Asana.المعاملات:
  • taskId (string, مطلوب): معرف المهمة - معرف المهمة التي سيتم تحديثها.
  • completeStatus (string, اختياري): حالة الإكمال.
    • الخيارات: true, false
  • name (string, اختياري): الاسم (مثال: “Task Name”).
  • notes (string, اختياري): ملاحظات.
  • dueOnDate (string, اختياري): تاريخ الاستحقاق - التاريخ الذي تستحق فيه هذه المهمة. لا يمكن استخدامه مع Due At. (مثال: “YYYY-MM-DD”).
  • dueAtDate (string, اختياري): الاستحقاق في - التاريخ والوقت (طابع زمني ISO) الذي تستحق فيه هذه المهمة. لا يمكن استخدامه مع Due On. (مثال: “2019-09-15T02:06:58.147Z”).
  • assignee (string, اختياري): المُكلف - معرف مستخدم Asana الذي سيتم تعيين هذه المهمة له.
  • gid (string, اختياري): معرف خارجي - معرف من تطبيقك لربط هذه المهمة به.
الوصف: الحصول على قائمة المهام في Asana.المعاملات:
  • workspace (string, اختياري): مساحة العمل - معرف مساحة العمل لتصفية المهام عليها.
  • project (string, اختياري): المشروع - معرف المشروع لتصفية المهام عليه.
  • assignee (string, اختياري): المُكلف - معرف المُكلف لتصفية المهام عليه.
  • completedSince (string, اختياري): مكتملة منذ - إرجاع المهام غير المكتملة فقط أو التي اكتملت منذ هذا الوقت (طابع زمني ISO أو Unix). (مثال: “2014-04-25T16:15:47-04:00”).
الوصف: الحصول على قائمة المهام بواسطة المعرف في Asana.المعاملات:
  • taskId (string, مطلوب): معرف المهمة.
الوصف: الحصول على مهمة بواسطة المعرف الخارجي في Asana.المعاملات:
  • gid (string, مطلوب): المعرف الخارجي - المعرف الذي ترتبط أو تتزامن به هذه المهمة، من تطبيقك.
الوصف: إضافة مهمة إلى قسم في Asana.المعاملات:
  • sectionId (string, مطلوب): معرف القسم - معرف القسم لإضافة هذه المهمة إليه.
  • taskId (string, مطلوب): معرف المهمة - معرف المهمة. (مثال: “1204619611402340”).
  • beforeTaskId (string, اختياري): معرف المهمة السابقة - معرف مهمة في هذا القسم سيتم إدراج هذه المهمة قبلها. لا يمكن استخدامه مع After Task ID. (مثال: “1204619611402340”).
  • afterTaskId (string, اختياري): معرف المهمة التالية - معرف مهمة في هذا القسم سيتم إدراج هذه المهمة بعدها. لا يمكن استخدامه مع Before Task ID. (مثال: “1204619611402340”).
الوصف: الحصول على قائمة الفرق في Asana.المعاملات:
  • workspace (string, مطلوب): مساحة العمل - إرجاع الفرق في مساحة العمل هذه المرئية للمستخدم المصرح له.
الوصف: الحصول على قائمة مساحات العمل في Asana.المعاملات: لا توجد معاملات مطلوبة.

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

إعداد وكيل Asana الأساسي

from crewai import Agent, Task, Crew

# Create an agent with Asana capabilities
asana_agent = Agent(
    role="Project Manager",
    goal="Manage tasks and projects in Asana efficiently",
    backstory="An AI assistant specialized in project management and task coordination.",
    apps=['asana']  # All Asana actions will be available
)

# Task to create a new project
create_project_task = Task(
    description="Create a new project called 'Q1 Marketing Campaign' in the Marketing workspace",
    agent=asana_agent,
    expected_output="Confirmation that the project was created successfully with project ID"
)

# Run the task
crew = Crew(
    agents=[asana_agent],
    tasks=[create_project_task]
)

crew.kickoff()

تصفية أدوات Asana محددة

from crewai import Agent, Task, Crew

# Create agent with specific Asana actions only
task_manager_agent = Agent(
    role="Task Manager",
    goal="Create and manage tasks efficiently",
    backstory="An AI assistant that focuses on task creation and management.",
    apps=[
        'asana/create_task',
        'asana/update_task',
        'asana/get_tasks'
    ]  # Specific Asana actions
)

# Task to create and assign a task
task_management = Task(
    description="Create a task called 'Review quarterly reports' and assign it to the appropriate team member",
    agent=task_manager_agent,
    expected_output="Task created and assigned successfully"
)

crew = Crew(
    agents=[task_manager_agent],
    tasks=[task_management]
)

crew.kickoff()

إدارة المشاريع المتقدمة

from crewai import Agent, Task, Crew

project_coordinator = Agent(
    role="Project Coordinator",
    goal="Coordinate project activities and track progress",
    backstory="An experienced project coordinator who ensures projects run smoothly.",
    apps=['asana']
)

# Complex task involving multiple Asana operations
coordination_task = Task(
    description="""
    1. Get all active projects in the workspace
    2. For each project, get the list of incomplete tasks
    3. Create a summary report task in the 'Management Reports' project
    4. Add comments to overdue tasks to request status updates
    """,
    agent=project_coordinator,
    expected_output="Summary report created and status update requests sent for overdue tasks"
)

crew = Crew(
    agents=[project_coordinator],
    tasks=[coordination_task]
)

crew.kickoff()