استفاده از Crewai برای ساخت سیستم های عامل


نویسنده (ها): ایگور نویکوف

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

تصویر توسط نویسنده

جفREW AI یکی از محبوب ترین چارچوب های عامل AI در آنجا است. من مرور کردم خودروژن قبل از مایکروسافت ، و معلوم شد که کاملاً حشره دار است. این یکی بالغ تر ، مستندات بهتر و به طور کلی بسیار پایدار است. از نظر معماری ، همه آنها یکسان هستند.

ایده اصلی درختی از اعدام است که در آن شما عوامل به عنوان گره های درخت دارید که می تواند یک یا هر دو روش با سایر عوامل ارتباط داشته باشد. این امر به آنها امکان می دهد انواع مختلفی از جریان را با خود بسازند تا کارهای مختلف را حل کنند.

بیایید به ساختار اصلی خدمه نگاه کنیم:

بنابراین ما داریم:

نمایندگان: کارورزان بیش از حد خدمه AI شما. هرکدام با نقش خاصی (مانند “تحلیلگر Cat Meme” یا “Code Review”) و مجموعه ای از ابزارها برنامه ریزی شده است. نکته حرفه ای: تنظیم Verbose = درست است تا آنها را بشنوید که از بار کاری خود در زمان واقعی شکایت می کنند.

وظایف: لیست کارها را که به نمایندگان خود سیلی می زنید. “10 مورد در مورد محاسبات کوانتومی تولید کنید” یا “این کد را اشکال زدایی کنید در حالی که وانمود می کنید که دزدان دریایی هستید.” کارها را می توان انباشته و در اولویت قرار داد.

فرایندها: “چگونه” هماهنگی هرج و مرج. خدمه AI گزینه هایی مانند سلسله مراتبی . متوالی (کارها مانند یک خط کنگا در خانه بازنشستگی حرکت می کنند). عاقلانه انتخاب کنید ، مگر اینکه بخواهید وظیفه “Memes Cat” خود را که در پشت “حل تغییر آب و هوا” گیر کرده اید ، گیر کنید.

ابزارها: ارتش سوئیس نماینده شما را چاق می کند. آیا باید با API تماس بگیرید ، وب را خراش دهید ، یا یک پیام SLACK منفعل و منفعل ارسال کنید؟ ابزارها به نمایندگان شما اجازه می دهند این کار را انجام دهند.

بیایید چیزی مانند یک سیستم تحقیقاتی بازاریابی بسازیم. شما آن را به نام شرکت می گویید و همه چیز راجع به آن و تصمیم گیرندگان آن می فهمید. ما قصد داریم استفاده کنیم Google Collab برای به اشتراک گذاری آسان

چارچوب خدمه AI باعث ایجاد تیم های نماینده مستقل می شود تا گردش کار پیچیده ای را برطرف کنند. در این سیستم تحقیقاتی بازاریابی ، دو خدمه برای تهیه گزارش جامع شرکت ، به صورت سلسله مراتبی همکاری می کنند.

ابتدا بیایید از Deepseek بخواهیم برنامه ای برای چنین سیستمی ایجاد کند:

تنظیم محیط

  • بسته های لازم را نصب کنید: Crewai ، Openai ، Langchain ، Crewai-Tools ، Gdown و Selenium.
  • سلنیوم را با کروم بی سر پیکربندی کنید (از جمله مدیریت کوکی و کلاهبرداری کاربر-عامل).

ابزار و آماده سازی ابزار

  • تنظیم ابزارهای Scraping و Search (به عنوان مثال Serperdevtool ، WebSitesEarchTool ، Scrapewebsitetool).
  • برای تأخیرهای مانند انسان ، ذخیره سازی HTML ، و تجزیه HTML با یک برنامه های کاربردی ایجاد کنید. LLMبشر

توسعه عامل

  • تحلیلگر شرکت: جمع آوری داده های عمومی شرکت (صنعت ، تخصص ، رویدادهای اخیر) با استفاده از ابزارهای جستجوی وب و خراش.
  • تحلیلگر مطالعات موردی: با استفاده از جستجوی معنایی ، مطالعات موردی مربوطه را از یک مخزن داخلی (Google Doc) بازیابی کنید.
  • تحلیلگر تصمیم گیرنده: استخراج پروفایل های اجرایی کلیدی از LinkedIn با استفاده از یک اسکرابر سلنیوم محور.
  • مدیر مدیر (استراتژیست فروش): وظایف را به تحلیلگران ، تثبیت یافته های آنها و تهیه گزارش علامت گذاری منسجم ارائه دهید.

