![]()
Eelmine õppetund laiendas agente pilves. See õpetus toob need alla ühele masinale. Lõpuks on sul töökorras inseneriabi, mis mõtleb, kasutab tööriistu, loeb su faile ja otsib dokumentatsiooni — ilma ühegi pilvepõhise järelduse päringuta.
Miks seda soovida? On kolm põhjust, mis reaalses inseneritöös pidevalt ette tulevad:
Kinni on see, et sa vahetad tipptasemel pilvemudeli välja väikese keelemudeli (SLM) vastu, mis jookseb su protsessoril, graafikakaardil või närvivõtmel. See õppetund räägib, kuidas ehitada agente, kes on head selle piirangu sees, mitte ette kujutada, et piirangut ei eksisteeri.
See õppetund käsitleb:
Pärast selle õppetunni läbimist oskad:
Eeldame, et oled läbinud varasemad õppetunnid ja oskad:
Vajalik on ka:
requirements.txt paketid ning lisaks foundry-local-sdk, openai ja chromadb selle õppetunni jaoks.Tipptasemel pilvemudelil on sadu miljardeid parameetreid ja taga andmekeskus. Väikesel keelemudelil on paar miljardit parameetrit ja see peab mahtuma sinu sülearvuti mällu. See vahe seab selged ootused.
SLMid on head:
SLMid on nõrgemad:
Seega on kohalike agentide võidustrateegia: las SLM koordineerib ja tööriistad teevad raske töö. Mudelil ei pea olema teadmist sinu koodibaasist — ta peab teadma, millal kutsuda read_file ja search_docs. See mängib täpselt SLMi tugevuste kasuks.
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_dokumendid 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 jooksuaeg, mis laadib, haldab ja teenindab mudeleid täielikult su masinal. Meie jaoks on tähtsaim omadus, et see pakub OpenAI-ühilduvat HTTP lõpp-punkti — mis tähendab, et OpenAI SDK ja Microsoft Agent Frameworki OpenAI klient töötavad selle vastu vaid muutes base_url. Kõik agentide loomise teadmised on otse rakendatavad; ainult lõpp-punkt nihkub pilvest localhosti.
Foundry Local valib automaatselt sobivaima mudeli ehituse sinu riistvarale — kas CPU, CUDA/GPU või NPU — nii ei pea sa iga masina jaoks käsitsi optimeerima.
Paigalda Foundry Local (vt dokumentatsiooni oma operatsioonisüsteemi kohta), seejärel kinnita, et töötab:
# Paigalda (näiteks; järgi oma platvormi juhiseid)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Laadi alla ja käivita Qweni mudel, seejärel alusta lokaalteenust
foundry model run qwen2.5-7b-instruct
foundry service status
Kui teenus töötab, on sul olemas kohalik OpenAI-ühilduv lõpp-punkt (tavaliselt http://localhost:PORT/v1). Märkmik kasutab foundry-local-sdk automaatseks lõpp-punkti avastamiseks, nii et porti ei pea käsitsi kodeerima.
Agent on agent ainult siis, kui ta oskab tööriistu kutsuda. Paljud SLMid oskavad suhelda, kuid toodavad ebausaldusväärseid ja valesti vormistatud tööriistakutseid. Qwen mudelid on koolitatud funktsioonikutsumiseks ja toodavad järjekindlalt õigesti vormistatud tööriistakutseid — mis teeb kohalikust vestlusmudelist tõelise agendi.
Töövoog on juba teada-tuntud tööriistakutseloop, lihtsalt jooksutatakse otse seadmel:
sequenceDiagram
participant U as Kasutaja
participant A as Qwen Agent (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 üle mõtisklema
A-->>U: Selgitus
Dokumentatsiooni otsing on koht, kus kohalikud agentid ennast tõestavad. Selle asemel, et loota SLMi mälu peale, sulandad need dokumendid kohalikku vektorandmebaasi ja lased agendil vajadusel sobivad tükid üles otsida.
Kasutame Chromat, sisseehitatud vektorpoodi, mis jookseb protsessis ega vaja serverit. Taim on täiesti kohalik: kohalik embeding mudel → kohalikud vektorid → kohalik otsing → kohalik SLM.
flowchart TB
D[Teie dokumendid / kood] --> E[Kohalik manustamismudel]
E --> V[(Chroma vektori andmebaas - kettal)]
Q[Agendi päring] --> QE[Manusta päring kohalikult]
QE --> V
V -->|parimad-k tükid| A[Qweni agent]
A --> Ans[Põhjuslik vastus]
See on sama Agentic RAG-muster nagu õppetund 5 — ainus erinevus on see, et kõik komponendid jooksevad su masinal.
MCP on transpordikiht, mitte pilveteenus. MCP server võib jooksutada kohaliku protsessina stdiol, pakkudes tööriistu su agendile standardprotokolli kaudu. See võimaldab taaskasutada kasvavat MCP serverite ökosüsteemi — failisüsteemi ligipääs, git-operatsioonid, andmebaasipäringud — täiesti võrguvabalt.
Turvalisus on erinev pilvest, aga mitte puuduv: kohalik MCP server jookseb su kasutaja õigustega, seega piira, mida ta võib puudutada (nt projekti kaust, mitte kogu kodukaust) ja käsitle selle väljundeid sisenditena, mida vajadusel valideerida.
Esmalt kohalik pole sama, mis ainult kohalik. Küpsed süsteemid marsruutivad tundlikkuse ja keerukuse alusel:
| Situatsioon | Kus jookseb |
|---|---|
| Tundlik kood/andmed või võrguvaba | Kohalik SLM |
| Lihtne, piiritletud ülesanne | Kohalik SLM (odav, kiire) |
| Raske mitmetasandiline mõtlemine mitte-tundlikel andmetel | Pilvemudel |
| Kõik, katkestuse ajal | Kohalik SLM (läbimõeldud degradeerumine) |
See peegeldab mudeleid marsruutimise ideed õppetundist 16 — ainult et üks „mudelitest“ on nüüd sinu enda masin. Vastupidav disain lülitub pilve puudumisel automaatselt kohalikule, nii et agent halveneb kvaliteedis, mitte ei vea alt.
flowchart LR
Q[Päring] --> S{Tundlik või võrguühenduseta?}
S -->|jah| L[Kohalik SLM]
S -->|ei| C{Vajab sügavat mõtlemist?}
C -->|ei| L
C -->|jah| Cloud[Pilvemudel]
L --> Out[Vastus]
Cloud --> Out
Ava code_samples/17-local-agent-foundry-local.ipynb ja tööta sellega. Ehita kohalik inseneriabimees, mis jookseb su töökohal ja suudab:
Ühtegi pilvepõhist järeldust ei tehta.
Assistendil on ühendus Foundry Localiga OpenAI-ühilduva lõpp-punkti kaudu, nii et agendi kood näeb peaaegu pilveteemaliste õppetundide moodi välja — ainult klient vahetub:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# Foundry Local leiab/laadib mudeli alla 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 kohthoidja
Tööriistad on tavapärased Pythoni funktsioonid, mis piiritletud projekti kaustaga:
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\")
Märka liivakasti-kontrolli — isegi kohapeal on tööriist, mis loeb suvalisi teid, risk. Märkmik hoiab iga tööriista piiratuna ühele projekti juurele.
Testi oma arusaamist enne ülesande lahendamist.
1. Too kaks konkreetset põhjust, miks agent tööle panna kohapeal, mitte pilves.
2. Kuidas on SLM ja selle tööriistade tööjaotus kohaliku agendi puhul ning miks?
3. Miks on võimalik taaskasutada pilveagentide koodi Foundry Localiga?
4. Miks kasutame just Qweni funktsioonikutsumist, mitte suvalist SLMi?
5. Millised komponendid jooksevad masinal kohaliku RAG pipelinis?
6. Kohalik MCP server töötab su masinal. Kas see teeb selle automaatselt turvaliseks? Milliseid ettevaatusabinõusid peaksid siiski kasutama?
7. Kirjelda mõistlikku hübriidset marsruutimise reeglit, mis hõlmab lokaalset mudelit.
8. Mis on selle õppetunni kohaliku agendi jooksutamiseks realistlik miinimum RAM maht ja mida rohkem RAMi annab?
Laienda kohaliku inseneriabi rakendus kohalikuks dokumentatsiooni vaatlejaks väikese valitud projekti jaoks (kasuta soovi korral mõnda selle reposti õppetundide kaustadest).
Sinu lahendus peaks:
Lisama find_todos tööriista, mis skaneerib projekti TODO/FIXME kommentaaride leidmiseks ja tagastab need koos faili ja rea numbriga — säilitades sama liivakasti kontrolli nagu read_file.
Kirjutage seejärel lühike lõik mida te pilve viiksite ja mida hoiaksite lokaalselt selle hindaja jaoks ning miks. Teid hinnatakse selle järgi, kas lokaalsed komponendid on õigesti omavahel ühendatud ja kas teie hübriidne mõtlemine on põhjendatud — mitte mudeli kvaliteedi järgi.
Selles õppetükis ehitasite agendi, mis töötab täielikult teie enda masinal:
Sellega lõpeb juurutuse ring: Õppetund 16 skaleeris agendid Microsoft Foundrysse ja see õppetund skaleeris neid ühele tööjaamale. Järgmine õppetund keskendub juurutatud agentide turvalisusele.
Skaleeritavate 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.