„პატარა აგენტები“ პითონში: ახალი ეპოქა LLM-ების და ინსტრუმენტების ურთიერთქმედებაში
ეს ბლოგპოსტი წარმოგიდგენთ „პატარა აგენტების“ (Tiny Agents) პითონზე პორტირებას, სადაც `huggingface_hub` კლიენტის SDK გაფართოვდა, რათა იმოქმედოს როგორც MCP კლიენტი. მთავარი სიახლეა MCP (მოდელის კონტექსტის პროტოკოლი), ღია სტანდარტი, რომელიც აერთიანებს დიდი ენობრივი მოდელების (LLM) გარე ინსტრუმენტებთან და API-ებთან ურთიერთქმედებას, რითაც აღარ საჭიროებს ყოველი ინსტრუმენტისთვის მორგებულ ინტეგრაციებს. სტატია განმარტავს, თუ როგორ უნდა დაიწყოთ მუშაობა პითონის აგენტებთან, რომლებიც დაკავშირებულია MCP სერვე
JS-ში არსებული „პატარა აგენტებით“ (Tiny Agents) შთაგონებულებმა, ეს იდეა პითონში 🐍 გადავიტანეთ და `huggingface_hub` კლიენტის SDK გავაფართოვეთ, რათა ის MCP კლიენტად იმუშაოს. ეს მას საშუალებას აძლევს, MCP სერვერებიდან მიიღოს ინსტრუმენტები და ინფერენსის დროს გადასცეს დიდ ენობრივ მოდელს (LLM).
MCP (მოდელის კონტექსტის პროტოკოლი) არის ღია პროტოკოლი, რომელიც სტანდარტიზაციას უკეთებს დიდი ენობრივი მოდელების (LLM) გარე ინსტრუმენტებთან და API-ებთან ურთიერთქმედებას. ის, ფაქტობრივად, აუქმებს თითოეული ინსტრუმენტისთვის მორგებული ინტეგრაციების დაწერის საჭიროებას, რითაც ამარტივებს ახალი შესაძლებლობების დამატებას თქვენს LLM-ებში.
ამ ბლოგპოსტში ჩვენ გაჩვენებთ, თუ როგორ უნდა დაიწყოთ მუშაობა პითონის პატარა აგენტთან, რომელიც MCP სერვერებთან არის დაკავშირებული, რათა ინსტრუმენტების მძლავრი შესაძლებლობები განბლოკოთ. ნახავთ, თუ რამდენად მარტივია საკუთარი აგენტის გაშვება და მშენებლობის დაწყება! სპოილერი: აგენტი, არსებითად, არის `while` ციკლი, რომელიც აგებულია MCP კლიენტზე!
ეს განყოფილება გიჩვენებთ, თუ როგორ გამოიყენოთ არსებული „პატარა აგენტები“. ჩვენ განვიხილავთ კონფიგურაციას და ბრძანებებს აგენტის გასაშვებად. პირველ რიგში, თქვენ უნდა დააინსტალიროთ `huggingface_hub`-ის უახლესი ვერსია `mcp` დამატებით, რათა მიიღოთ ყველა საჭირო კომპონენტი. ახლა კი, მოდით, გავუშვათ აგენტი CLI-ის გამოყენებით!
ყველაზე საინტერესო ის არის, რომ აგენტების ჩატვირთვა შეგიძლიათ უშუალოდ Hugging Face Hub-ის `tiny-agents` მონაცემთა ნაკრებიდან, ან მიუთითოთ გზა თქვენი ლოკალური აგენტის კონფიგურაციისკენ! თუ კონკრეტული აგენტის კონფიგურაციის გზას არ მიუთითებთ, ჩვენი „პატარა აგენტი“ ნაგულისხმევად დაუკავშირდება შემდეგ ორ MCP სერვერს:
შემდეგი მაგალითი გვიჩვენებს ვებ-დათვალიერების აგენტს, რომელიც კონფიგურირებულია Qwen/Qwen2.5-72B-Instruct მოდელის გამოსაყენებლად Nebius-ის ინფერენსის პროვაიდერის მეშვეობით. ის აღჭურვილია `playwright` MCP სერვერით, რაც მას ვებ-ბრაუზერის გამოყენების საშუალებას აძლევს! აგენტის კონფიგურაცია იტვირთება `tiny-agents/tiny-agents` Hugging Face მონაცემთა ნაკრებში მისი გზის მითითებით. როდესაც აგენტს გაუშვებთ, დაინახავთ, რომ ის იტვირთება, ჩამოთვლის ინსტრუმენტებს, რომლებიც აღმოაჩინა დაკავშირებული MCP სერვერებიდან. შემდეგ ის მზად არის თქვენი მოთხოვნებისთვის! ამ დემოში გამოყენებული მოთხოვნა: შეასრულე ვებ ძიება HF ინფერენსის პროვაიდერებზე Brave Search-ზე და გახსენი პირველი შედეგი, შემდეგ მომეცი Hugging Face-ზე მხარდაჭერილი ინფერენსის პროვაიდერების სია.
თქვენ ასევე შეგიძლიათ გამოიყენოთ Gradio Spaces MCP სერვერებად! შემდეგი მაგალითი იყენებს Qwen/Qwen2.5-72B-Instruct მოდელს Nebius-ის ინფერენსის პროვაიდერის მეშვეობით და უკავშირდება FLUX.1 [schnell] გამოსახულების გენერაციის HF Space-ს, როგორც MCP სერვერს. აგენტი იტვირთება მისი კონფიგურაციიდან `tiny-agents/tiny-agents` მონაცემთა ნაკრებიდან Hugging Face Hub-ზე. ამ დემოში გამოყენებული მოთხოვნა: შექმენი 1024x1024 ზომის გამოსახულება, რომელზეც პატარა ასტრონავტი კვერცხიდან იჩეკება მთვარის ზედაპირზე.
მას შემდეგ, რაც ნახეთ, როგორ მუშაობს არსებული „პატარა აგენტები“, შემდეგი განყოფილებები უფრო დეტალურად გაგაცნობთ, თუ როგორ მუშაობენ ისინი და როგორ შექმნათ საკუთარი. თითოეული აგენტის ქცევა (მისი ნაგულისხმევი მოდელი, ინფერენსის პროვაიდერი, რომელ MCP სერვერებთან უნდა დაუკავშირდეს და მისი საწყისი სისტემური მოთხოვნა) განსაზღვრულია `agent.json` ფაილით. ასევე შეგიძლიათ მოგვაწოდოთ მორგებული `PROMPT.md` იმავე დირექტორიაში უფრო დეტალური სისტემური მოთხოვნისთვის. აი მაგალითი:
`agent.json` - `model` და `provider` ველები მიუთითებს LLM-სა და ინფერენსის პროვაიდერს, რომელსაც იყენებს აგენტი. `servers` მასივი განსაზღვრავს MCP სერვერებს, რომლებსაც აგენტი დაუკავშირდება. ამ მაგალითში, კონფიგურირებულია „stdio“ MCP სერვერი. ამ ტიპის სერვერი მუშაობს როგორც ლოკალური პროცესი. აგენტი იწყებს მას მითითებული ბრძანებისა და არგუმენტების გამოყენებით, შემდეგ კი მასთან ურთიერთობს `stdin/stdout`-ის მეშვეობით ხელმისაწვდომი ინსტრუმენტების აღმოსაჩენად და შესასრულებლად.
`PROMPT.md` - Hugging Face-ის ინფერენსის პროვაიდერების შესახებ მეტი დეტალის ნახვა შეგიძლიათ აქ.
თანამედროვე LLM-ები აგებულია ფუნქციის გამოძახებისთვის (ან ინსტრუმენტების გამოყენებისთვის), რაც მომხმარებლებს საშუალებას აძლევს, მარტივად შექმნან აპლიკაციები, რომლებიც მორგებულია კონკრეტულ გამოყენების შემთხვევებზე და რეალურ სამყაროს ამოცანებზე. ფუნქცია განისაზღვრება მისი სქემით, რომელიც LLM-ს აწვდის ინფორმაციას იმის შესახებ, თუ რას აკეთებს ის და რა შეყვანის არგუმენტებს ელის. LLM წყვეტს, როდის გამოიყენოს ინსტრუმენტი, შემდეგ აგენტი ახდენს ინსტრუმენტის გაშვების ორკესტრირებას და შედეგს უკან აბრუნებს. `InferenceClient` ახორციელებს იგივე ინსტრუმენტების გამოძახების ინტერფეისს, როგორიც აქვს OpenAI Chat Completions API-ს, რაც ინფერენსის პროვაიდერებისა და საზოგადოებისთვის დადგენილი სტანდარტია.
`MCPClient` არის ჩვენი ინსტრუმენტების გამოყენების ფუნქციონალობის გული. ის ახლა `huggingface_hub`-ის ნაწილია და იყენებს `AsyncInferenceClient`-ს LLM-ებთან კომუნიკაციისთვის. `MCPClient`-ის სრული კოდი შეგიძლიათ იხილოთ აქ, თუ გსურთ რეალური კოდის გამოყენებით მიჰყვეთ პროცესს 🤓. `MCPClient`-ის ძირითადი პასუხისმგებლობები:
აი, როგორ უკავშირდება ის MCP სერვერს (`add_mcp_server` მეთოდი): ის მხარს უჭერს `stdio` სერვერებს ლოკალური ინსტრუმენტებისთვის (როგორიცაა თქვენს ფაილურ სისტემაზე წვდომა) და `http` სერვერებს დისტანციური ინსტრუმენტებისთვის! ის ასევე თავსებადია `sse`-სთან, რაც დისტანციური ინსტრუმენტებისთვის წინა სტანდარტი იყო.
`MCPClient`-ის `process_single_turn_with_tools` მეთოდი არის ადგილი, სადაც ხდება LLM-ის ურთიერთქმედება. ის უგზავნის საუბრის ისტორიას და ხელმისაწვდომ ინსტრუმენტებს LLM-ს `AsyncInferenceClient.chat.completions.create(..., stream=True)` მეშვეობით. პირველ რიგში, მეთოდი განსაზღვრავს ყველა ინსტრუმენტს, რომელიც LLM-მა უნდა იცოდეს მიმდინარე შემობრუნებისთვის – ეს მოიცავს ინსტრუმენტებს MCP სერვერებიდან და ნებისმიერ სპეციალურ „ციკლიდან გამოსვლის“ ინსტრუმენტს აგენტის კონტროლისთვის; შემდეგ ის ახორციელებს სტრიმინგულ ზარს LLM-თან: როგორც კი ნაწილები (chunks) ჩამოვა LLM-დან, მეთოდი მათ გაივლის...
თეგები:
#ხელოვნური ინტელექტი
#llm
#პროგრამირება
#მოდელის კონტექსტის პროტოკოლი
#hugging face
#პითონი
#mcp
#აგენტები
#tiny agents
#sdk
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი