![]()
Eelmine õppetund laiendas agente pilve. See toob nad alla ühele masinale. Lõpuks on sul töötav inseneriabiline, mis põhjendab, kutsub tööriistu, loeb faile ja otsib dokumentatsiooni — ilma ühegi pilvepõhise ennustuseta.
Miks seda tahaksid? Kolm põhjust, mis päriselus inseneritöös sageli esinevad:
Konks on selles, et sa vahetad tipptasemel pilvemudeli väikese keelemudeli (SLM) vastu, mis jookseb CPU, GPU või NPU peal. See õppetund räägib, kuidas ehitada agente, kes selles piirangus tõhusad on, mitte teeselda, et piirangut pole.
See õppetund hõlmab:
Selle tunni läbimisel oskad:
Eeldame, et oled läbinud varasemad õppetunnid ja tunnevad mugavalt:
Vajad ka:
requirements.txt, lisaks foundry-local-sdk, openai ja chromadb selleks õppetunniks.Tipptasemel pilvemudelil on sadu miljardeid parameetreid ja andmekeskus selle taga. SLM-il on paar miljardit parameetrit ja see peab mahutuma sinu sülearvuti mälu sisse. See erinevus seab selged ootused.
SLMid sobivad hästi:
SLMid on nõrgemad:
Kohalike agentide võidustrateegia on: laske SLM-il orkestreerida ja tööriistadel teha rasket tööd. Mudelil ei pea olema sinu koodi tundmist — sellest piisab, kui ta teab, millal kutsuda read_file ja search_docs. See mängib SLM-i tugevustele otse vastu.
flowchart LR
U[Arendaja] --> A[Kohalik SLM agent]
A -->|otsustab, millist tööriista kasutada| T1[loe_faili]
A -->|otsustab, millist tööriista kasutada| T2[otsi_dokumente RAG]
A -->|otsustab, millist tööriista kasutada| T3[analüüsi_koodi]
T1 --> A
T2 --> A
T3 --> A
A --> R[Vastus, täielikult seadmes]
Microsoft Foundry Local on kergekaaluline runtime, mis laadib alla, haldab ja pakub mudeleid täielikult su masinas. Oluline omadus on see, et ta pakub OpenAI-ga ühilduvat HTTP-lõpp-punkti — mis tähendab, et OpenAI SDK ja Microsoft Agent Frameworki OpenAI klient töötavad selle peal lihtsalt, vahetades base_url-i. Kõik, mida agentide ehitamise kohta õpetati, kandub otse üle; ainus erinevus on, et lõpp-punkt liigub pilvest localhosti.
Foundry Local valib mudelist su arvuti jaoks parima versiooni automaatselt — kas CPU-versiooni, CUDA/GPU-versiooni või NPU-versiooni — nii et sul ei ole vaja iga masinat eraldi optimeerida.
Paigalda Foundry Local (vaata dokumentatsiooni oma OS-ile) ja kontrolli, et see töötab:
# Installi (näiteks; järgi oma platvormi dokumentatsiooni)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Laadi alla ja käivita Qwen mudel, seejärel alusta kohalikku teenust
foundry model run qwen2.5-7b-instruct
foundry service status
Kui teenus jookseb, on sul kohalik OpenAI-ga ühilduv lõpp-punkt (tavaliselt http://localhost:PORT/v1). Sülearvutuses kasutatakse foundry-local-sdk lõpp-punkti automaatseks leidmiseks, nii et pole vaja porti kõvakodeerida.
Agent on alles agent, kui ta suudab tööriistu kutsuda. Paljud SLMid saavad vestelda, kuid annavad ebausaldusväärseid ja vigaseid tööriistakõnesid. Qwen mudelid on treenitud funktsioonikõneks ja sünnitavad korrapäraselt hästi vormistatud tööriistakõnestruktuure — just see teeb kohalikust vestlusmudelist kohaliku agendi.
Protsess on tavaline tööriistakõne tsükkel, mida sa juba tead, lihtsalt kohapeal jooksutatud:
sequenceDiagram
participant U as Kasutaja
participant A as Qwen Agendi (kohalik)
participant T as Kohalik Tööriist
U->>A: "Mida teeb auth.py?"
A->>A: Otsusta: kutsu read_file
A->>T: read_file("auth.py")
T-->>A: faili sisu
A->>A: Sisu põhjal mõtiskle
A-->>U: Selgitus
Dokumentatsiooni otsing on koht, kus kohalikud agendid tõeliselt väärtust loovad. Selle asemel, et loota, et SLM on sinu raamatu dokumendid meelde jätnud, paigutad dokumendid kohalikku vektorandmebaasi ja lubad agendil päringul vajalikke lõike tuua.
Kasutame Chroma-d, manustatud vektoripoed, mis töötab protsessis ja mille jaoks serverit ei ole. Töövoog on täielikult kohalik: kohalik sisestusmudel → kohalikud vektorid → kohalik otsing → kohalik SLM.
flowchart TB
D[Teie dokumendid / kood] --> E[Kohalik manustamismudel]
E --> V[(Chroma vektorandmebaas - kettal)]
Q[Agendi päring] --> QE[Manusta päring kohapeal]
QE --> V
V -->|top-k tükid| A[Qweni agent]
A --> Ans[Põhineb vastusel]
See on sama Agentic RAG muster nagu õppetunnis 5 — ainus erinevus, et kõiki komponente jookseb sinu masinas.
MCP on transpordikiht, mitte pilveteenus. MCP server võib jookseda lokaalse protsessina stdio-l, pakkudes tööriistu agendile üle tavaprotokolli. See laseb kasutada kasvavat MCP serverite ökosüsteemi — failisüsteemi ligipääsu, git operatsioone, andmebaasi päringuid — täiesti võrguühenduseta.
Turvapoliitika on pilvest erinev, kuid pole puuduv: kohalik MCP server jookseb sinu kasutajaõigustes, nii et piira, mida see võib puudutada (näiteks projekti kataloog, mitte kogu kodukataloog) ja kohtu tema väljundite usaldusväärsust enne nende kasutamist.
Kohalik esimene ei tähenda ainult kohalikku. Küpsed süsteemid marsruutivad tundlikuse ja keerukuse järgi:
| Situatsioon | Kus jookseb |
|---|---|
| Tundlik kood / andmed või võrguühenduseta | Kohalik SLM |
| Lihtne, piiratud ülesanne | Kohalik SLM (odav, kiire) |
| Raske mitmehüppelise põhjendusega mitte-tundlikel andmetel | Pilvemudel |
| Kõik katkestuse ajal | Kohalik SLM (peenhäälestatud degradeerumine) |
See peegeldab õppetunni 16 mudelite marsruutimise mõtteviisi — ainult et üks «mudelitest» oled nüüd sa ise. Tugev disain lülitab pilvest kohaliku peale, kui pilv pole saadaval, nii et agent degradeerub kvaliteedis, mitte ei ebaõnnestu täielikult.
flowchart LR
Q[Päring] --> S{Tundlik või võrguühenduseta?}
S -->|jah| L[Kohalik SLM]
S -->|ei| C{Kas on vaja põhjalikku arutlust?}
C -->|ei| L
C -->|jah| Cloud[Pilvemudel]
L --> Out[Vastus]
Cloud --> Out
Ava code_samples/17-local-agent-foundry-local.ipynb ja tööta läbi. Ehita kohalik inseneriabiline, mis töötab ainult su töölaual ja saab:
Ükski pilve ennustus pole kasutusel.
Abiühendus toimub Foundry Locali OpenAI-ga ühilduva lõpp-punkti kaudu, nii et agendi kood näeb pilveõppetundidest praktiliselt ühesugune välja — ainult klient muutub:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# Foundry Local avastab/alla laadib mudeli ja annab meile kohaliku lõpp-punkti.
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # api_key on kohalik kohatäide
Tööriistad on tavalised Python funktsioonid, mis on piiritletud konkreetse projekti kataloogiga:
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\")
Pöörake tähelepanu liivakasti kontrollile — isegi kohapeal on tööriist, mis loeb suvalisi radu, riskantne. Märkmik hoiab iga tööriista ühe projekti juurkaustaga piiritletuna.
Testi oma arusaamist enne ülesande juurde asumist.
1. Too kaks konkreetset põhjust, miks agent jooksutada kohapeal, mitte pilves.
2. Milline on soovitatav tööjaotus SLM-i ja tööriistade vahel kohalikus agendis ning miks?
3. Mis võimaldab taaskasutada pilve-agendi koodi Foundry Localiga?
4. Miks kasutame spetsiaalselt Qwen funktsioonikõne mudelit, mitte suvalist SLM-i?
5. Millised komponendid jooksevad masina peal kohaliku RAG töövoos?
6. Kohalik MCP server jookseb su masinas. Kas see teeb selle automaatselt turvaliseks? Millist ettevaatusabinõu peaksid siiski järgima?
7. Kirjelda mõistlikku hübriidset marsruutimispõhimõtet, millesse kuulub ka kohalik mudel.
8. Milline on realistlik miinimummälu (RAM) kohalikule agendile selles tunnis, ja mida enam mälu võimaldab?
Arenda kohalik inseneriabiline edasi kohalikuks dokumentatsiooni ülevaatajaks väikse projekti jaoks, mida soovid (kasuta selle repositooriumi mõnda õppetunni kausta kui soovid).
Sinu lahendus peaks:
Lisa find_todos tööriist, mis otsib projektist TODO/FIXME kommentaare ja tagastab need koos faili ja reanumbriga — hoides sama liivakasti kontrolli nagu read_file.
Seejärel kirjutage lühike lõik selle kohta, mida te pilve viiksite ja mida kohapeal hoiaksite selleks ülevaatajale ning miks. Teid hinnatakse selle järgi, kas lokaalsed komponendid on õigesti omavahel ühitatud ja kas teie hübriidne mõtlemine on loogiline — mitte mudeli kvaliteedi järgi.
Selles tunnis ehitasite agendi, mis töötab täielikult teie enda masinas:
See lõpetab juurutuskäigu: õppetund 16 skaleeris agendid Microsoft Foundry-sse ja see õppetund vähendas nad üheks töölauaks. Järgmine õppetund keskendub juba juurutatud agentide turvalisuse hoidmisele.
Skaalautuvate agentide juurutamine
Lahtiütlus: See dokument on tõlgitud kasutades AI tõlketeenust Co-op Translator. Kuigi me püüdleme täpsuse poole, palun pange tähele, et automatiseeritud tõlgetes võib esineda vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud eksimustest või valesti mõistmistest.