![]()
Az előző lecke az ügynököket a felhőbe nagyította fel. Ez lehozta őket egyetlen gépre. A végére lesz egy működő mérnöki asszisztensed, amely érvel, eszközöket hív, olvassa a fájljaidat, és keres a dokumentációdban — egyetlen felhőalapú lekérés nélkül.
Miért akarhatod ezt? Három gyakran felmerülő ok a valódi mérnöki munkában:
A buktató, hogy egy élvonalbeli felhőmodellt cserélsz le egy Kis Nyelvű Modellre (SLM), amely a CPU-don, GPU-don vagy NPU-don fut. Ez a lecke arról szól, hogyan lehet jó ügynököket építeni ezen korlátokon belül, ahelyett, hogy azt tennénk, mintha a korlát nem létezne.
Ez a lecke az alábbiakról szól:
A lecke végére tudni fogod, hogyan kell:
Ez a lecke feltételezi, hogy az előző leckéket elvégezted és kényelmes vagy:
Emellett szükséged lesz:
requirements.txt fájljában lévő csomagok, plusz foundry-local-sdk, openai, és chromadb ehhez a leckéhez.Egy élvonalbeli felhőmodell több száz milliárd paraméterrel és adatközponttal rendelkezik mögötte. Egy SLM néhány milliárd paraméterű és bele kell férnie a laptopod RAM-jába. Ez a különbség világos elvárásokat állít.
Az SLM-ek jók:
Az SLM-ek gyengék:
A helyi ügynökök nyerő stratégiája ezért: az SLM irányítson, az eszközök végezzék a nehéz munkát. A modellnek nem kell ismernie a kódbázisod — tudnia kell, mikor hívja a read_file és search_docs funkciókat. Ez közvetlenül az SLM erejére játszik.
flowchart LR
U[Fejlesztő] --> A[Helyi SLM Ügynök]
A -->|eldönti, melyik eszköz| T1[fájl_olvasás]
A -->|eldönti, melyik eszköz| T2[dokumentumok_keresése RAG]
A -->|eldönti, melyik eszköz| T3[kód_elemzés]
T1 --> A
T2 --> A
T3 --> A
A --> R[Válasz, teljesen eszközön belül]
A Microsoft Foundry Local egy könnyű futtatókörnyezet, amely a modelleket teljesen a gépeden tölti le, kezeli és szolgáltatja. Számunkra a legfontosabb jellemzője, hogy egy OpenAI-kompatibilis HTTP végpontot tesz elérhetővé — ami azt jelenti, hogy az OpenAI SDK és a Microsoft Agent Framework OpenAI kliens csak a base_url megváltoztatásával képes vele működni. Amit az ügynökök építéséről tanultál, az mind átvihető; csak a végpont költözik a felhőből a localhost-ra.
A Foundry Local automatikusan kiválasztja a legjobb buildet a hardveredhez — CPU-s, CUDA/GPU-s vagy NPU-s buildet — így nem kell kézzel optimalizálnod gépenként.
Telepítsd a Foundry Local-t (lásd az adott operációs rendszerre szóló dokumentációt), majd ellenőrizd, hogy működik:
# Telepítés (példa; kövesd a dokumentációt a platformodra vonatkozóan)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Tölts le és futtass egy Qwen modellt, majd indítsd el a helyi szolgáltatást
foundry model run qwen2.5-7b-instruct
foundry service status
Ha a szolgáltatás fut, már van egy helyi, OpenAI-kompatibilis végpontod (általában http://localhost:PORT/v1). A jegyzetfüzet a foundry-local-sdk segítségével automatikusan felfedezi a végpontot, így nem kell keménykódolnod a portot.
Ügynök csak akkor ügynök, ha képes eszközöket hívni. Sok SLM tud csevegni, de megbízhatatlan, hibás eszközhívásokat produkál. A Qwen modelleket funkcióhívásra képezik, és következetesen jól formázott eszközhívási struktúrákat bocsátanak ki — ez az, ami egy helyi csevegőmodellt helyi ügynökké alakít.
A folyamat az ismert eszközhívó ciklus, csak eszközön fut:
sequenceDiagram
participant U as Felhasználó
participant A as Qwen Ügynök (helyi)
participant T as Helyi Eszköz
U->>A: "Mit csinál az auth.py?"
A->>A: Döntés: hívja a read_file-t
A->>T: read_file("auth.py")
T-->>A: fájl tartalma
A->>A: Elemzés a tartalom alapján
A-->>U: Magyarázat
A dokumentációkeresés az a terület, ahol a helyi ügynökök megtartják hasznosságukat. Ahelyett, hogy reménykednénk, hogy az SLM megjegyezte a keretrendszer dokumentációját, beágyazzuk azokat egy helyi vektorbázisba, és az ügynök igény szerint előhívja a releváns részeket.
A Chroma-t használjuk, ami egy beágyazott vektorraktár, amely folyamatban fut, nincs szükség külön szerverre. A folyamat teljesen helyi: helyi beágyazó modell → helyi vektorok → helyi keresés → helyi SLM.
flowchart TB
D[Az ön dokumentációja / kódja] --> E[Helyi beágyazási modell]
E --> V[(Chroma vektor adatbázis - lemezen)]
Q[Ügynök lekérdezés] --> QE[Lekérdezés helyi beágyazása]
QE --> V
V -->|legjobb k darab rész| A[Qwen ügynök]
A --> Ans[Megalapozott válasz]
Ez ugyanaz az Ügynöki RAG minta, mint az 5. leckében — az egyetlen változás, hogy minden komponens a gépeden fut.
Az MCP egy szállítóprotoko, nem felhőszolgáltatás. Egy MCP szerver helyi folyamatként futhat stdio-n, és az ügynököd számára elérhetővé teszi az eszközöket a szabványos protokollon keresztül. Így újrahasznosíthatod az egyre növekvő MCP szerverek ökoszisztémáját — fájlrendszer-hozzáférés, git műveletek, adatbázis lekérdezések — teljes offline módban.
A biztonsági állásfoglalás eltér a felhőtől, de nem hiányzik: egy helyi MCP szerver ugyanazzal a felhasználói jogosultsággal fut, mint te, ezért korlátozd, mit érhet el (például egy projektkönyvtárt, nem az egész otthoni mappádat), és az outputokat bemenetként kezeld, amiket ellenőrizni kell.
A helyi első nem jelenti azt, hogy csak helyi. Az érett rendszerek szenzitivitás és nehézség szerint irányítanak:
| Helyzet | Hol fut |
|---|---|
| Érzékeny kód / adat, vagy offline | Helyi SLM |
| Egyszerű, körülhatárolt feladat | Helyi SLM (olcsó, gyors) |
| Nehéz, többlépcsős érvelés nem érzékeny adatán | Felhőmodell |
| Minden, áramszünet idején | Helyi SLM (kíméletes degradáció) |
Ez tükrözi a 16. leckében bemutatott modellirányítás ötletét — csakhogy az egyik “modell” most a saját géped. Egy robusztus tervezés visszautal a helyire, ha a felhő nem elérhető, így az ügynök minőségben romlik, de nem bukik el hirtelen.
flowchart LR
Q[Kérés] --> S{Érzékeny vagy offline?}
S -->|igen| L[Helyi SLM]
S -->|nem| C{Mély érvelést igényel?}
C -->|nem| L
C -->|igen| Cloud[Felhőmodell]
L --> Out[Válasz]
Cloud --> Out
Nyisd meg a code_samples/17-local-agent-foundry-local.ipynb fájlt és dolgozz végig rajta. Egy teljes egészében munkaállomáson futó helyi mérnöki asszisztenst építesz, amely képes:
Egyetlen ponton sem használunk felhőbeli lekérést.
Az asszisztens az OpenAI-kompatibilis végponton keresztül kapcsolódik a Foundry Local-hoz, így az ügynöki kód szinte megegyezik a felhős leckékével — csak az ügyfél változik:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# A Foundry Local felfedezi/letölti a modellt, és helyi végpontot biztosít számunkra.
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # az api_key egy helyi helykitöltő
Az eszközök egyszerű Python funkciók, amelyek egy projekthez vannak kötve:
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\")
Figyeld meg a sandbox ellenőrzést — még helyben is egy tetszőleges útvonalat olvasó eszköz kockázatos. A jegyzetfüzet minden eszközt egyetlen projekt gyökeréhez köt.
Teszteld a megértésed, mielőtt megcsinálod a feladatot.
1. Mondj két konkrét okot, miért futtassunk egy ügynököt helyben a felhő helyett.
2. Milyen munkamegosztást ajánl az SLM és az eszközei között egy helyi ügynöknél, és miért?
3. Mi teszi lehetővé, hogy a felhőügynöki kódot újrahasznosítsuk a Foundry Local-lal?
4. Miért használunk kifejezetten Qwen funkcióhívó modellt bármilyen SLM helyett?
5. A helyi RAG folyamatban mely komponensek futnak a gépen?
6. Egy helyi MCP szerver a gépeden fut. Ez automatikusan biztonságossá teszi? Milyen óvintézkedést kell még megtenned?
7. Írj le egy ésszerű hibrid útválasztási szabályt, amely tartalmaz egy helyi modellt is.
8. Milyen reális minimum RAM-igény van a helyi ügynök futtatásához ebben a leckében, és mit ad több RAM?
Bővítsd a helyi mérnöki asszisztenst egy helyi dokumentációellenőrzővé egy általad választott kisebb projekthez (ha akarod, a tároló leckekönyvtáraiból is választhatsz).
A beküldésed tartalmazza:
find_todos eszköz hozzáadását, amely átnézi a projektet TODO/FIXME megjegyzések után, és visszaadja őket fájl- és sorazonosítóval — azonos sandbox ellenőrzéssel, mint a read_file.
Ezután írj egy rövid bekezdést arról, hogy mit helyeznél át a felhőbe és mit tartanál meg helyben ennél az értékelőnél, és miért. Az értékelés során azt nézik, hogy a helyi komponensek helyesen vannak-e összekötve, és hogy hibrid érvelésed helyes-e — nem a modell minőségét.
Ebben a leckében létrehoztál egy ügynököt, amely teljes egészében a saját gépeden fut:
Ezzel teljes a telepítési ív: a 16. lecke az ügynököket skálázta Microsoft Foundry-ba, ez a lecke pedig egyetlen munkaállomásra szállítja vissza őket. A következő lecke a telepített ügynökök biztonságossá tételére fókuszál.
Skálázható ügynökök telepítése
AI ügynökök biztonságossá tétele
Jogi nyilatkozat: Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével készült. Bár az pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Fontos információk esetén professzionális emberi fordítást javasolunk. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely ebből a fordításból ered.