![]()
Predchádzajúca lekcia škálovala agentov dole do cloudu. Táto ich prináša hore na jedno zariadenie. Na konci budete mať fungujúceho inžinierskeho asistenta, ktorý rozumuje, volá nástroje, číta vaše súbory a vyhľadáva vo vašej dokumentácii — bez jediného volania do cloudu na inferenciu.
Prečo by ste to chceli? Tri dôvody, ktoré sa často objavujú v skutočnej inžinierskej práci:
Podmienkou je, že vymieňate frontier cloudový model za malý jazykový model (SLM) bežiaci na vašom CPU, GPU alebo NPU. Táto lekcia je o budovaní agentov, ktorí sú dobrí v rámci týchto obmedzení, namiesto predstierania, že obmedzenia neexistujú.
Táto lekcia pokrýva:
Po dokončení tejto lekcie budete vedieť:
Táto lekcia predpokladá, že ste dokončili predchádzajúce lekcie a ste oboznámení s:
Tiež budete potrebovať:
requirements.txt, plus foundry-local-sdk, openai a chromadb pre túto lekciu.Frontier cloudový model má stovky miliárd parametrov a dátové centrum za sebou. SLM má pár miliárd parametrov a musí sa zmestiť do RAM vášho laptopu. Tento rozdiel nastavuje jasné očakávania.
SLMy sú dobré v:
SLMy sú slabšie v:
Víťazná stratégia pre lokálnych agentov je teda: nechajte SLM orchestráciu a ťažké úlohy prenechajte nástrojom. Model nemusí poznať váš kód — musí vedieť, kedy volať read_file a search_docs. To priamo využíva silné stránky SLM.
flowchart LR
U[Vývojár] --> A[Lokálny SLM agent]
A -->|rozhoduje, ktorý nástroj| T1[read_file]
A -->|rozhoduje, ktorý nástroj| T2[search_docs RAG]
A -->|rozhoduje, ktorý nástroj| T3[analyze_code]
T1 --> A
T2 --> A
T3 --> A
A --> R[Odpoveď, úplne na zariadení]
Microsoft Foundry Local je ľahký runtime, ktorý sťahuje, spravuje a obsluhuje modely úplne lokálne na vašom zariadení. Jeho najdôležitejšou funkciou pre nás je, že vystavuje HTTP endpoint kompatibilný s OpenAI — čo znamená, že OpenAI SDK a klient OpenAI v Microsoft Agent Framework fungujú s ním zmenou len base_url. Všetko, čo ste sa naučili o tvorbe agentov, sa prenáša priamo; len endpoint sa presúva z cloudu na localhost.
Foundry Local tiež automaticky vyberie najvhodnejšiu verziu modelu pre váš hardvér — zostavu pre CPU, CUDA/GPU alebo NPU — takže nemusíte ručne optimalizovať pre každé zariadenie.
Nainštalujte Foundry Local (pozrite si dokumentáciu pre váš OS) a potom overte jeho funkčnosť:
# Inštalovať (napríklad; postupujte podľa dokumentácie pre vašu platformu)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Stiahnite a spustite model Qwen, potom spustite lokálnu službu
foundry model run qwen2.5-7b-instruct
foundry service status
Keď je služba spustená, máte lokálny endpoint kompatibilný s OpenAI (typicky http://localhost:PORT/v1). Notebook používa foundry-local-sdk na automatické zistenie endpointu, takže nemusíte manuálne zadávať port.
Agent je agent iba vtedy, ak môže volať nástroje. Mnoho SLM dokáže chatovať, ale produkuje nespoľahlivé, chybné volania nástrojov. Qwen modely sú trénované na volanie funkcií a konzistentne generujú správne štruktúry volaní nástrojov — čo presne robí lokálny chat model lokálnym agentom.
Priebeh je štandardný nástrojový cyklus, ktorý už poznáte, len beží lokálne:
sequenceDiagram
participant U as Používateľ
participant A as Qwen Agent (lokálny)
participant T as Lokálny nástroj
U->>A: „Čo robí auth.py?“
A->>A: Rozhodni: zavolať read_file
A->>T: read_file("auth.py")
T-->>A: obsah súboru
A->>A: Analyzuj obsah
A-->>U: Vysvetlenie
Vyhľadávanie v dokumentácii je miesto, kde lokálni agenti dokazujú svoju hodnotu. Namiesto toho, aby ste dúfali, že SLM si zapamätal dokumentáciu vášho rámca, vložíte ju do lokálnej vektorovej databázy a necháte agenta vybrať relevantné časti na požiadanie.
Používame Chroma, vstavnú vektorovú databázu, ktorá beží v procese bez potreby servera. Rúrka je úplne lokálna: lokálny model na vkladanie → lokálne vektory → lokálne vyhľadávanie → lokálny SLM.
flowchart TB
D[Vaše dokumenty / kód] --> E[Lokálny model vkladania]
E --> V[(Chroma vektorová databáza - na disku)]
Q[Dotaz agenta] --> QE[Lokálne vložiť dotaz]
QE --> V
V -->|top-k časti| A[Agent Qwen]
A --> Ans[Podložená odpoveď]
Toto je rovnaký vzor Agentic RAG z Lekcie 5 — jediná zmena je, že všetky komponenty bežia na vašom zariadení.
MCP je transport, nie cloudová služba. MCP server môže bežať ako lokálny proces na stdio, vystavujúc nástroje agentovi podľa štandardného protokolu. To vám umožňuje opätovne používať rastúci ekosystém MCP serverov — prístup k súborovému systému, git operácie, databázové dopyty — úplne offline.
Bezpečnostný prístup je odlišný od cloudu, ale nie absentný: lokálny MCP server beží s právami vášho používateľa, preto mu obmedzte prístup (napríklad na adresár projektu, nie celý domovský priečinok) a považujte jeho výstupy za vstupy na overenie.
Lokálny prístup neznamená iba lokálny. Zrelé systémy smerujú podľa citlivosti a náročnosti:
| Situácia | Kde beží |
|---|---|
| Citlivý kód / dáta alebo offline | Lokálny SLM |
| Jednoduchá, ohraničená úloha | Lokálny SLM (lacný, rýchly) |
| Náročné viackrokové dedukcie na necitlivých dátach | Cloud model |
| Všetko počas výpadku | Lokálny SLM (pohotové zníženie kvality) |
Toto odzrkadľuje myšlienku smerovania modelov z Lekcie 16 — okrem toho, že jeden z „modelov“ je teraz vaše zariadenie. Robustný návrh sa v prípade nedostupnosti cloudu vráti k lokálnemu modelu, takže agent znižuje kvalitu namiesto úplnej poruchy.
flowchart LR
Q[Žiadosť] --> S{Citlivé alebo offline?}
S -->|áno| L[Lokálny SLM]
S -->|nie| C{Vyžaduje hlboké uvažovanie?}
C -->|nie| L
C -->|áno| Cloud[Model v cloude]
L --> Out[Odpoveď]
Cloud --> Out
Otvorte code_samples/17-local-agent-foundry-local.ipynb a prejdite si ju. Postavíte lokálneho inžinierskeho asistenta, ktorý beží úplne na vašom zariadení a dokáže:
V žiadnom okamihu sa nevyužíva cloudová inferencia.
Asistent sa pripojí k Foundry Local cez endpoint kompatibilný s OpenAI, takže kód agenta vyzerá takmer rovnako ako v cloudových lekciách — mení sa iba klient:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# Foundry Local nájde/stiahne model a poskytne nám lokálny endpoint.
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # api_key je lokálny zástupný symbol
Nástroje sú bežné Python funkcie obmedzené na adresár projektu:
def read_file(path: str) -> str:
\"\"\"Read a file, but only inside the sandboxed project directory.\"\"\"
full = (PROJECT_ROOT / path).resolve()
if PROJECT_ROOT not in full.parents and full != PROJECT_ROOT:
return \"Access denied: path is outside the project directory.\"
return full.read_text(encoding=\"utf-8\")
Všimnite si kontrolu pieskoviska — aj lokálne je nástroj, ktorý číta ľubovoľné cesty, zraniteľnosťou. Notebook udržiava všetky nástroje obmedzené na jeden koreňový priečinok projektu.
Otestujte svoje pochopenie predtým, než prejdete na zadanie.
1. Uveďte dva konkrétne dôvody, prečo spustiť agenta lokálne namiesto v cloude.
2. Aké je odporúčané rozdelenie práce medzi SLM a jeho nástrojmi v lokálnom agentovi a prečo?
3. Čo umožňuje opätovné použitie cloudového agent kódu s Foundry Local?
4. Prečo špeciálne používame Qwen model na volanie funkcií namiesto hocijakého SLM?
5. Ktoré komponenty v lokálnom RAG pipeline bežia na zariadení?
6. Lokálny MCP server beží na vašom zariadení. Znamená to automaticky, že je bezpečný? Aké opatrenia by ste mali urobiť?
7. Popíšte rozumné pravidlo hybridného smerovania, ktoré zahŕňa lokálny model.
8. Aká je realistická minimálna hodnota RAM pre spustenie lokálneho agenta v tejto lekcii a čo získate s väčšou RAM?
Rozšírte lokálneho inžinierskeho asistenta do lokálneho recenzenta dokumentácie pre malý projekt podľa vašej voľby (ak chcete, použite niektorý z priečinkov lekcií tohto repozitára).
Vaša odovzdávka by mala:
Pridať nástroj find_todos, ktorý prehľadá projekt a vráti komentáre TODO/FIXME spolu s názvom súboru a číslom riadku — s rovnakou kontrolou pieskoviska ako read_file.
Potom napíšte krátky odsek o tom, čo by ste presunuli do cloudu a čo by ste ponechali lokálne pre tohto recenzenta a prečo. Hodnotí sa, či sú lokálne komponenty správne prepojené a či je vaša hybridná úvaha správna — nie kvalita modelu.
V tejto lekcii ste vytvorili agenta, ktorý beží úplne na vašom vlastnom zariadení:
Týmto sa dokončuje implementačná cesta: Lekcia 16 rozširovala agentov do Microsoft Foundry, a táto lekcia ich zmenšila na jedno pracovné stanovište. Nasledujúca lekcia sa zameriava na zabezpečenie nasadených agentov.
Nasadenie rozšíriteľných agentov
Vyhlásenie o zodpovednosti: Tento dokument bol preložený pomocou AI prekladateľskej služby Co-op Translator. Hoci sa snažíme o presnosť, vezmite prosím na vedomie, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho natívnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.