تعریف کار

  • وظایف را با دستورالعمل های واضح تعریف کنید (به عنوان مثال ، “تحقیق در شرکت” X “و” شناسایی تصمیم گیرندگان “).
  • قالب خروجی مورد انتظار (گزارش Markdown بدون بلوک کد) را تنظیم کنید.

ارکستراسیون خدمه

  • با استفاده از خدمه هوش مصنوعی ، عوامل را در یک خدمه سلسله مراتبی سازماندهی کنید.
  • وظایف را به نمایندگان مناسب اختصاص داده و جریان فرایند را تنظیم کنید (مدیر نظارت بر هیئت نظارت دارد).
  • خدمه را با ورودی شرکت شروع کرده و گردش کار را اجرا کنید.

ادغام و آزمایش

  • ادغام کردن LLMاستخراج HTML مبتنی بر ساختار داده های خام.
  • برای کاهش ضایعات اضافی ، حافظه پنهان را اجرا کنید.
  • سیستم را در برابر داده های دنیای واقعی (به عنوان مثال ، صفحات LinkedIn) آزمایش کنید و برای بارگذاری محتوای پویا تنظیم کنید.

نهایی سازی

  • در یک گزارش نهایی ، خروجی های همه عوامل را تلفیق کنید.
  • صحت داده ها را تأیید کنید و در صورت لزوم ، رسیدگی به خطا یا تأخیرها را تنظیم کنید.
  • سیستم را برای کارهای تحقیقاتی بیشتر بازاریابی مستقر یا گسترش دهید.

اکنون که برنامه ای داریم ، بیایید کد را بنویسیم.

web_search_tool = SerperDevTool()
website_scrape_tool = ScrapeWebsiteTool()
case_studies_tool = GetOurCompanyCaseStudies()

inputs = {
'company': "Microsoft"
}

company_researcher = Agent(
role="Company Analyst",
goal="Analyze the company, gather data by reviewing its social media and website, and identify pain points.",
backstory=f"You are an experienced analyst with expertise in business and process automation at {OUR_COMPANY}. Your task is to gather information that the sales department will use to develop hypotheses for client outreach.",
tools=[web_search_tool, website_scrape_tool],
verbose=True,
allow_delegation=False,
llm=llm
)

case_studies_researcher = Agent(
role="Case Studies Analyst",
goal="Analyze the company, gather data by reviewing its social media and website, identify pain points, and determine the most relevant case studies we can present to the company.",
backstory=f"You are an experienced analyst with expertise in business and process automation at {OUR_COMPANY}. Your task is to gather information and select relevant case studies, which the sales department will use to develop hypotheses for outreach to clients.",
tools=[web_search_tool, case_studies_tool, website_scrape_tool],
verbose=True,
allow_delegation=True,
llm=llm
)

decision_makers_researcher = Agent(
role="Decision Maker Analyst",
goal="Analyze the key figures of the company, their interests, communication style, and level of technical knowledge.",
backstory=f"A specialist in analyzing people and decision-makers, skilled in identifying the motivation of business leaders. You work at {OUR_COMPANY}. Your task is to gather information (company activities, recent social media posts, hobbies, place of residence) about the executives of potential clients, which the sales department will use to develop hypotheses for outreach to clients.",
tools=[website_scrape_tool, web_search_tool],
verbose=True,
allow_delegation=False,
llm=llm
)

manager = Agent(
role="Sales Strategist",
goal="Manager of a team that researches a company and creates detailed reports based on data analysis and research findings about potential clients for sales team to use for their outreach strategy.",
backstory="Efficiently manage the crew and ensure high-quality task completion. You're known for your ability to turn complex data into clear and concise reports, making it easy for others to understand and act on the information you provide.",
verbose=True,
allow_delegation=True,
llm=llm_o1
)
task_research_company = Task(
description=(
"Research the company '{company}' and gather information about: industry, specialization, and recent events.\n"
"The company name is exactly as it is spelled (including any special characters)—make sure you don’t mix it up with similarly named companies.\n"
"Make sure to analyze their LinkedIn and website.\n"
"Find similar cases from our Case Studies and mention them.\n"
"Don’t draw any conclusions—just gather data into a report.\n"
f"Today is {today}."

),
expected_output="A fully fledge report with the mains topics, each with a full section of information. Formatted as markdown without '```'"
)

sales_research_crew = Crew(
agents=[company_researcher, decision_makers_researcher, case_studies_researcher],
tasks=[task_research_company],
verbose=True,
memory=True,
manager_agent=manager,
process=Process.hierarchical
)

company_research_results = sales_research_crew.kickoff(inputs=inputs)

print(company_research_results)

نسخه کامل اینجا است:

Google Colab

توضیحات ویرایش

colab.research.google.com

بیایید ببینیم کد چگونه کار می کند.

شرکت تحلیلگر شرکت

