Галоўная / Артыкулы

Розумэнне агентаў AI: вызыв калікасоў, MCP і цыкл агента

Як вызовы інструментаў, MCP і цыкл агента спаўнаюць ролю ў рэальной архітэктурэ AI-агентаў, зыходзячы з расшыранага LLM і адмовіваючыся ад пустых тэрмінаў.

Выдавец: REACTAPP.TOP16 хв чытання3674 слоў

Крыніцы: Tool Calling vs MCP: How AI Agents Actually Use Tools

Калі людзі пачынаюць дакларацца з агентамі AI, тыя ж калькі тэрміны постаюць усюды:

Агенты. Інструменты. Выклік функцый. MCP. Кантэкст. Памяць.

На першы погляд гэтыя элементы здаюцца скупкай некалявязаных тэхналогій.

Але калі прысвяціць достатню час на аналіз таго, як будуць ствараны рэальныя агентскія сістэмы, у чынносты, паглядзеўшы на тэхнічныя апісанні Anthropic пра агенты і MCP, пачынае выклікацца значна простэйшая архітэктура.

У гэтым артыкуле рассматрываецца гэтая архітэктура з практычнай, спрамованай да развіццялараў, точкі зору.

Што на самай працэ практычна робіць з AI-сістэмы агентам?

Тыповыя дапрыемкі, якія выкарыстоўваюць LLM, можна паказаць так:

User
  ↓
LLM
  ↓
Response

Тут мадэль проста прымеўляе вхідны даны і стварае выходны.

Але багато рэальных задач немагчыма рашыць толькі шляхом генеравання тэксту.

Возьмімо гэты запіт як прыклад:

«Працюйце з гэтым рэпазітарыем на GitHub, шукайце нераскіяныя проблемы, выберыце тую, якая мае найбольшое значэнне, і пісакайце карточку з тым, што яшчэ трэба выправіць.»

Ёнколі трэба разглядаць такія справы, сістэма должна:

  1. Зрозумець запіт.
  2. Выбраць, яю інфармацыю ёй трэба.
  3. Выбраць прыдатны інструмент.
  4. Застосавіць інструмент.
  5. Працаваць з рэзультатам.
  6. Выбраць, што робіць далей.
  7. Можліва, запрашаць іншы інструмент.
  8. Стварыць заканчоўны адказ.

Самэ гэтаму панягчае понятцыя агентнай сістэмы.

Anthropic чыста паводзіць межу між рабочымі прайсептамі і агентамі.

Рабочы прайсепт выконвае фіксаваную серыю крокаў:

LLM → Step 1 → Step 2 → Step 3 → Answer

Агент, з іншай боку, сам выбірае, якія дзеяння і інструменты ўжываць:

             ┌──────────────┐
             │     LLM      │
             └──────┬───────┘
                    │
               choose action
                    ↓
                 Tool
                    ↓
                Result
                    │
                    └──────────→ LLM
                                  │
                             choose next action

Ключовым моментам не ўсё тое, што LLM якісь час у працэсе ўжоўваецца.

Справа ў тым, што сам LLM мае право вплываць на формаванне працэсу.

Anthropic выкладае агенты як сістэмы, у якіх LLM актыўна керуе сваёй рабочай практыкой і выкарыстоўваннем інструментаў, тады калі рабочыя практыкі завісяць ад логікі оркестрацыі, якая загадзя задаецца распрацоўшчыкам.

Расшырэнны LLM

Одной з особліва корыстных ідэй у матэрыялах Anthropic ёсць концэпцыя расшырэнага LLM.

Замест таго, каб уявляць LLM проста як:

LLM → Text

можна яго уявіць як:

             ┌─────────────┐
             │     LLM     │
             └──────┬──────┘
                    │
       ┌────────────┼────────────┐
       ↓            ↓            ↓
    Retrieval     Tools        Memory

