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

RAG проты MCP: Калькі з іх вашаму прыкладку AI насправды патрабуецца

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

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

Крыніцы: RAG vs MCP: A Complete Guide for Developers in 2026

Людзі частае запытваюцца, чы рэкламуецца ім RAG чы MCP, нібыта гэтыя два варыянты былі супернікамі на меню. Аднак гэта не так, і калі апрануцца прынцыпы кожнага з іх, выбір стае практычна механічным. Ось кароткая версія.

  • RAG сапраўджае модэль у ведомасці, якой тая ніколі не бачыла пад час навчання, штоўнаючы стосунакавы тэкст і размешчаючы яго ў запытанні. Модэль яго чытае.
  • MCP — стандартны пратакол, праз які модэль можа вызываць інструменты і дзеяць у сістэмах. У гэтым случае модэль выконвае якісь задачы.
  • Просты спосаб раздзеліць іх: RAG апрануецца таму, што маюць вашы дакументы, а MCP — таму, што можаць вашы сістэмы.
  • Гэтыя тэхнікі не конкуруюць. RAG — гэта тэхніка, а MCP — пратакол, таму запытанне «RAG чы MCP?» падобнае да запытання «кэшаванне чы HTTP?»
  • Усе, што можа змяніцца, такія як цены, запасы або залішкі на рахунку, не падходзяць для RAG. База дадзеных у вектарнай форме вяртае тое, што было індэксаванае, а не тое, што ўтвараецца зараз.
  • Вялікі і пераважна статычны купа тэксту, такія як дасягненні, даговоры або правілы, ўтратачны для обслужвання толькі праз MCP. Цэх значыць неабходнасць вызываць API-запыты для запытанняў, на якія добра створаны індэкс адпавядае мгновэна.
  • Большасць прымэтных сістэм у 2026 годзе соўстаюць з абоўсюды: MCP для запрашэння свежых дадзеных і выканання дзеянняў, RAG для закрэплення модэлю ў стабільных домэнных знаннях.
  • Возьмім запытанне, якое здаецца простым, але такім не ёсць: які сёння коефіцыент P/E у Apple? Якшто стварыць яго з вярынкай RAG, рэзультатам будзе впэўнены, але некарэктны адпаведзенне. Якшто стварыць яго з вярынкай MCP, ён будзе правільным.

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

    Што такое RAG

    Этае абвяшчэнне пазначае Retrieval-Augmented Generation. Без спецыяльнай тэрміналогіі гэта тры крокі: знаходзіць фрагменты тэксту, якія ў большай меры стосуюцца запытання корыстніка, дадаць інфармацыю да запытання, ужоўвавшы гэтыя фрагменты, а потым стварыць адпаведны адказ на адвярнутым у такі спосаб кантэксце.

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

    Гэта і ёсь RAG. Вагі мадэлі ніколі не зміняюцца, таму што рэдагуецца толькі запрос, а не сама мадэль.

    Чаму тут патрабуецца база дадзеных вектараў

    Складным ёсцца першы крок — пошук правільных стораніц. Пошук за ключавымі словамі часта не дапамагае, таму што запыткі людзей рэдка калі включаюць тыя ж словы, што і у выхідным матэрыяле. Хтось запытаецца пра «компаніі, якія прыгараюць грошы», а ў дасягліве напісана «негатыўны чысты дохід»: няма спаканых слоў, але значэнні ідэнтычныя.

    Эмбеддынгі рашаюць гэтыя проблемы. Такая мадэль ператварае тэкст у вектар — спіс цяжэй, які розмешчаецца так, каб схожыя значэнні знаходзіліся поблізу. «Компаніі, якія прыгараюць грошы» і «негатыўны чысты дохід» стаюць суседзямі, нават не выкорыстоўваючы спаканую лексыку. База дадзеных вектараў зберагае гэтыя вектары і шыбка адпавядае на запыт: што знаходзіцца поблізу гэтага?

    RAG у кодзе

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

    from openai import OpenAI
    client = OpenAI()
    # Your knowledge base, already chunked.
    DOCUMENTS = [
        "The P/E ratio divides share price by earnings per share. "
        "When earnings are negative, P/E is undefined and usually shown as N/A.",
        "EV/EBITDA is often preferred over P/E for capital-intensive companies "
        "because it is unaffected by capital structure and depreciation policy.",
        "The PEG ratio adjusts P/E by the expected earnings growth rate. "
        "A PEG below 1.0 is traditionally read as undervalued.",
    ]
    
    def embed(text: str) -> list[float]:
        """Turn text into a vector."""
        response = client.embeddings.create(
            model="text-embedding-3-small",
            input=text,
        )
        return response.data[0].embedding
    
    def cosine_similarity(a: list[float], b: list[float]) -> float:
        """How close are two vectors? 1.0 means identical direction."""
        dot = sum(x * y for x, y in zip(a, b))
        norm_a = sum(x * x for x in a) ** 0.5
        norm_b = sum(y * y for y in b) ** 0.5
        return dot / (norm_a * norm_b)
    
    # Index once, reuse many times. In production this lives in a vector DB.
    INDEX = [(doc, embed(doc)) for doc in DOCUMENTS]
    
    def retrieve(question: str, k: int = 2) -> list[str]:
        """Step 1: find the most relevant chunks."""
        q_vector = embed(question)
        scored = [
            (cosine_similarity(q_vector, vector), doc)
            for doc, vector in INDEX
        ]
        scored.sort(reverse=True)
        return [doc for _, doc in scored[:k]]
    
    def answer(question: str) -> str:
        """Steps 2 and 3: augment the prompt, then generate."""
        context = "\n\n".join(retrieve(question))
        prompt = (
            f"Answer using only the context below.\n\n"
            f"Context:\n{context}\n\n"
            f"Question: {question}"
        )
        response = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=[{"role": "user", "content": prompt}],
        )
        return response.choices[0].message.content
    
    print(answer("What do I use when a company has negative earnings?"))
    

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

    Таксама паглядзіце на „стаканаў“. RAG можа вярнуць толькі тое, што было індэксавана. Калі коефіцыент P/E компаніі Apple змяніўся сёння зранку, а індэкс быў створаны месяць тыму, RAG будзе цітаваць цыфру з месяца тыму і выглядаць абсалютна впэўненаю ў яе. Гэтае обмежэнне — галоўная прычына існавання MCP.

    Што такое MCP

    MCP, Model Context Protocol, быў прэдставлены компаніяй Anthropic у лістападзе 2024 года. Па даўжынкам, у грудзі 2025 года ён перайшоў пад кераванне Agentic AI Foundation, праекта Linux Foundation, таму ён цяпер падтрымліваецца ў Claude, ChatGPT, Gemini, Cursor і VS Code, і не ўжо ёсць прыватным фарматам адзінаго вэндора.

    Гэта стандарт для з’яўлення AI-модэляў з інструментамі. Гэта не тэхніка, а протакол, які належыць да той жа сям’і, што і HTTP чы SQL.

    Даўжыню USB-C не было, кожны прыстрой меў свой саўстанні канектар, таму панзінадцаць прыстроў значылі панзінадцаць несумісных кабелаў. АІ-інструменты выглядалі такімі ж да запуску MCP. Прыяўленне 10 АІ-зялоў да 100 інструментоў могла значыць неабходнасць стварэння аж 1 000 індывідуальных інтэграцый, кожная з якіх была б унікальной і выкарыстоўвалася окрэма. MCP скарацоўвае гэта да аднаго фармата. Прадаўцу інструментаў дапамагае рэалізаваць пратакол адназначна, і кожны сумісны кліент можа яго выкарыстоўваць, тады як АІ-зяле рэалізуе кліентскую частку адназначна і можа з’яўляцца ў всіх прыладах.

    Што адкрывае сервер MCP

    • Інструменты — гэта функцыі, якія можна вызваць. Выкліканне чаго-небудзь у стыле get_stock_price("AAPL.US") запускае рэальны код і вяртае рэальны рэзультат.
    • Рэсурсы — гэта даны, якія модэль можа чытаць, такія як дакументацыя або змест файлаў.
  • Прампты — гэта шаблоны, якія можна вікорыстоўваць знову, і якія можаюць з’едынаць калькольнікасьць інструментаў у адну цэлую рабочую схему.
  • MCP у кодзе

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

    from mcp.server.fastmcp import FastMCP
    import httpx
    mcp = FastMCP("finance-tools")
    
    @mcp.tool()
    def get_current_price(ticker: str) -> dict:
        """Get the latest price for a stock ticker.
        The docstring matters more than you'd think. It is what the
        model reads to decide whether to call this tool at all.
        """
        response = httpx.get(f"https://api.example.com/quote/{ticker}")
        return response.json()
    
    @mcp.tool()
    def compare_tickers(ticker_a: str, ticker_b: str) -> dict:
        """Compare two tickers on price, market cap and P/E ratio."""
        return {
            "a": get_current_price(ticker_a),
            "b": get_current_price(ticker_b),
        }
    
    if __name__ == "__main__":
        mcp.run()
    

    Адзін каманды зарэгіструе яго ў Claude Code:

    claude mcp add finance -- python /path/to/server.py
    

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

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

    Практычная разліка

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

    Правілле можа быць выражана ў адной фразе. Адказ у дасягліве? RAG. Адказ у сістэме? MCP.

    Прабуйце гэта на рэальных запытаннях. „Што значыць калячык PEG?“ знаходзіцца ў дасягліве, таму RAG. „Па якой цэне торгуецца Microsoft?“ знаходзіцца ў сістэме, таму MCP. „Заказаць“ або „падаць гэты атлас“ — гэта дзеянне, таму MCP, веда ўзяцце дасяглів не можа дзеяць над чым-небудзь. „Што сказана ў нашай політыцы вярнення грошаў пра адкрытыя айтэмы?“ — гэта скупка статычнага тэксту, таму RAG.

    Чаму людзі продовжаюць спытацца, чы розныя гэтыя падходы ёсць однаковыя

    Эта плутанне мае адну прычыну. Сервер MCP можа публікуваць дасяглівы як рэсурс, і гэта нагадвае процэс узяцця дасяглів. Што іх розлічвае, — гэта размер і механізм. Рэсурсы паўтараюцца ў мерыяному наборы дасяглівых, якія модэль можа знайсці па ID, тады калі RAG паўтараецца ў тыячах дасяглівых, дзе семантычныя рангіраванняя мусяюць выявіць тры наіболей рэлевантныя.

    Ўжыя таксонаміі таксама можна саюзаваць. Унутры сервера MCP можна запускаць цэлы канал RAG і пракставляць яго модэлю як інструмент search_knowledge_base. Модэль пасля таго вызывае інструмент, які ўособлівае MCP, а гэты інструмент выконвае працэс пошуку, які ўособлівае RAG.

    Адны асістэнт, створаны трохма способамі

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

    Версія А: толькі RAG

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

    # Building a knowledge base of financial concepts
    CORPUS = [
        "Market capitalization equals share price multiplied by shares outstanding.",
        "The P/E ratio compares share price to earnings per share.",
        "Free cash flow is operating cash flow minus capital expenditures.",
        "A dividend yield above 6% often signals either a falling share price "
        "or an unsustainable payout ratio.",
        # ...plus a few thousand more chunks
    ]
    

    Пасля індэксавання выклікаецца канцэптуальны вопыт:

    # Index them, then:
    answer("Explain what a high dividend yield might indicate")
    

    Этот прынцып добрацо працуе. Канцэпцыя не зменяецца з часам, адказ знаходзіцца ў корпусе, і сістэма аднаходжэння яго выявляе яго. Далей — жывой запыт:

    answer("What is Apple's current dividend yield?")
    

    Гэта не працуе, і то самым худшым спосабам. Мадэль знаходзіць фрагмент, які пояснюе, што такое дохадка ад дывідэнтаў, памятае, што падчас навчання абрала якіясь цыфры пра Apple, і выдае ўрок падобны да "Дохадка ад дывідэнтаў Apple становіць прыблізна 0,5%." Такі адказ выглядае впэўнена і адформатавана, але можа быць застарэлым на калькі месцаў, пры чым нічога ў сістэме не паводзіцца на гэта. Гэта той спосаб неяксамоць RAG, якія людзі недаўаюць значэння: ён не стварае памылак, а вяртае плавны, застарэлы тэкст.

    Версія B: толькі MCP

    У гэтым случае мадэль працуе з актуальнымі дадзеннямі.

    # EODHD publishes two endpoints. v2 uses OAuth, v1 uses an API key.
    claude mcp add --transport http eodhd https://mcp.eodhd.com/v2/mcp
    

    Як толькі задаецца зноў тае ж пытанне, яно прымае іншы шлях. Мадэль вызывае resolve_ticker("Apple"), ў рэзультаце чаго отрымае AAPL.US, а пасля вызывае інструмент для аналізу фундаментальных паказнікаў, каб атрымаць сучасныя даны. Цяму чыслу можна даверыць, адколькі яго было запрашана, а не запам’ятавана.

    Два варыянты дыяграматыкі на тым серверэ варыяцьянаць дакладна расследаваць, незалежна ад таго, які прадаўца вы выберазе, адколькі яны рашаюць проблэмы, з якімі сталкаецца кожная сістэма вызываў інструментаў. Першыя — гэта інструменты для расшыфравкі тыкераў. Карыстувальнікі гавораць "Apple", а API-і выкарыстоўваюць AAPL.US; карыстувальнікі гавораць "Deutsche Bank", а API-і выкарыстоўваюць DBK.XETRA. Расшыфравач, які справляецца з іменамі, частымі тыкерамі і ISIN-амі, а таксама праставляе альтэрнатывы, калі компанія торгуецца на кальколькіх біржах, узамен на мовчазнае здогадванне, усувае можлівасць абыякавасці. Большасць працоўных сутыканняў у фінансовых агентах выходзіць самэ працэсе вызываў інструментаў.

    Паўтора, дакументацыя ўтрымвана як рычасці. Сервер, як паведамляецца, развозі падарадзіце 100 сторанак сваёй сабеўтароўскай дакументацыі як рычасці MCP, тады модэль можа пераканацца, якія параметры прыймае канцэнтрык, не выкорыстоўваючы вызов API. Гэта цікава з архітэктурнай точкі зору: маленькі патэрн у фармаце RAG, які знаходзіцца ўнутрь сервера MCP, дзе статычныя матэрыялы служаць рычасцямі, а жывыя даны — інструментамі, кожны з якіх выконвае тое, у чым ён найкрашчы.

    Версія C: і тое, і іншэ, што насправды развозіце

    Аднальна, жадная з версіяў не стварае задовольніцельнага продукту. Версія на адной базе RAG не можа падаць сучасную цэну, а версія на базе MCP марнуе вызов API, адказваючы на пытанні пра коефіцыент P/E. Рэальны дызайн направляе кожнае пытанне да правага падсістэмы.

    def route(question: str) -> str:
        """Decide which subsystem answers this question."""
    # Signals that the question is about live state
        live_signals = ["current", "today", "now", "latest", "price", "quote"]
        if any(signal in question.lower() for signal in live_signals):
            return "mcp"      # fetch it
        return "rag"          # look it up
    

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

    У практыцы все выглядае так:

    • „Што мерыць калячык P/E?“ — направляецца да RAG: мгновенна і практычна безкоштовна.
    • „Калькуючы калячык P/E Microsoft зараз?“ — направляецца да MCP: жывыя даны, за адну выкліканню API.
    • „Чы роўень калячыка P/E Microsoft высокі для яго сектара?“ — патрэбны і RAG, і MCP: MCP дае цыфру, а RAG — кантэкст сектара, які яе інтэрпрэтуе.

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

    Порэвананні, якія плутаюцца з гэтым

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

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

    MCP проты агента. Яны функцыонуюць на разных рэвэлях, таму іх парабяранне ўскладненне з точкі зору катэгарыяў. Агент — гэта і частка, якая разумее, плануе і прымеяе рашэнні; MCP — гэта яго спосаб выходу у зовнішній свет. Без MCP агент можа думаць, але не можа дзеяць, а сервер MCP без агента не мае корыстувачаў. Claude Code ў гэтым случае ёсць агентам, а серверы MCP выступаюць як яго «раны».

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

    Выбір тэхналогій

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

    Для часткі каналу RAG вам патрэбна база дадзеных вектараў. Qdrant можа быць адмаўляваны самастойна ў Docker і поставляе офіцыйны сервер MCP, таму да аднаго індэксу можна прайсці за дапамогою скрыпты чыста з Claude Code. Chroma — гэта найпростышы варыянт, які запускаецца за калькі хвілін без неабходнасці інфраструктуры. Weaviate і Pinecone дапамагаюць у выборы серйозных рашэнняў, пры чым Pinecone ўсё керуецца за ўсё, што падходзіць командам, якія не хочуць самі нічога адмаўляваць. Для оркестрацыі LlamaIndex застаецца найболей спецыялізаваным фрэймворкам для задачы выкарыстоўвання і індэксавання дадзеных, тады калі LangChain ёсць болей шырокі і масіўны.

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

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

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

    Частая адміністрацыя

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

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

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

    Чы роўнер MCP сервера і API? Зазвычай ён ўтварае шар на базе API. API — гэта сама можлівасць, а MCP — стандартны спосаб для модэля аднайсці і вызваць яе. Распрацоўшчыкі чытаюць дасягі API пад час стварэння; модэлі чытаюць апісаціі інструментаў MCP пад час працы.

    Чы рэклікуецца MCP вектарны базе дадзеных? Не. У MCP няма саеўнага компаненту. Вектарная база дадзеных выкарыстоўваецца толькі тады, калі інструмент, які вы адкрываеце, выконвае сэмантычны пошук; у такім случае яна знаходзіцца за інструментам, а не па яго боку.

    Можа сервер MCP выконваць RAG унутрана? Так, і гэта ўзнакомы патэрн у працэсе вырабоцтва. Створыце звычную схему саеўвання дадзеных і адкрываеце яе як адны інструмент, напрыклад search_internal_docs. Мадэль вызывае адны інструмент, а за яго спіном выконваюцца задачы з утворэння эмбедынга і вектарнага пошуку.

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

    Як MCP адаптуюцца да A2A? Яны рашуюць разныя проблемы. MCP спаўнае модэль з інструментамі, а A2A (Agent-to-Agent) дазваляе агентам размовляць адзін з другім. Адзін агент можа выклікаты базу дадзенаў праз MCP і перадаць заведамасці спецыялісту-агенту праз A2A, так што яны дапамагаюць адзін другаму, а не конкуруюць.

    Як можна быстра зробіць выбор? Уявіце, што запіт павінен быць выкананы знову за гадзіну. Калі адпаведзь будзе іншая, значы гэта жывы стан і трэба вікорыстаць MCP. Калі ні, значы гэта стабільныя заведамасці і трэба вікорыстаць RAG. Потым трэба запытацца, чы хоча ўжоць, каб што-небудзь адбылася, бо ў такім случае MCP неабходны ў будзь-якім разе: RAG не можа дзеяць.

    Чаму пануе плутанне

    Этыя парадыная продовжваецца, таму што обе тэхналогіі сталі популярныя прыблізна адночасова, і абякі ўпомінаюцца за дапамою фразы «дае вашай ШЫ доступ да вашых дадзэнняў». Гэтая фраза мае занадта вялікую значыць. Магчымасць чытаць напісанае — гэта іншая проблема, чым магчымасць дзеяць усерэдзіні вашых сістэм. Калі правільна ўзрэшэніць гэтыя два аспекты, архітэктура практычна сама сабе ствараецца.

    Супаўзяныя матэрыялы

    • Layer by Layer: Designing a Real RAG Retrieval Pipeline for AI Agents — Планаванне каналу RAG з вікорыстаннем контрактов SourceDocument і DocumentChunk, чанкавання, імбеддынгу і ChromaDB, усё гэта працюе праз RetrievalService, які падтрымлівае стабільнасць агента.
  • Экспертныя методы RAG: HyDE, стысненне дадзейнаў, самастойныя запытанні і агентныя рабочыя практыкі — Чатыры прыглыбленыя тэхнікі выкарыстоўвання дадзейнаў для практычнага застосоўвання RAG у Haystack: HyDE, стысненне дадзейнаў у кантэксце, самастойныя запытанні і агентныя рабочыя практыкі, а таксама інструкцыі пра тое, калі які з іх выкарыстоўваць.