در تحلیلگر شرکت به حضور آنلاین این شرکت – تجزیه و تحلیل وب سایت و رسانه های اجتماعی – برای استخراج روند صنعت ، رویدادهای اخیر و بینش عمومی می پردازد.

در مطالعات موردی برای شناسایی موارد قبلی که ممکن است مربوط به شرکت هدف باشد ، پایگاه داده ما از مطالعات موردی را جستجو می کند (بارگیری شده از Google Docs!).

در تحلیلگر تصمیم گیرنده تمرکز بر جمع آوری جزئیات در مورد چهره های اصلی شرکت ، علایق آنها و سایر نکات ظریف است که می تواند برای خیاطی از دسترسی مفید باشد.

در استراتژیست فروش (مدیر) به عنوان موتور ارکستراسیون که هماهنگی جریان کارها را انجام می دهد ، اطمینان حاصل می کند که داده های هر عامل به خوبی ساختار یافته است و هیچ چیز از طریق ترک ها نمی چرخد.

خدمه تصمیم گیرندگان با محوریت LinkedIn

در محقق لینکدین از سفارشی ما استفاده می کند getCompanyLinkedInpeople ابزاری برای خراش دادن صفحات LinkedIn ، استفاده دقیق از تأیید هویت از طریق کوکی ها و شبیه سازی رفتار انسان با سلنیوم.

در داده ها اطلاعات استخراج شده از LinkedIn و منابع دیگر را تأیید و مرجع می کند و به اطمینان از اطمینان گزارش نهایی کمک می کند.

چگونه سیستم کار می کند

وقتی تماس می گیرید لگد زدن روش بر روی خدمه با ورودی مانند {‘شرکت “:’ Microsoft ‘} ، سیستم یک فرآیند سلسله مراتبی را دنبال می کند. مدیر مدیر وظایف را به نمایندگان تخصصی واگذار می کند ، هر یک از ابزارهای خاص خود (از جستجوی وب و خراش وب سایت تا جستجوی معنایی در مطالعات موردی ما) برای تکمیل تکالیف خود استفاده می کنند.

نتیجه؟ یک گزارش کاملاً با فرمت با مارک.

استفاده ما از فرآیند. حالت Hierarchical تضمین می کند استراتژیست فروش (مدیر) نه تنها نمایندگان بلکه خروجی های هر ماده فرعی را نیز سنتز می کنند. این گردش کار سلسله مراتبی تصادفی را در اقدامات عوامل به حداقل می رساند.

با پردازش داده های متعدد به طور موازی ، اطمینان از کیفیت اطلاعات بسیار مهم است. گنجاندن a داده ها نماینده در خدمه دوم به تأیید صحت اطلاعات کمک می کند.

ابزار

Crewai با مجموعه ای از ابزارهای از پیش ساخت که تمام نیازهای اساسی را تأمین می کند ، ارائه می شود ، اما می توانید خود را همانطور که با LinkedIn Parser انجام دادم اضافه کنید.

هر عامل باید مجهز به مجموعه کافی از ابزارها برای کار باشد. به عنوان مثال:

  • جستجوی وب و خراش – نمایندگانی مانند تحلیلگر شرکت وت تحلیلگر تصمیم گیرنده از ابزارهایی مانند استفاده کنید سرپرست وت Scrapewebsitetool برای حرکت و استخراج داده ها از وب.
  • خراش LinkedIn – رسم ما getCompanyLinkedInpeople ابزار ، ساخته شده بر روی سلنیوم ، از الگوهای مرور انسان برای مقابله با محتوای پویا LinkedIn و الزامات ورود به سیستم تقلید می کند.
  • استخراج متن از Google DocsgetOurCompanyCasestudies بارگیری ابزار و ذخیره مطالعات موردی ما ، امکان جستجوی معنایی در یک مخزن خوب و خوب را فراهم می کند.

نتیجه گیری

جفREW یک چارچوب بسیار خوب است. پایدار و سر راست است. این کد به اندازه کافی از کد دیگ بخار است اما هنوز کنترل دانه خوبی را به شما می دهد. درک و یادگیری آن بسیار آسان است.

در مورد رویکرد عامل – اگر کد را اجرا کنید ، خواهید دید که نتایج کامل نیست. همانطور که منطق عامل است فازی، و مانند یک برنامه رایانه ای سفت و سخت نیست ، هر بار ، گاهی اشتباه یا توهم ، نتایج متفاوتی را ارائه می دهد. به طور متوسط ​​هرچند – بسیار خوب کار می کند ، به اندازه کافی خوب است که در مواردی که صحت دقیق یک الزام نیست ، مفید باشد.

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/artificial-intelligence/using-crewai-to-build-agentic-systems