У такой перспектыве LLM атрымлея можласць выходзіць за межы своіх навучальных параметраў і взаімадзейваць з зовнішняю інформацыяй і можлівасцямі.

Anthropic адакшчыць выкарыстоўванне дадзеных, доступ да інструментаў і памяці як формы расшырэння, якія ператвараюць звычны LLM у асновную частку для стварэння болей спроможных агентных сістэм.

Гэта мае значэнне, таму што гэта чыстае, што сама мадэль не ператварыцца чарамі на цэлую програмную сістэму.

Саме прыкладная програма, якая абгортае мадэль, з’яўляецца джэрэлам тых дадзеных дапамогі.

То што такое вызов інструмента?

Перш чым перэйсці да MCP, корыстна паглядзець на ўсё бол простае.

Уявіце, што да LLM даўся доступ да інструмента на кшталт:

get_weather(city)

Потым корыстнік запытае:

"Якая пагода ў Коламба?"

У зменшэнне на тое, каб адразу адпавесці, мадэль можа адпавесці запытам пра вызов функцыі:

{
  "name": "get_weather",
  "arguments": {
    "city": "Colombo"
  }
}

Сама прыкладная програма ёсць тая, якая насправдзе запускае гэтую функцыю.

Такая выканання можа вернуць ўтаманне што-і такое:

{
  "temperature": 29,
  "condition": "Partly cloudy"
}

Эты выхід падае знову ў вікно кантэксту мадэлі.

З таму мадэль можа стварыць адпаведны адказ, напрыклад:

"У Коламбо зараз 29°C і часткова хмарна пагода."

Ключовы момент тут такі:

LLM толькі прымечвае, што трэба вызваць адпаведны інструмент. Сама прыкладна програма ёй здыйснюе выканання.

Мадэль ніколі не стварае прымытай з’язку з самым сервісам пагоды.

Вызов інструмента — гэта не MCP

Гэта, паводле многіх, найважлівейшая разліка, якую трэба зрозумець у всій гэтай сферэ.

Вызов інструмента і MCP рашуюць два разныя прыблэмы.

Вызов інструмента фундаментальна асоціюецца з абмянам между:

LLM
 ↓
Tool request
 ↓
Application
 ↓
Tool result

MCP, на адзінак, ўсьмо пратакол, створаны для стандартызаціі спосабу, якім прыкладнія AI падключаюцца да зовнішніх інструментаў, джэраў даных і кантэксту.

Anthropic выдала MCP у лістападзе 2024 года як адкрыты стандарт, прызначаны для падключэння асістэнтав AI да сістэм, дзе знаходзяцца рэальныя даны і інструменты.

За інформацыяй з сабеўскай дакументаціі Anthropic, MCP стандартызуе спосаб, якім прыкладнія задаюць кантэкст у LLM-ы, і ў якім пораўнанні гаворыцца, што ён функцыонуе як порт USB-C для прыкладняў AI.

Ёсць кілька слоў:

Tool Calling
     ↓
How an LLM requests an action
MCP
     ↓
How AI applications can standardize connections
to external tools and data

Іншымі словамі, гэтыя два падходы дапамагаюць адна другой, а не конкуруюць.

Што насправды даўа MCP

Уявіце прыкладнэ AI, якое павінна з’ясоўваць доступ да:

  • GitHub
  • PostgreSQL
  • Google Drive
  • Slack
  • локальнай файловай сістэме
  • внутрашнях API компаніі
  • Сістэмы манітарынгу
  • Без якога-небудзь спяшчанага пратакту кожна з гэтых наёмкаў можа патрабаваць сабе індывідуальную прымоўку. Вы лёгка можэце атрымаць такую структуру:

    AI Application
     ├── Custom GitHub integration
     ├── Custom Slack integration
     ├── Custom PostgreSQL integration
     ├── Custom filesystem integration
     └── Custom internal API integration
    

    MCP выступае шляхом задання стандартызаванага пратакту, які знаходзіцца межы програмай на аднойчыннай інтэлігенцыі і любымі званачнымі сістэмамі, якія задаюць можлівасці. Канцэптуальна гэта выглядае так:

                    AI Application
                           │
                     MCP Client(s)
                           │
           ┌───────────────┼────────────────┐
           ↓               ↓                ↓
       MCP Server      MCP Server       MCP Server
        GitHub          Database          Files
           │               │                │
           ↓               ↓                ↓
        GitHub API      PostgreSQL       Filesystem
    

    За такой схемай програмай на аднойчыннай інтэлігенцыі больш не патрабуе глыбокых, індывідуальных знаёмстваў пра кожную сістэму на заднім фоне. У замен серверы MCP адкрываюць сваія можлівасці праз спяшчаны слой пратакту.

    Архітэктура MCP

    MCP пабудаваны на модэлі кліент-хост-сервер. На высокам рэвэлі гэта выглядае так:

    ┌─────────────────────────────────────┐
    │              HOST                   │
    │                                     │
    │        AI Application               │
    │                                     │
    │    ┌──────────────────────────┐     │
    │    │       MCP Client         │     │
    │    └────────────┬─────────────┘     │
    └─────────────────┼───────────────────┘
                      │
                      │ MCP
                      ↓
            ┌──────────────────┐
            │    MCP Server    │
            │                  │
            │  Tools           │
            │  Resources       │
            │  Prompts         │
            └────────┬─────────┘
                     │
                     ↓
            External System
    

    Ключовыя ролі ў гэй архітэктуры опісаны ніжчэй.

    Хост

    Хост — гэта прыткая програма, якая адмініструець весь працэс взаіменадзеяння. Гэта можа быць наступнае:

    • прыткая асістэнт для напісання коду
    • прыткая програма для нарабочага столу
    • інструмент для распрацоўшчыкаў
    • спецыяльна створаная програма-агент

    MCP Кліент

    MCP кліент знаходзіцца ўнутрь хоста і адпавядае за падтрымканне жывага і функцыональнага з’яўлення з’язку з серверам MCP.

    MCP Сервер

    MCP сервер — гэта проста програма, якая адкрывае можлівасці праз протакол MCP. Яна можа адкрываць функцыяналітэт, які стосуецца наступных рэчаў:

    GitHub
    Databases
    Files
    Cloud services
    Internal systems
    Development environments
    

    Важна зазначыць, што сам MCP сервер не павінен быць агентам і не павінен мець жадных прыткаях алгорытмаў. Яго задача — проста зробіць певныя можлівасці доступнымі.

    MCP мае больш, чым толькі інструменты

    Адзін момант, які можа легка спантавіць людзей, — гадка, што MCP ўсё толькі „протакол вызову інструментаў“. Насамперадзе, MCP візначае калькі прымітыў, якія выходзяць за межы проста інструментаў.

    Інструменты

    Гэта дзеянні, якія мадэль можа выканаць, напрыклад:

    create_issue()
    search_repository()
    query_database()
    send_message()
    

    Рэсурсы

    Рэсурсы — гэта фрагменты інформацыі, якія прыкладнае програма можа запрашаць і перэдаць модэлі як кантэкст, напрыклад:

    file://project/README.md
    database://schema
    

    Запросы

    MCP таксама можа выкліквачыць шаблоны запросаў, якія можна перадаць знову і зноў, як окрэмы прымітыў.

    У дакументацыі MCP ад компаніі Anthropic чыста пазначана, хто керуе кожным з гэтых элементаў: інструменты керуецца модэллю, рэсурсы — прыкладной програмай, а запросы — корыстнікам. Самэ гэта шаравае керуванне робіць MCP чым-то большым, чым простая суперчынна механізма вызову функцый.

    Полны прыклад

    Возьмімо такі запрос:

    «Паказайце мне нераскрытыя прыблэмы ў гэтай рэпазітарыі GitHub.»

    Спроставаная версія гэтага працэсу можа выглядаць так:

    User
      │
      │ "Show me the open issues"
      ↓
    AI Application
      │
      ↓
    LLM
      │
      │ decides a GitHub tool is needed
      ↓
    Tool Call
      │
      ↓
    MCP Client
      │
      │ MCP
      ↓
    GitHub MCP Server
      │
      ↓
    GitHub API
      │
      ↓
    Issue Data
      │
      ↓
    MCP Client
      │
      ↓
    LLM
      │
      ↓
    Final Answer
    

    Зверніце ўвагу, сколькі розных слоёў участвуе ў гэтым. Мадэль разумее, якую інфармацыю ёй трэба. Аплікацыя керуе оркестрацыей і выкананнем. MCP забезпечвае стандартызаваны канал для вяснаў з зовнішняй спроможнасцю. Сама зовнішня служба выкананае фактычную працу. Гэта чатыры адзелёныя абавязкі, а не адна злучаная стадзія.

    Дзе месца Docker?

    Часта можна пабачыць, як серверы MCP упаковуюцца і адправляюцца як контэйнеры Docker, напрыклад:

    AI Application
          │
          │ stdio
          ↓
    Docker Container
          │
          ↓
    MCP Server
          │
          ↓
    External Service
    

    Важна паўтарэнне, што сам Docker не ёсць MCP. Docker — гэта проста адны з удобных спосабоў пакетавання і запуску сервера MCP. Той самы сервер можа таксама легка працаваць як звычны локальны працэс або быць розмешаным на даляйнай машыне як сервіс. Сам протакол абсалютна незалежны ад таго, як вы выберазеце яго розмешчэнне.

    STDIO протык Streamable HTTP

    MCP працуе праз больш чым адні механізмы транспортування.

    Калі інтэграцыя ўскладнена локальна, кліент MCP можа запусціць сервер MCP як свой сабе працэс і вяршыць з нім комунікацыю праз STDIO.

    Канцэптуальна:

    AI Application
          │
          │ stdin/stdout
          ↓
    MCP Server Process
    

    У сценарыях, калі сервер знаходзіцца на даляйнай машыне, MCP выкарыстоўвае заместа таго Streamable HTTP.

    AI Application
          │
          │ HTTP
          ↓
    Remote MCP Server
    

    З-за гэтага MCP адмініструецца легка, незалежна ад таго, чы розмешаны інструменты на машыне распрацоўшчыка чы працуюць як сервіс у іншым месца.

    MCP протык REST API

    Іншая разліка, яку варта адзначыць, — гэта тое, як MCP параджуецца з звычным REST API.

    Інтэрацыя з REST API выглядае так:

    Application
         │
         │ HTTP request
         ↓
    REST API
         │
         ↓
    Data
    

    Інтэрацыя з MCP выглядае так:

    AI Application
          │
          │ MCP
          ↓
    MCP Server
          │
          ↓
    REST API / Database / Filesystem / Other system
    

    Цікава дыячна — сервер MCP можа валідна выкарыстоўваць REST API пад сабой.

    Таму MCP не прызначаны для замены REST.

    Яго лепей розумець як шар, прыямны для AI, які знаходзіцца на верхній частцы вялікі ўжо існуючых сістэм.

    Чаму MCP стаў цікавым

    Масштаб проблемы інтэграціі стае ясным, калі уявіце сабе калькі AI-застаўок, кожная з яых патрэбуе вяселіцца з калькамі зовнішняй інструментаў.

    Без спяльванага пратаколу вы атрымуеце нешта такое:

    AI App A ───── Custom ───── GitHub
    AI App A ───── Custom ───── Slack
    AI App A ───── Custom ───── Database
    
    AI App B ───── Custom ───── GitHub
    AI App B ───── Custom ───── Slack
    AI App B ───── Custom ───── Database
    

    Кожная новая пара «застаўка-програма» можа значыць неабходнасць напісання новага коду для інтэграціі.

    Саюзны пратакт зменяе цю картыну абсалютна:

    MCP
                         │
            ┌────────────┼────────────┐
            ↓            ↓            ↓
         GitHub        Slack       Database
          MCP           MCP           MCP
         Server        Server        Server
    

    Гэта, по суты, прычына, чаму Anthropic выдала MCP як адкрыты стандарт у зменшэнні таго, каб яе вважалі чымсь, створаным толькі для Claude.

    Пасля чаго Anthropic расшырыла MCP, ўключыўшы падтрымку даўніх сервераў, і безпосерэдна інтэгравала ўсёяўленую MCP-супрацоўнасць у свае API і продукты.

    Але наявнасць большай колькасці інструментаў не прымусова робіць агента лепшым

    Самэ тут пасляўшаяі інжынерныя працы Anthropic становяцца справдзільна цікавымі.

    Лёгка прыпусціць:

    Больш інструментаў = агент з большымі можлівасцямі.

    Аднак гэты прыпуск у практыцы не адпавядае рэальнасці.

    Доследжэння Anthropic па дызайну інструментаў паказваюць, што агенты насправдзе можу прадаць гэрш, калі ў іх даходзіць занадта многа перакрываючыхся або некалькі разу спланаваных інструментаў.

    Добрая застосованая інструментальная сістэма павінна мець адзін чысты цэль і вяртаць корысную інфармацыю, адночасна ўтрымваючыся ад непатрэбнага перадмету ў вікнах кантэксту модэлі.

    Як прыклад, замест таго, каб выкарыстоўваць тры адзінаковыя вызывы, напрыклад:

    list_users()
    list_transactions()
    list_notes()
    

    можа быць эфектывней даць агенту адную саюзную можлівасць, напрыклад:

    get_customer_context()
    

    праўдзей будзе тое, што лепша адпавядае таму, чаго насправды прагне досягнуць агент.

    Іншымі словамі, сам інтэрфейс інструменту стае часткай сяродавішча, у яком працуе агент.

    Інструменты — гэта інтэрфейс для агента

    Гэтыя спазыраванні вяду да шырэйшай ідэі, якую варта адзначыць:

    Інструменты павінны быць створаны з увагай да агента, а не проста перапакаваны з існуючага API.

    Традыцыйны API можа працаваць абсалютна нормальна, калі яго вызывае дэтэрміністычны програма.

    Адэн агент, які керуецца LLM, працюе пад іншым наборам абмежэнняў.

    Ёму трэба супернікаваць з:

    • обмежаным вікнам кантэксту
    • прабабылістычнымі выходамі
    • ранейшымі памылкамі у выборэ правільнага інструмента
    • ранейшымі памылкамі у стварэнні правільных параметраў
    • неяснасцю ў тым, што на самай працэ патрабуецца

    Чырвонай лініёй тут якраз і ёсць тое, як опісваецца інструмент.

    Паглядзіце, насколькі нечыясны ёсць такі опіс:

    search(id)
    

    у працоўнасці з насколькі ясным опісам:

    search_github_issues(
        repository,
        query,
        state
    )
    

    Каб модэль могла правільна выкарыстоўваць інструмент, яй трэба ведаць:

    • што на самай працэ робіць інструмент
    • колі ён являецца правільным інструментам для выкарыстання
    • што прэдставляюць кожны з параметраў вхідных дадзенняў
    • які фармат мае выход
    • што інструмент не можа зрабіць

    Каналізацыя Anthropic па адкладчыцкай інжынерыі акцэнюе на точным называнні, чыстых апісаннях, добра заданых параметрах, корыстных рэзультатах і продовжлівай ацэнцы.

    Кантэкст стае важлівай часткай інжынерыі агентаў

    Anthropic таксама неяк недавна падкрэсліла ідэю кантэкста „якраз у час“.

    Просты спосаб працы з кантэкстам выглядае так:

    Load everything
          ↓
    Put everything into context
          ↓
    Ask the LLM to reason
    

    Такі падход быстра сталкнуўся з проблемамі масштабавання.

    Болей стойкі патэрн выглядае так:

    Small amount of initial context
              ↓
    Agent identifies what it needs
              ↓
    Tool retrieves relevant information
              ↓
    Relevant information enters context
              ↓
    Agent continues
    

    У замест на тое, каб загадзя запрацаваць усе, што можа знадобіцца модэлю, агент запрашвае інфармацыю толькі тады, калі выявляе, што гэта даскледзяецца неабходна.

    Anthropic аднесла гэта да пераходу да працы з кантэкстам „якраз у час“ для сістэм агентаў.

    Гэта безпосерэдна зв’язана з MCP.

    MCP забезпечвае стандартызаваны шлях да зовнішнім можлівасцям, тады як сам агент вырашае колі запрашваць ўсё і самэ га, што запрашваць.

    Цыкл агента

    Калі вы з’едыняеце всі этыя элементы, загальная архітэктура стае набагато зрозумелей.

    Спрасаваная версія цыклу агента выглядае так:

                  ┌──────────────┐
                  │     User     │
                  └──────┬───────┘
                         ↓
                  ┌──────────────┐
                  │     LLM      │
                  └──────┬───────┘
                         ↓
                  Need a tool?
                    /       \
                  No         Yes
                  ↓           ↓
               Answer      Tool Call
                              ↓
                         Tool/MCP
                              ↓
                         Tool Result
                              │
                              └─────────┐
                                        ↓
                                       LLM
                                        │
                             ┌──────────┴──────────┐
                             ↓                     ↓
                          Continue              Answer
    

    Эты цыкл знаходзіцца ў цэнтры вялікай часткі сучасных агентных сістэм.

    Anthropic опісвае гэта чырвонымі простымі тэрмінамі: агент па сутнасці — гэта LLM, які вызывае інструменты ў цыкле, пры чым адзывы з арэны формуюць тое, што ён будзе рабіць далей.

    Сістэма, якая створваецца наваколо гэтага цыклу, можа стаць дужа складной, але основны механізм застаецца такім жа простым.

    А што з фрэймворкамі?

    Фрэймворкі такія як LangGraph можу зробіць стварэнне такіх сістэм болей лёгкім, задаючы структуру для працы.

    Протыма, існуе важлівая засторога, якую варта памяцаць.

    Рэкамендація компаніі Anthropic — разумець, што відбываецца пад фрэймворкам: первісныя запыты LLM, адзінкціі інструментаў, логіку керавання і адпаведныя адпаведзі, а не спрыяць фрэймворку як до чорнай скрынцы.

    Фрэймворк зазвычай адкрывае ўсё такое:

    Agent
     ├── State
     ├── Nodes
     ├── Tools
     ├── Routing
     └── Execution
    

    Але пад гэтым абстракцыяй рэальная механіка выглядае так:

    LLM
     ↓
    Messages
     ↓
    Tool calls
     ↓
    Tool execution
     ↓
    Tool results
     ↓
    LLM
    

    Розумеўшы гэты ніжнія роўень, фрэймворк стае набагато простым для аналізу, адтуды ўжо можна бачыць, што ён автаматызуе, а не проста павержацца тым, што ён работае.

    MCP не заменяе фрэймворкі агентаў

    Варта чыткаа зрозумець, што гэта разныя слоі сістэмы, а не конкуруючыя варыянты.

    Спрасцаваны стак можа выглядаць так:

    ┌─────────────────────────────┐
    │        User Interface       │
    ├─────────────────────────────┤
    │       Agent / Workflow      │
    ├─────────────────────────────┤
    │      LLM / Model API        │
    ├─────────────────────────────┤
    │        Tool Calling         │
    ├─────────────────────────────┤
    │             MCP             │
    ├─────────────────────────────┤
    │   External Tools / Systems  │
    └─────────────────────────────┘
    

    Фрамворк агента зазвычай караце такія элементы:

    • стан
    • тэкст рэалізацыі
    • маршрутызацыя
    • петлі
    • перапрыбуткі
    • экзекуцыя інструментаў

    MCP, з іншай боку, стандартызуе спосаб прыяўлення да званэйчых можлівасцей.

    Выклік інструмента дае модэлю механізм для запыту пра экзекуцыю якога-небудзь задання.

    Ні адна з гэтых трох падмены не ёсць для іншай.

    Калькі распашчаныя неправільныя уявленні

    "MCP — гэта модэль AI."

    Гэта няправда.

    MCP — гэта пратакол, больш нічога.

    У ёй няма можлівасці генеравацыі тэксту чырактваў на самай сабе.

    "MCP заменяе выклік функцый."

    Таксама няправда.

    На самай працо адбываецца так, што сервер MCP можа выклікваць інструменты, а праграма на базе AI затым выклікае гэтыя інструменты у мадэль праз яе існуючы механізм вікорыстання інструментаў.

    "LLM безпасоверхнева вызывае GitHub."

    Зазвычай, ні.

    Мадэль толькі стварае запіт на вікорыстання інструмента.

    Саме праграма і супакоўаная ёю інфраструктура інструментаў фактычна выкананяюць гэту операцыю.

    "Кожны сервер MCP патрэбуе Docker."

    Некалькі.

    Docker — толькі адна з можлівых способаў размешчэння сервера.

    MCP займаецца комунікацыяй і выклікваннем можлівасцэй, а не тым, як ўсё кантэйнеравана.

    "Сервер MCP — гэта агент AI."

    Не обавязкова.

    Сервер MCP можа проста выклікваць звычныя, дэтэрміністычныя операцыі, такія як:

    search()
    read()
    create()
    update()
    delete()
    

    "MCP падходзіць толькі для GitHub."

    Зусім не так.

    MCP быў створаны як універсальны протакол для з’ѐеднання аплікацыяў на базе ШЫ з зовнішнімі данымі і можлівасцямі. У пачатковай аанунсацыі компаніі Anthropic ужо згадвалася інтэграцыя з такімі сістэмамі, як GitHub, Slack, Google Drive, базы дадзеных і розныя сераверы для разработкі.

    Большая наука: інжынерыя агентаў — гэта не проста інжынерыя запросаў

    Можна сказаць, што гэта найзначнейшыя змены ў падходзе, якія выклікаюцца вівучэнням гэтага матыялу.

    Стварэнне практычна корыстных сістэм-агентаў — гэта не проста пытанне:

    Write a clever prompt
            ↓
    Use a powerful model
            ↓
    Get a smart agent
    

    У цьм працэсе задзіяўнае калькі разных інжынерых слоёў:

    Model
                   ↓
            Tool Selection
                   ↓
            Tool Definitions
                   ↓
            Tool Execution
                   ↓
            Context Management
                   ↓
              State / Memory
                   ↓
           Control / Guardrails
                   ↓
              Evaluation
    

    Самыя матэрыялы з інжынерых аспектаў, прадставленыя компаніей Anthropic, все больш акцэнтуе на шырокаму, на рэвэлі сістэм, падходзе да таго, што на самай працэ стварэння агента ўсё-такі трэба.

    Як прыклад, іхнія няўзабавнае даследжэння ў галузі ацэнкі агентаў сфокусавана на аналізе багатыяруснай поведэнцы, выкарыстоўвання інструментаў, змянах стану і адаптацыі з часам, а не на ацэнцы якосці выключна на адвароце створанага тэксту.

    Гэта яўляе сабою значна іншы падход да праектавання прыкладоў AI.

    Часць, якая мне найбольш цікавая

    Пераход, які тут мае значэнне, на самай працоў не ёсьць:

    Chatbot → Agent
    

    Болей тачна гэта:

    LLM
     ↓
    LLM + Tools
     ↓
    LLM + Tools + External Context
     ↓
    LLM + Tools + Context + Control Loop
     ↓
    Agentic System
    

    MCP дапамагае ў гэтым прыросце, задаючы прыкладам AI стандартызаваны спосаб даступу да зовнішняях можлівасцей.

    Мадэль забезпечвае інтэлект.

    Прыклад забезпечвае кантроль.

    Інструменты забезпечваюць дзеяння.

    Зовнішнія сістэмы забезпечваюць інформацыю і можлівасці рэальнага свету.

    MCP забезпечвае стандартызаваныя з’ёднальныя шары, якія спаўнаюць прыклады AI з гэтымі можлівасцямі.

    Мая ныячая ментальная мадэль

    Пасля анаізу механізма вызывання інструментаў, концэпцыі MCP і шырэйшых параграфаў Anthropic пра агентныя сістэмы, гэтае ёсць самая простая архітэктурная карціна, якая паказвае, як усе гэтыя элементы складаюцца ў цэласць:

    USER
                               │
                               ↓
                        ┌─────────────┐
                        │     LLM     │
                        │             │
                        │ Reasoning   │
                        │ Decision    │
                        └──────┬──────┘
                               │
                        Tool request
                               │
                               ↓
                      ┌─────────────────┐
                      │ Agent Runtime   │
                      │                 │
                      │ State           │
                      │ Control Flow    │
                      │ Tool Execution  │
                      └────────┬────────┘
                               │
                               ↓
                         MCP / Tools
                               │
                  ┌────────────┼────────────┐
                  ↓            ↓            ↓
               GitHub       Database      Files
                  │            │            │
                  └────────────┼────────────┘
                               ↓
                        Tool Results
                               │
                               ↓
                              LLM
                               │
                               ↓
                             USER
    

    Сама мадэль не ёсць цэлым агентам.

    Таксама не ёсць і адзін інструмент.

    Таксама не ёсць і MCP.

    Тое, што на самай працоўцы выступае як „агент“, ствараецца за дапамогай сістэмы, якая абрамляе мадэль – той часткі, якая дазволяе ёй рассуждаваць, выконваць дзеяння, спазірваць наследкі і продаваць працу над адметай.

    Заключны вывод

    Калі вы плануеце ствараць AI-агенты, чатыры панявы ўцімоцна варта выучыць:

    1. Вызывання інструментаў

    Мадэль можа прабачыць прыкладнаму програме выканаць адзін конкрэтны інструмент.

    2. Цыклі агента

    Сістэма можа павтараючыся рассуждаваць пра сітуацыю, дзеяць на ёй, спазірваць рэзультат і продаваць працу далей.

    3. MCP

    Стандартызаваны пратак для з’яўлення звязку між аплікацыямі на базе AI і зовнішнімі інструментамі, рэсурсамі і кантэкстам.

    4. Інжынерыя інструментаў

    Якосць вашых інструментаў, ўпісы пра яе, параметры, кантэкст, які яны вяртаюць, а таксама ступень ўжоўважнага адгукі да яных можа значна паўлінуць канкрэтную эфектывнасць дзеяння агента.

    Мабыць, найценнейшы урок, які можна вывучыць з практыкі інжынерыі Anthropic, ёсць наступны:

    Не дадавайце сложнасці проста таму, што маглі б гэта зрабіць.

    Пачніце з самай простой архітэктуры, якая можа рашыць стоячую перад вамі задачу. Адключайце рабочыя практыкі, дадатковыя агенты, ўсё больш інструментаў, памяць, серверы MCP і іншыя складовы толькі тады, калі яны прыносяць конкрэтную параду.

    Метай ніколі не было стварыць магчыма самы сложны агент.

    Метай ёсць стварыць сістэму, якая надзеянна выканае задачу.