Decodorul numelor de produse AI: ce este fiecare și unde se află în stack

Învață să plasezi corect OpenClaw, Hermes Agent, NemoClaw, OpenShell, Ollama, Hugging Face, NVIDIA NeMo, NVIDIA NIM, LangGraph și MCP în stack-ul unui sistem AI, fără să confunzi produse, framework-uri, protocoale, runtime-uri și modele.

Lecția 0495 min de lectură

120–150 de minute · +60–90 de minute pentru exerciții · Nivel: începător · Recomandat înainte: Lecțiile 1–3

Lecția pe scurt

Întrebarea centrală: când întâlnești un nume precum OpenClaw, Hermes, NemoClaw, OpenShell, Ollama, Hugging Face, NeMo, NIM, LangGraph sau MCP, cum afli ce fel de lucru este, ce responsabilitate îndeplinește și cu ce nu trebuie confundat?

În Lecția 1 ai învățat să nu clasifici un sistem după eticheta de marketing. În Lecția 2 ai separat modelul de bucla agentului, de stare și de instrumente. În Lecția 3 ai construit harta completă a stack-ului prin cele 14 responsabilități: hardware fizic; sistem de operare și drivere; platformă de accelerare; limbaj, runtime și dependențe; framework ML și biblioteci numerice; artefactul modelului; runtime de inferență și server de model; controllerul agentului; instrumente și integrări; date, stare, memorie și retrieval; securitate, identitate și guvernanță; observabilitate, teste și evaluări; interfață și aplicație; deployment și operațiuni. Acum folosim exact acea hartă pentru a descifra nume concrete.

Lecția pornește de la o problemă foarte practică. Produsele reale nu se încadrează întotdeauna în compartimentele clare ale unei diagrame didactice. Un produs poate acoperi trei sau patru responsabilități. Un nume poate desemna un ecosistem întreg, nu o singură bibliotecă. Două produse pot ocupa parțial același strat și totuși pot rezolva probleme diferite. Iar unele lucruri pe care le compară oamenii pe internet nici măcar nu aparțin aceleiași categorii.

Reper rapid: exact aceleași șase zone din Lecția 3

  1. Zona I — fundația fizică: hardware: CPU, RAM, stocare, GPU, VRAM și rețea.
  2. Zona II — de la hardware la software: sistem de operare, kernel, drivere și platformă de accelerare.
  3. Zona III — software-ul care execută aplicația și calculele modelului: limbaj, runtime, dependențe, mediu virtual, framework-uri ML și biblioteci numerice.
  4. Zona IV — model și inferență: artefactul modelului, cuantizare, runtime de inferență și server de model.
  5. Zona V — deasupra modelului: controllerul agentului, orchestratorul și harness-ul, instrumentele, integrările, datele, starea, memoria și retrieval.
  6. Zona VI — control și operare: securitate, identitate, guvernanță, observabilitate, teste, evaluări, interfață, aplicație, deployment și operațiuni.

Nu introducem o hartă nouă: aceasta este aceeași grupare din Lecția 3. Dacă uiți numărul unei zone, reconstruiește-l din responsabilitatea componentei: ce face această parte a sistemului?

De aceea nu vom întreba „care este mai bun: Ollama sau OpenShell?” înainte să observăm că întrebarea seamănă cu „care este mai bun: motorul sau centura de siguranță?”. Ollama și OpenShell pot exista în aceeași arhitectură tocmai pentru că au responsabilități diferite: unul se ocupă în principal de accesul la inferență, celălalt de izolarea și limitarea execuției agentului.

Regula lecției

Nu compara două nume până când nu le-ai identificat categoria și responsabilitatea. Mai întâi întrebi „ce este?”, apoi „ce face?”, apoi „unde se află în stack?”, abia după aceea „cu ce alternative îl compar?”.

La finalul lecției vei putea

  1. să plasezi OpenClaw, Hermes Agent, NemoClaw, OpenShell, Ollama, Hugging Face, NVIDIA NeMo, NVIDIA NIM, LangGraph și MCP pe harta din Lecția 3;
  2. să explici de ce aceste zece nume nu sunt zece alternative pentru aceeași problemă;
  3. să recunoști diferența dintre aplicație de agent, framework de orchestrare, runtime de inferență sau server de model, platformă, protocol, sandbox și stack de referință;
  4. să explici de ce Hugging Face și NeMo sunt nume-umbrelă care acoperă mai multe produse sau responsabilități;
  5. să deosebești NeMo de NemoClaw și Hermes Agent de modelele Hermes;
  6. să explici de ce MCP standardizează modul de conectare dintre componente, dar nu rulează el însuși agentul și nu îl face automat sigur;
  7. să corectezi zece diagrame de arhitectură intenționat greșite;
  8. să citești documentația unui produs nou și să îl plasezi în stack fără să te bazezi pe o listă învățată pe de rost.
Cele zece nume plasate pe harta celor șase zone din Lecția 3.
Un produs poate atinge mai multe zone. MCP este desenat ca legătură între componente, nu ca un motor de execuție.

1. De ce numele produselor ne păcălesc

Numele comerciale și numele proiectelor open-source sunt utile pentru a găsi software, dar nu sunt o clasificare tehnică.

Un nume de produs poate ascunde mai multe niveluri. „Hugging Face” poate însemna compania, Hub-ul, o bibliotecă Python, un serviciu de inferență sau întregul ecosistem. „NeMo” poate însemna o suită NVIDIA, NeMo Framework, NeMo Agent1 Toolkit sau alte servicii din ecosistem. „Hermes” poate desemna o familie de modele, dar Hermes Agent este o aplicație și framework de agent. „NemoClaw” seamănă ca nume cu „NeMo”, dar nu este NeMo redenumit.

În același timp, un singur produs poate acoperi mai multe responsabilități. OpenClaw oferă gateway14 — poarta software prin care trec mesajele și conexiunile —, sesiuni, canale, instrumente4 și un harness de agent1 — programul care ține bucla agentului în funcțiune; nu poate fi reprezentat corect într-o singură casetă dacă desenăm arhitectura realist. Hermes Agent combină bucla agentului cu memorie persistentă, skill-uri, instrumente și mai multe interfețe de interacțiune. Hugging Face combină depozite de modele și date cu biblioteci și servicii. NeMo este o suită modulară. A încerca să forțezi toate acestea într-un singur strat duce la o hartă înșelătoare.

Întrebarea care rămâne valabilă este din Lecția 3: ce responsabilitate este îndeplinită? Chiar dacă produsul își schimbă funcțiile în următoarea versiune, poți reface analiza.

Produsele se schimbă mai repede decât conceptele. Ollama a devenit cunoscut în primul rând pentru rularea locală a modelelor, dar în 2025–2026 a adăugat modele cloud și integrare directă cu agenți1 de programare. Dacă memorezi „Ollama = exclusiv local”, informația ta devine depășită. Dacă memorezi „Ollama oferă o interfață pentru rularea, servirea și accesul la modele; verific unde se execută inferența”, harta rămâne utilă.

2. Metoda decodorului: șapte întrebări înainte să compari produse

Metoda este mai importantă decât lista celor zece produse. O vei putea folosi și pentru nume care apar după publicarea cursului.

Checklist cu cele șapte întrebări ale decodorului de produse.
CategoriaEste model, runtime, server, aplicație, framework, protocol, platformă, sandbox sau stack de referință?
IntrareaCe primește: prompt, mesaje, fișiere, apeluri API, evenimente, artefacte de model?
IeșireaProduce tokeni, o decizie de workflow, un apel de instrument, un mediu izolat, date sau doar o conexiune?
ResponsabilitateaCe rând din harta celor 14 responsabilități îndeplinește?
DependențeleAre nevoie de un model separat, de hardware, de un server, de un agent sau de alte servicii?
AutoritateaPoate doar răspunde sau poate și citi, scrie, executa, trimite ori administra resurse?
Limita de securitateCine verifică identitatea (autentificare), cine dă voie (autorizare), cine ține acțiunea într-un spațiu limitat (izolare) și cine păstrează urma a ce s-a întâmplat (audit)?

Ordinea contează: identifică întâi categoria, rolul și limitele; comparația cu alternative vine după aceea.

După cele șapte întrebări poți adăuga una de actualitate: „Descriu versiunea de astăzi sau reputația istorică a produsului?” Este esențială pentru produse care evoluează rapid.

3. Aplică decodorul o dată, cap-coadă

Înainte să privim toate cele zece nume, aplicăm metoda completă unui singur produs. Alegem Ollama deoarece separarea dintre model, runtime și agent1 a fost deja introdusă în Lecția 3.

Exemplu — Ollama

  1. Categoria: este, în primul rând, software pentru rularea și servirea modelelor și pentru accesul la acestea printr-o interfață comună.
  2. Intrarea: primește cereri de inferență și o selecție de model/configurație.
  3. Ieșirea: întoarce rezultatul inferenței; nu decide singur obiectivul întregii aplicații.
  4. Responsabilitatea: aparține în principal Zonei IV — runtime de inferență15 sau server de model16.
  5. Dependențele: are nevoie de un model și de infrastructura pe care se execută inferența, local sau la distanță.
  6. Autoritatea: simpla prezență a Ollama nu îi dă agentului1 dreptul de a modifica fișiere, trimite mesaje sau executa comenzi.
  7. Limita de securitate: permisiunile agentului1 și izolarea instrumentelor4 trebuie proiectate separat.
Ce trebuie să reții din exemplu: numele produsului este ultimul lucru pe care îl comparăm, nu primul. Mai întâi identificăm categoria, rolul și limitele.

Abia după acest traseu are sens să întrebăm dacă Ollama trebuie comparat cu NIM, cu un alt server de model16 sau cu un serviciu oferit în cloud de un furnizor. Nu îl comparăm direct cu OpenShell sau MCP, pentru că acestea rezolvă alte responsabilități.

4. Harta rapidă a celor zece nume

Tabelul de mai jos este punctul de orientare. Primele zece rânduri sunt numele analizate în lecție; secțiunile următoare justifică fiecare plasare și arată unde apar suprapunerile. Ultimele cinci rânduri sunt nume învecinate pe care le vei întâlni constant alături de ele: completează straturile de jos ale hărții și relațiile dintre agenți1.

Ce este: O aplicație și un gateway14 de agent1, cu sesiuni, canale, instrumente4 și integrare cu modele.

Ce problemă rezolvă: Rezolvă problema „vreau un agent1 persistent pe canalele mele, cu instrumentele4 mele” — fără să scrii de la zero bucla de control și conectoarele.

Când ajungi la el: Când ai o sarcină curentă (de pildă un canal de suport) și vrei un agent1 cu sesiuni și instrumente4, iar modelul e o componentă configurabilă.

Comandă exemplu și ce arată: Pe o mașină fără OpenClaw instalat, comanda command -v openclaw nu afișează nimic — arată că aplicația nu este prezentă în PATH; instalarea și configurarea ei se fac conform documentației proiectului, nu prin simpla prezență a unui model.

Ce NU este și cu ce se confundă: Nu este LLM2 și nu este sandbox20 în mod implicit; se confundă cu „modelul Hermes” sau cu un runtime de inferență15.

Ce este: O aplicație și un framework de agent1 persistent, cu instrumente4, memorie, skill-uri și gateway-uri14.

Ce problemă rezolvă: Rezolvă problema unui agent1 de lungă durată care își amintește contextul și își păstrează abilitățile între sesiuni.

Când ajungi la el: Când ai nevoie de un agent1 care supraviețuiește repornirilor și își păstrează memoria — de pildă un asistent personal persistent.

Comandă exemplu și ce arată: Verificarea de prezență: command -v hermes-agent pe o mașină fără instalare nu afișează nimic; după instalare, comanda arată calea executabilului, iar ce model folosește se citește din configurație, nu din nume.

Ce NU este și cu ce se confundă: Nu este același lucru cu modelele Hermes; se confundă și cu „modelul agentului1” — aplicația rămâne controllerul12, iar modelul e o dependență.

Ce este: Un stack de referință21, cu plan versionat (blueprint) și instrumente4 auxiliare, pentru rularea controlată a agenților1 prin OpenShell.

Ce problemă rezolvă: Rezolvă problema „vreau stack-ul asamblat conform unei rețete verificate” — blueprint-ul și ciclul de viață în loc de compunere manuală.

Când ajungi la el: Când vrei să rulezi agenți1 într-un mod controlat și documentat, cu o configurație care poate fi versionată și repetată.

Comandă exemplu și ce arată: Configurarea se verifică din fișierele de blueprint ale proiectului (fișier, nu comandă); o comandă reală utilă lângă el este command -v openshell, care arată dacă stratul de bază este prezent pe mașină.

Ce NU este și cu ce se confundă: Nu este NeMo Framework și nu este OpenShell însuși; se confundă cu ambele — este compunerea lor pentru agenți1.

Ce este: Un runtime de execuție și gateway14 pentru medii izolate, cu politici pentru agenți1; aici „runtime” nu înseamnă runtime de inferență15.

Ce problemă rezolvă: Rezolvă problema „agentul1 poate acționa, dar numai acolo unde i-am dat voie”: politici pentru fișiere, rețea și comenzi, aplicate la execuție.

Când ajungi la el: Când agentul1 primește acces la shell, fișiere sau rețea și ai nevoie ca limitele să fie tehnice, nu doar instrucțiuni text.

Comandă exemplu și ce arată: Pe mașina laboratoarelor, command -v openshell nu afișează nimic — utilitarul nu este instalat; comparația utilă este cu izolarea din Lecția 2, unde comenzile agentului1 au fost limitate de regulile routerului, nu de un sandbox20.

Ce NU este și cu ce se confundă: Nu este runtime de inferență15 sau server de model16 și nu este controllerul12 agentului1; se confundă cu toate trei pentru că apare „lângă” ele în diagrame.

Ce este: O interfață pentru rularea, servirea și accesarea modelelor, local sau în cloud.

Ce problemă rezolvă: Rezolvă problema „am un artefact9 de model și vreau să îl servești aplicației mele fără să construiesc serverul de la zero”.

Când ajungi la el: Când modelul a fost ales și vrei inferență locală cu un server simplu — de pildă pentru agentul1 din laboratorul 2, dacă ar avea nevoie de un model.

Comandă exemplu și ce arată: Pe mașina laboratoarelor, command -v ollama nu afișează nimic — serverul nu este instalat; totuși agentul1 a rulat complet, dovadă că bucla de control nu depinde de el.

Ce NU este și cu ce se confundă: Nu este agent1 și nu este modelul însuși; se confundă cu ambele pentru că numele apare în toate discuțiile despre modele locale.

Ce este: Un ecosistem și o platformă: Hub, biblioteci, modele, date, aplicații și servicii de inferență.

Ce problemă rezolvă: Rezolvă problema distribuției și reutilizării: găsești un artefact9, îi citești model card-ul și alegi componenta potrivită din ecosistem.

Când ajungi la el: Când cauți un model sau un artefact9 de descărcat, sau o bibliotecă pentru a-l rula — și trebuie să știi ce componentă exactă alegi.

Comandă exemplu și ce arată: După descărcarea unui artefact9, verificarea fișierului se face cu ls -l nume-fișier, care arată mărimea reală — un model „7B” cuantizat8 are câțiva gigabytes (aproximativ 4 GB la 4 biți), iar un fișier de câțiva kilobyți nu este un model.

Ce NU este și cu ce se confundă: Nu este o singură bibliotecă sau un singur runtime; se confundă cu transformers (biblioteca) și cu Hub-ul (depozitul).

Ce este: O suită modulară pentru modele și ciclul de viață al sistemelor și agenților1.

Ce problemă rezolvă: Rezolvă problema construirii și adaptării modelelor și sistemelor agentice — antrenare, ajustare, servire — ca set de componente care se aleg separat.

Când ajungi la el: Când construiești sau adaptezi modele în ecosistemul NVIDIA și vrei componente pentru etape diferite ale ciclului de viață, nu un produs monolitic.

Comandă exemplu și ce arată: Suita nu se „rulează” cu o singură comandă: prezența stack-ului NVIDIA se verifică pe mașină cu command -v nvidia-smi și command -v nvcc — pe mașina laboratoarelor, ambele fără rezultat, deci suita GPU11 nu poate fi folosită aici.

Ce NU este și cu ce se confundă: Nu este NemoClaw; se confundă cu el din cauza numelui aproape identic — suită de construire versus stack de referință21 pentru agenți1.

Ce este: Microservicii17 containerizate de inferență optimizată.

Ce problemă rezolvă: Rezolvă problema servirii unui model ca endpoint, cu runtime-ul și optimizările incluse în container.

Când ajungi la el: Când ai modelul ales și vrei să îl expui aplicației printr-un API7, fără să asamblezi manual runtime-ul.

Comandă exemplu și ce arată: Pe mașina laboratoarelor, command -v nvidia-smi nu afișează nimic — lipsesc driverul10 și stack-ul NVIDIA, deci un NIM nu poate rula aici; comanda arată concret de ce.

Ce NU este și cu ce se confundă: Nu este modelul și nu este agentul1; se confundă cu fișierele de ponderi — NIM este servirea, nu datele.

Ce este: Un framework și runtime de orchestrare18 pentru agenți1 care își păstrează starea5 (stateful) și fluxuri de lungă durată.

Ce problemă rezolvă: Rezolvă problema orchestrării: pași, ramuri, reluări și stare5 persistată, într-un graf definit de tine.

Când ajungi la el: Când fluxul are pași multipli cu aprobări și reluări — de pildă verificarea facturilor din laboratorul 2, mutată pe un graf orchestrat.

Comandă exemplu și ce arată: Orchestrarea se testează cu suitele de teste ale proiectului: în laboratorul 2, python3 -m unittest discover -s tests -v a rulat 17 teste în 0,003 secunde și s-a încheiat cu OK — regulile controlate de orchestrare18, nu de un model.

Ce NU este și cu ce se confundă: Nu este server de model16 și nu este sandbox20; se confundă cu ambele — orchestrează, dar nu servește modele și nu izolează execuția.

Ce este: Un protocol19 client–server prin care aplicațiile AI accesează instrumente4 (tools), resurse (resources) și prompturi3.

Ce problemă rezolvă: Rezolvă problema integrării standardizate: o aplicație agent1 poate folosi aceleași servere MCP pentru funcții diferite, fără integrări ad-hoc.

Când ajungi la el: Când vrei să conectezi agentul1 la calendar, CRM sau documente printr-o interfață standard, nu prin cod scris de mână pentru fiecare serviciu.

Comandă exemplu și ce arată: Protocolul19 nu se „rulează”: pe mașina laboratoarelor nu există servere MCP configurate, iar agentul1 din laboratorul 2 funcționează fără MCP — dovadă că protocolul adaugă integrări, nu buclă.

Ce NU este și cu ce se confundă: Nu este agent1, instrument4, bază de date sau mecanism complet de securitate; se confundă cu instrumentul expus — protocolul19 transportă cererile, capacitatea reală aparține serverului.

Ce este: Platforma de calcul paralel și modelul de programare NVIDIA: driver10, toolkit și biblioteci (de exemplu cuBLAS, cuDNN) prin care software-ul folosește GPU-ul11.

Ce problemă rezolvă: Rezolvă problema folosirii eficiente a plăcilor NVIDIA pentru calculele masive din rețelele neuronale.

Când ajungi la el: Când inferența locală rulează pe o placă NVIDIA și software-ul are nevoie de bibliotecile compatibile cu driverul10 și versiunile tale.

Comandă exemplu și ce arată: Pe mașina laboratoarelor, command -v nvcc și command -v nvidia-smi nu afișează nimic — stack-ul NVIDIA lipsește; lspci | grep -i vga arată plăcile prezente (Intel și AMD), deci CUDA nici măcar nu ar avea hardware compatibil aici.

Ce NU este și cu ce se confundă: Nu este GPU-ul11, nu este framework ML și nu este model; se confundă cu driverul10 — driverul face placa vizibilă, CUDA adaugă calculul paralel peste ea.

Ce este: Framework ML open-source pentru tensori, antrenarea și execuția modelelor.

Ce problemă rezolvă: Rezolvă problema lucrului cu tensori și a rulării modelelor într-un framework cu ecosistem larg de modele și unelte.

Când ajungi la el: Când construiești sau rulezi modele direct în Python — de pildă încărcarea unui artefact9 prin biblioteci compatibile PyTorch.

Comandă exemplu și ce arată: Pe mașina laboratoarelor, python3 -c "import torch" eșuează cu ModuleNotFoundError: No module named 'torch' — framework-ul nu este instalat în mediul activ; comanda arată exact ce lipsește.

Ce NU este și cu ce se confundă: Nu este modelul, nu este server de model16 și nu este agent1; se confundă cu modelele construite cu el — framework-ul este unealta, modelul este produsul.

Ce este: O bibliotecă open-source de inferență și servire pentru LLM-uri2, cu server compatibil cu API-ul7 OpenAI.

Ce problemă rezolvă: Rezolvă problema servirii eficiente a LLM2-urilor cu propriul tău server, pe hardware-ul tău, cu un API7 standard.

Când ajungi la el: Când ai hardware-ul și modelul și vrei să servești inferența local, cu un endpoint compatibil cu clienții existenți — alternativa la un serviciu găzduit.

Comandă exemplu și ce arată: Pe mașina laboratoarelor, command -v vllm nu afișează nimic — nu este instalat; comanda arată absența, iar instalarea se face în mediul virtual al proiectului, conform documentației.

Ce NU este și cu ce se confundă: Nu este modelul și nu este agentul1; poate fi motorul de inferență din interiorul unui NIM — se confundă cu NIM-ul în întregime, deși vLLM este doar o componentă posibilă.

Ce este: Un framework de agent1 (harness) și un ecosistem de integrări cu modele și instrumente4; agenții LangChain sunt construiți peste LangGraph.

Ce problemă rezolvă: Rezolvă problema asamblării rapide a unui harness: integrări gata făcute pentru modele, instrumente4 și memorie.

Când ajungi la el: Când vrei un prototip de agent1 cu integrări standard, fără să scrii tu fiecare conector — și accepți să înveți convențiile framework-ului.

Comandă exemplu și ce arată: Prezența se verifică în mediul virtual cu pip3 show langchain — pe mașina laboratoarelor comanda nu găsește pachetul, deci niciun agent1 LangChain nu rulează aici; laboratorul 2 și-a construit controllerul12 direct în Python.

Ce NU este și cu ce se confundă: Nu este LangGraph însuși, nu este model și nu este protocol19; se confundă cu LangGraph — LangChain construiește peste LangGraph pentru orchestrare18.

Ce este: Un protocol19 deschis pentru comunicarea și colaborarea dintre agenți1 construiți cu framework-uri diferite.

Ce problemă rezolvă: Rezolvă problema interoperabilității: doi agenți1 cu framework-uri diferite trebuie să vorbească o limbă comună, nu să-și scrie integrări private.

Când ajungi la el: Când sistemul tău are mai mulți agenți1 — de pildă unul de cercetare și unul de redactare — și vrei ca ei să colaboreze printr-un standard, nu prin punți private.

Comandă exemplu și ce arată: Ca și MCP, protocolul19 nu se „rulează”: absența lui nu se vede cu o comandă locală, ci din lista integrărilor agentului1; un agent fără integrări A2A pur și simplu nu colaborează încă cu alți agenți.

Ce NU este și cu ce se confundă: Nu este MCP: MCP conectează un agent1 la instrumente4 și date, A2A conectează agenți între ei — confuzia apare pentru că ambele sunt protocoale cu acronim scurt.

Cum citești tabelul: coloana „Zona principală” nu spune că produsul se reduce la acea zonă. Spune care este punctul cel mai potrivit de plecare pentru explicație. OpenClaw și Hermes ating mai multe responsabilități. Hugging Face și NeMo sunt intenționat marcate ca ecosisteme sau suite. MCP este o relație standardizată între componente și de aceea nu se comportă ca o „cutie” obișnuită din diagramă. Cele cinci nume învecinate arată că harta nu începe la agent1: CUDA și PyTorch stau sub model, vLLM stă lângă Ollama și NIM, LangChain lângă LangGraph, iar A2A lângă MCP — de aceea sunt și cele mai frecvente surse de confuzie.

Test de 15 secunde: dacă poți completa propoziția „X este în primul rând un/o ___ care ___ și are nevoie de ___”, ai început să decodezi corect numele. Dacă propoziția ta este doar „X este o platformă AI”, încă nu ai spus suficient.

5. Aplicații de agent: OpenClaw și Hermes Agent

Ambele produse coordonează comportamentul agentului1 și interacțiunea cu modele și instrumente4, dar modelul rămâne o componentă separată.

OpenClaw — aplicația și gateway-ul agentului, nu modelul

OpenClaw este util în această lecție tocmai pentru că îndeplinește mai multe responsabilități și poate fi confundat ușor cu modelul pe care îl folosește.

Documentația actuală descrie OpenClaw ca un asistent AI open-source și un gateway14 multi-canal care rulează pe dispozitivele sau serverele utilizatorului. Gateway-ul coordonează sesiunile, instrumentele4, evenimentele și conexiunile cu canale precum Telegram, Slack, Discord sau WhatsApp. Modelele și harness-urile pot fi schimbate, iar instrumentele, skill-urile și pluginurile extind capabilitățile.

În practică: îi poți scrie agentului1 printr-un canal precum Telegram, iar OpenClaw poate coordona modelul și instrumentele4 configurate pentru a duce sarcina mai departe.

Din perspectiva Lecției 3, OpenClaw acoperă în primul rând rolul de controller12 al agentului1, instrumentele4 și integrările, starea5/sesiunile și interfața și canalele. Modelul rămâne o dependență separată. Poate fi găzduit sau local, în funcție de configurație.

OpenClaw poate

  • să mențină sesiuni și rutare între canale;
  • să ofere instrumente4 și pluginuri agentului1;
  • să conecteze furnizori de modele;
  • să gestioneze canale și noduri sau dispozitive;
  • să aplice politici de instrumente4 și configurări de sandbox20.

OpenClaw nu este, prin definiție

  • un LLM2;
  • un fișier de ponderi;
  • un driver10 GPU11;
  • un runtime de inferență15 precum Ollama sau NIM;
  • o garanție că toate instrumentele4 sunt izolate.

Ultimul punct este important. Documentația OpenClaw avertizează că instrumentele4 sesiunii principale pot rula direct pe sistemul-gazdă (host) dacă sandboxing-ul nu este configurat. Asta înseamnă că „folosesc OpenClaw” nu răspunde de la sine la întrebarea „care este limita mea de securitate?”.

OpenClaw separat de modelul pe care îl folosește și de limita de sandbox.
OpenClaw coordonează agentul1 și interacțiunile; modelul este o dependență separată, iar izolarea există numai dacă este configurată.

Hermes Agent — agent persistent, nu „modelul Hermes”

Cuvântul „Hermes” este ambiguu în ecosistemul Nous Research, de aceea numele complet contează.

Hermes Agent1 este aplicația/framework-ul de agent. Documentația oficială actuală îl prezintă ca un agent open-source care poate folosi mai mulți furnizori de modele, instrumente4, memorie persistentă, skill-uri, sarcini programate și gateway-uri14 de mesagerie. Aceeași bază de agent poate fi folosită din CLI sau TUI, din aplicația desktop nativă, din panoul web (dashboard) și prin canalele de mesagerie configurate.

În practică: folosești Hermes Agent1 când vrei un agent care păstrează memorie între sesiuni, poate folosi instrumente4 și poate fi accesat din mai multe interfețe.

Modelele Hermes sunt altceva: artefacte9 aparținând unor familii de modele (model families) pe care un runtime le poate executa. Poți folosi Hermes Agent1 cu alte modele, iar un model Hermes poate fi folosit fără Hermes Agent. Relația este „agentul folosește un model”, nu „agentul este modelul”.

Formulare corectă: „Hermes Agent1 rulează o buclă agentică și folosește un model furnizat printr-un furnizor (provider) configurat.” Formulare greșită: „Hermes Agent este modelul Hermes care execută instrumente4.”

Pe harta stack-ului, Hermes Agent1 intră în principal în Zona V: controller12, harness, instrumente4, stare5 și memorie. Gateway14-urile de mesagerie ajung în zona interfeței. Dacă agentul rulează comenzi în sistem, întrebarea de securitate rămâne separată: cum primește acces la terminal, în ce mediu rulează comenzile, ce aprobări sunt active și cât de izolat este mediul?

Hermes Agent comparat cu un model din familia Hermes.
Hermes Agent1 este aplicația agentică; modelul Hermes este un artefact9 de model. Fiecare poate exista fără celălalt.

6. Execuție controlată: NemoClaw și OpenShell

Aici separăm aplicația agentică de mediul în care rulează și care îi pune limite. Agentul1 și sandbox-ul20 pot fi schimbate independent.

NemoClaw — stack de referință pentru rularea controlată a agenților

NemoClaw este un exemplu bun de nume care descrie mai degrabă o compoziție de responsabilități decât o singură bibliotecă.

Documentația NVIDIA descrie NemoClaw ca un stack de referință21 open-source pentru rularea controlată a agenților1 care rămân activi permanent (always-on) în containere OpenShell. NemoClaw adaugă configurarea inițială (onboarding), gestionarea ciclului de viață (lifecycle management), CLI, configurarea inferenței și politici de rețea peste sandbox-ul20 furnizat de OpenShell. În documentația actuală, onboarding-ul suportă OpenClaw, Hermes și LangChain Deep Agents Code; OpenClaw rămâne agentul implicit pentru comanda nemoclaw onboard.

Notă de actualitate: la data acestei ediții, NVIDIA descrie NemoClaw drept un early preview: o versiune timpurie, destinată unui operator de încredere pe o singură gazdă. Documentația precizează că nu este un serviciu găzduit NemoClaw, un plan de control enterprise multi-tenant sau un sistem enterprise de identitate. Funcțiile și traseele de deployment trebuie verificate în matricea de suport a versiunii folosite. În această lecție îl folosim pentru a înțelege rolul arhitectural pe care îl ocupă, nu ca recomandare implicită pentru producție.

În practică: folosești NemoClaw când vrei să pornești și să operezi un agent1 suportat într-un mediu OpenShell cu configurări și politici repetabile.

Asta înseamnă că NemoClaw nu înlocuiește agentul1 și nu este același lucru cu OpenShell. O schemă utilă:

AGENT / HARNESS
      │
      ▼
NemoClaw — blueprint, ciclu de viață, configurare, inferență, politici
      │
      ▼
OpenShell — sandbox + gateway + izolare + aplicarea politicilor (policy enforcement)
      │
      ▼
container / mașină virtuală / infrastructură

NemoClaw ocupă în primul rând Zona VI: deployment, securitate operațională și alcătuirea unui mediu care poate fi refăcut identic. Dar configurează și modul în care agentul1 ajunge la serviciul de inferență, de aceea atinge Zona IV. El nu transformă OpenClaw în model și nici OpenShell în orchestrator.

În această lecție nu învățăm să instalăm NemoClaw. Lecția dedicată NemoClaw și OpenShell este locul în care vom analiza în detaliu blueprint-ul, politicile, rețeaua și relația dintre cele două. Aici trebuie doar să îl plasăm corect.

OpenShell — izolarea și aplicarea politicilor, nu controllerul agentului

OpenShell rezolvă o problemă diferită de cea rezolvată de un server de model16 sau de un framework de orchestrare18.

NVIDIA OpenShell este documentat ca un mediu de execuție pentru agenți1, orientat spre izolare și aplicarea politicilor. Creează medii izolate și aplică politici declarative — reguli scrise în configurație, nu decise ad-hoc de agent — pentru acces la fișiere, rețea, date de autentificare precum chei și parole și infrastructură. Matricea de suport curentă include Docker, Podman, Kubernetes și microVM-uri ca medii în care OpenShell poate administra sandbox20-uri. Kubernetes este documentat ca suportat prin chart-ul Helm; pentru producție trebuie totuși verificată matricea de suport a versiunii folosite, deoarece cerințele și interfețele pot evolua.

În practică: OpenShell este locul în care pui limite concrete: ce fișiere vede agentul1, unde poate comunica în rețea și ce procese poate porni.

În harta Lecției 3, OpenShell aparține în primul rând responsabilității de securitate, izolare și deployment. Agentul1 poate rula în interiorul sandbox20-ului. Modelul poate fi accesat prin Inference Routing: în configurația administrată de OpenShell, codul din sandbox poate trimite cereri la https://inference.local, iar gateway-ul14 le rutează către furnizorul și modelul configurate fără să expună agentului cheia reală a furnizorului. Un endpoint este pur și simplu adresa la care un program trimite cereri. OpenShell nu decide obiectivul agentului și nu generează răspunsul modelului.

Întrebarea la care răspunde OpenShell

„Unde și cu ce permisiuni poate executa agentul1 cod, accesa fișiere sau comunica în rețea?”

Întrebarea la care NU răspunde

„Ce model folosesc?”, „ce pas al fluxului de lucru urmează?” sau „ce mesaj trimit utilizatorului?”.

Agentul este o componentă înlocuibilă

OpenShell nu este legat de un singur agent1. Lista curentă de agenți suportați include, între altele, Claude Code, OpenCode, Codex, GitHub Copilot CLI, OpenClaw, Hermes Agent și Ollama. Calea de suport nu este însă aceeași pentru toate: în matricea actuală, OpenClaw și Hermes Agent sunt marcate Blueprint-managed prin NemoClaw, în timp ce alte intrări folosesc imagini sau căi de pornire proprii. Acesta este un exemplu concret al ideii centrale din lecție: agentul și sandbox-ul20 sunt componente separate și pot fi schimbate independent.

Agentul rulează într-un sandbox OpenShell separat de endpointul modelului.
Izolarea nu este inteligență: agentul1 decide acțiuni, iar OpenShell limitează unde și cu ce permisiuni se execută.

7. Inferență: Ollama și NVIDIA NIM

Aceste produse apar în partea stack-ului care rulează sau servește modele. Ele nu decid singure obiectivul agentului1.

Ollama — rulare și servire de modele, nu agent

Ollama este unul dintre cele mai utile exemple pentru diferența dintre model, artefact9 și runtime sau server de inferență.

Ollama a devenit cunoscut ca o modalitate simplă de a descărca și rula modele deschise local, cu CLI și API7. În prezent, Ollama oferă atât modele locale, cât și modele găzduite în cloud. Pentru arhitectură, întrebarea corectă nu mai este „Ollama este local?”, ci „unde se execută modelul pe care l-am selectat prin Ollama?”.

În practică: Ollama este util când o aplicație are nevoie de o cale simplă și uniformă pentru a porni sau apela modele locale ori modele disponibile prin Ollama Cloud.

Când modelul rulează local, Ollama ocupă Zona IV: gestionează artefacte9 compatibile, pornește inferența și pune la dispoziție un API7. Când folosești un model cloud prin Ollama, modul de apelare poate rămâne asemănător, dar hardware-ul, artefactul și runtime-ul efectiv de inferență sunt operate la distanță.

Un agent1 precum OpenClaw, Hermes Agent sau un workflow6 LangGraph poate folosi un endpoint Ollama. Asta nu face Ollama agent. Ollama execută sau servește inferența; controllerul12 agentului decide când și de ce să o ceară.

Comparație între inferența locală și inferența cloud accesate prin Ollama.
Aceeași interfață nu spune unde rulează modelul. Verifică întotdeauna locul real al inferenței.

NVIDIA NIM — microserviciu de inferență, nu modelul servit

NIM ne permite să separăm foarte clar „modelul” de „serviciul care îl face accesibil”.

NVIDIA NIM este o familie de microservicii17 de inferență containerizate, parte din NVIDIA AI Enterprise. Un microserviciu este un serviciu software separat, cu o interfață bine definită, care îndeplinește o responsabilitate precisă într-un sistem mai mare. Pentru LLM2/VLM, documentația actuală descrie NIM ca un strat de orchestrare18 pregătit pentru producție în jurul unui motor de inferență precum vLLM, menționat deja în Lecția 3 ca exemplu de runtime/server de model16, cu API-uri7 compatibile, verificări de stare5 și disponibilitate (health/readiness) și observabilitate. În funcție de ofertă, există containere legate de un model și containere model-free, adică imagini de container în care modelul este ales și încărcat la runtime. Din perspectiva acestei lecții, categoria rămâne aceeași: NIM este componenta de servire și inferență, nu modelul și nu controllerul12 agentului1.

În practică: NIM este folosit când vrei să oferi unui agent1 sau unei aplicații un API7 stabil către inferență optimizată pe infrastructură NVIDIA.

APLICAȚIE / AGENT
       │ apel API
       ▼
     NIM
       │ încarcă / servește
       ▼
MODEL + MOTOR DE INFERENȚĂ
       │
       ▼
GPU / INFRASTRUCTURĂ

Dacă schimbi modelul dintr-un NIM, ai schimbat artefactul9 și, prin el, ce știe să facă modelul, nu categoria produsului NIM. Dacă schimbi NIM cu alt server de model16, ai schimbat componenta de servire. Această separare este exact cea introdusă în Lecția 3.

NIM răspunde la

„Cum expun și rulez un model printr-un microserviciu17 optimizat și o interfață stabilă?”

NIM nu răspunde la

„Care este obiectivul agentului1?”, „ce instrument4 alege?” sau „ce memorie păstrează între sesiuni?”.

8. Ecosisteme și suite: Hugging Face și NVIDIA NeMo

Aceste nume acoperă mai multe produse sau servicii. Pentru o diagramă corectă trebuie numită componenta concretă.

Hugging Face — nume-umbrelă pentru mai multe componente

Dacă încerci să pui „Hugging Face” într-un singur strat, aproape sigur vei pierde informație.

Hugging Face Hub este o platformă pentru repository-uri — termen introdus în Lecția 1 — de modele, seturi de date și Spaces, adică aplicații și demonstrații găzduite pe Hub. În jurul lui există biblioteci precum transformers, datasets, huggingface_hub, peft și altele, plus servicii de inferență precum Inference Providers și Inference Endpoints. Aceste componente au responsabilități diferite.

În practică: poți lua un model de pe Hub, îl poți încărca printr-o bibliotecă Hugging Face sau poți folosi un serviciu de inferență Hugging Face; sunt trei roluri diferite.

Când cineva spune „Hugging Face”Poate însemnaUnde se află în stack
„Am descărcat modelul de pe Hugging Face.”Hub sau depozit de modelartefacte9 și distribuție de modele
„Îl încarc cu Hugging Face.”de obicei transformers sau altă bibliotecăsoftware ML pentru încărcarea modelului
„Am un set de date pe Hugging Face.”depozit de set de date pe Hubdate
„Folosesc datasets.”biblioteca Python Hugging Face Datasetsprocesare și acces la date
„Rulez prin Hugging Face.”Inference Providers sau Inference Endpoints sau alt serviciuinferență și deployment

Acesta este motivul pentru care o lecție dedicată Hub-ului va analiza platforma și depozitele în profunzime, iar o lecție separată va distinge seturile de date păstrate pe Hub de biblioteca Python datasets. În Lecția 4 nu trebuie încă să înveți API7-urile lor; trebuie să înveți să ceri numele complet al componentei.

Harta componentelor principale din ecosistemul Hugging Face.
„Hugging Face” este un nume-umbrelă22: Hub-ul, bibliotecile și serviciile de inferență ocupă roluri diferite.

NVIDIA NeMo — întreabă întotdeauna „care componentă NeMo?”

NeMo este un exemplu actual de suită care a crescut dincolo de categoria în care mulți cursanți au întâlnit-o prima dată.

Documentația NVIDIA actuală descrie NeMo ca o suită modulară de API-uri7 și biblioteci pentru ciclul de viață al agenților1 AI — construire, deployment și optimizare — iar NeMo Framework rămâne componenta dedicată dezvoltării și antrenării modelelor generative. În aceeași suită găsești NeMo Agent Toolkit și NeMo Microservices, cu responsabilități diferite pentru evaluare, date, personalizarea modelelor, mecanisme de protecție (guardrailing) și operare.

În practică: când cineva spune „folosim NeMo”, cere numele componentei: una poate antrena modele, alta poate evalua și optimiza agenți1, iar altele oferă servicii specializate.

NeMo Framework

Framework pentru dezvoltarea, antrenarea și personalizarea modelelor generative. În harta noastră intră în principal în Zona III și în partea de model din Zona IV.

NeMo Agent Toolkit

Toolkit open-source pentru dezvoltarea bazată pe evaluare, conectarea și optimizarea sistemelor agentice, cu integrarea modelelor, instrumentelor4 și surselor de date. Ajunge în Zona V și în responsabilitatea de observabilitate și evaluare.

NeMo Microservices

Servicii containerizate pentru pregătirea datelor, personalizarea modelelor, evaluare, mecanisme de protecție și optimizarea continuă a sistemelor agentice. Pot traversa mai multe zone.

Concluzia nu este că „NeMo face tot”. Concluzia este că NeMo este o familie sau suită, iar arhitectura trebuie să numească componenta concretă. Dacă într-o diagramă scrii doar „NeMo” între utilizator și bază de date, informația este insuficientă.

NeMo ≠ NemoClaw. NeMo este suita NVIDIA pentru modele și ciclul de viață al sistemelor/agenților1. NemoClaw este un stack de referință21 pentru rularea controlată a agenților în OpenShell. Asemănarea numelor nu înseamnă identitate tehnică.

9. Orchestrare și integrare: LangGraph și MCP

LangGraph organizează traseul și starea5 unui workflow6; MCP standardizează comunicarea cu anumite funcții externe. Pot fi folosite împreună.

LangGraph — orchestrare și stare, nu inferență

LangGraph aparține aproape exact stratului pe care Lecția 3 l-a numit controller12 sau orchestrator.

Documentația LangGraph îl descrie ca un framework și runtime de orchestrare18 de nivel scăzut pentru agenți1 cu stare5, care pot rula pe perioade lungi. Oferă mecanisme pentru grafuri, execuție durabilă și reluabilă (durable execution), streaming, persistență și intervenție umană în flux (human-in-the-loop). Poate folosi modele și instrumente4 din alte ecosisteme; nu este el însuși furnizorul modelului.

În practică: LangGraph este util când trebuie să descrii explicit pașii unui agent1, să păstrezi starea5 dintre pași și să poți relua execuția după o pauză sau o eroare.

În arhitectura noastră, LangGraph intră în Zona V — controllerul12 agentului1. Un nod poate apela un model prin Ollama, NIM sau un API7 extern. Alt nod poate apela un instrument4 prin MCP. Starea5 poate fi păstrată într-un mecanism persistent de stocare (backend). Permisiunile reale ale instrumentelor rămân însă responsabilitatea sistemului din jur.

Formulare utilă: LangGraph decide și păstrează traseul fluxului de lucru; Ollama sau NIM furnizează inferența; MCP poate standardiza conexiunea la instrumente4; OpenShell poate limita execuția periculoasă. Ele pot coopera tocmai pentru că nu sunt același tip de lucru.

MCP — protocol de conectare, nu „agent universal”

MCP este probabil numele cel mai ușor de desenat greșit, deoarece este un standard de comunicare, nu o aplicație unică.

Legătura cu Lecțiile 1 și 3

În Lecția 1 am folosit formularea scurtă „MCP permite unui model să folosească instrumente4”. În Lecția 3 am rafinat-o: MCP conectează aplicații AI la capabilități externe printr-o arhitectură client–server. Acum facem ultimul pas de precizie: modelul poate influența alegerea unei acțiuni, dar software-ul-gazdă și clientul MCP sunt componentele care vorbesc efectiv protocolul19 cu serverul MCP.

Model Context Protocol19 definește o arhitectură gazdă–client–server (host–client–server) construită pe JSON-RPC, un format de mesaje de tip cerere–răspuns. În specificația curentă 2026-07-28, nucleul protocolului este stateless: fiecare cerere este autonomă și poartă versiunea protocolului și funcțiile relevante. Serverele MCP pot expune instrumente4 (tools), resurse (resources) și prompturi3 (prompts), iar o aplicație-gazdă (host) creează clienți MCP care comunică fiecare cu un server.

În practică: MCP îți permite să conectezi aceeași aplicație AI la servere diferite pentru fișiere, baze de date sau servicii, folosind un protocol19 comun în locul unei integrări complet diferite pentru fiecare.

Un server MCP nu este, el însuși, instrumentul4 pe care îl expune. Un server poate expune mai multe instrumente, iar o resursă și un prompt3 sunt primitive diferite de un instrument. MCP standardizează schimbul dintre componente, dar nu garantează că o operație este sigură: autorizarea, consimțământul, validarea parametrilor și izolarea rămân responsabilități ale aplicației-gazdă, serverului și infrastructurii.

HOST / APLICAȚIE DE AGENT
        │
        ├── MCP client ───── MCP server A ── tools
        │                              └──── resources
        │                              └──── prompts
        │
        └── MCP client ───── MCP server B ── tools / resources

În harta Lecției 3, MCP se află la granița dintre controllerul12 agentului1 și instrumente4 și date. Este o interfață standardizată între responsabilități, nu o înlocuire a lor. Controllerul decide dacă solicită un instrument. Serverul MCP expune instrumentul. Sistemul de autorizare decide dacă operația este permisă. Sandbox-ul20 limitează unde se execută. Toate aceste roluri pot exista separat.

Arhitectura MCP cu host, clienți și servere.
MCP standardizează comunicarea; autorizarea și sandbox-ul20 rămân responsabilități separate.
Traseu recomandat pentru prima parcurgere. Citește secțiunile 1–9 pentru a învăța metoda și rolurile produselor, apoi fă direct secțiunea 14, proba practică principală, și secțiunea 17, quiz-ul de verificare. Secțiunile 10–13 și 15–16 sunt aprofundare: comparații, securitate, arhitecturi complete și transferul metodei în alte domenii. Secțiunile 18–20 sunt recapitulare, vocabular și surse.

10. Cum compari corect: alternative, suprapuneri și componente complementare

Unele perechi sunt alternative parțiale, altele sunt complementare. Comparația are sens numai după ce ai stabilit responsabilitatea comună și constrângerile proiectului.

OpenClaw versus Hermes Agent

Acestea sunt comparabile ca tip de produs: ambele sunt aplicații agentice care includ un harness cu instrumente4, modele configurabile, persistență și mai multe interfețe de interacțiune. Diferențele de produs contează, dar comparația are sens pentru că aparțin unor categorii apropiate. Lecțiile dedicate OpenClaw și Hermes Agent1 vor analiza aceste diferențe în profunzime.

NemoClaw versus OpenShell

Nu sunt alternative directe. OpenShell este stratul de bază care asigură izolarea și aplicarea politicilor. NemoClaw compune un stack de referință21 peste OpenShell și adaugă configurarea inițială (onboarding), gestionarea ciclului de viață și configurarea agentului1 și a inferenței. Poți spune „NemoClaw folosește OpenShell”; nu este corect să spui „aleg între NemoClaw și OpenShell ca două sandbox20-uri echivalente”.

Ollama versus NIM

Comparația poate avea sens doar pentru responsabilitatea de servire și inferență. Ollama pune accent pe ușurința de folosire pentru programatori și poate folosi modele locale sau găzduite în cloud, în timp ce NIM livrează microservicii17 containerizate și optimizate din ecosistemul NVIDIA. Nu deduce din această descriere care este mai bun pentru proiectul tău; trebuie să compari modelul, hardware-ul, licența, costul, latența și operațiunile.

LangGraph versus MCP

Nu sunt concurenți. LangGraph organizează starea5 și pașii unui flux de lucru6 agentic. MCP standardizează conexiunea dintre o aplicație și servere care expun instrumente4, resurse și prompturi3. Un nod LangGraph poate apela un instrument prin MCP.

NeMo versus NemoClaw

Asemănarea de nume este înșelătoare. NeMo este o suită NVIDIA mai largă pentru modele, agenți1 și ciclul lor de viață. NemoClaw este un stack de referință21 orientat spre rularea controlată a agenților prin OpenShell. Într-o arhitectură poți întâlni componente NeMo și NemoClaw în același proiect fără ca ele să fie același lucru.

Hugging Face versus Ollama

„Hugging Face” este prea larg pentru o comparație directă. Poți compara un serviciu de inferență Hugging Face cu varianta prin Ollama, sau poți descărca de pe Hub un artefact9 compatibil cu un runtime local. Dar Hub-ul nu este „alternativa” Ollama în sens general: unul poate fi sursa artefactului, celălalt mecanismul de rulare.

Alege mai întâi responsabilitatea pe care o compari

Comparația are sens numai după ce ai stabilit responsabilitatea și constrângerile.

Dacă ai nevoie de...Compară în primul rând...Nu începe cu...
un server sau runtime de modeleOllama, NIM, vLLM, alte servere compatibile cu modelul și hardware-ulOpenShell sau MCP
un controller12 sau workflow6 cu stare5 (stateful)LangGraph, o mașină de stări implementată intern sau alte framework-uri de orchestrare18Ollama sau NIM
o aplicație personală de agent1 sau un gateway14OpenClaw, Hermes Agent1 și produse din aceeași categorieMCP ca și cum ar fi aplicație
izolare și politici de execuțieOpenShell, containere restricționate, VM-uri și alte sandbox20-uriun model mai „sigur”
distribuție de modele și dateHub-uri, depozite și politicile lorun orchestrator de agent1
integrare standardizată a instrumentelor4MCP, API-uri7, pluginuri sau integrare directăservere de model16

Chiar și după ce ai ales categoria corectă, comparația trebuie să folosească criterii relevante: compatibilitate, licență, confidențialitate, cost, latență, observabilitate, maturitate operațională, suprafață de atac și efort de mentenanță. „Are mai multe funcții” nu este criteriu suficient.

11. Securitate: un nume de produs nu este o limită de încredere

Într-un sistem agentic, întrebarea „ce poate face?” trebuie urmată imediat de „cine îi permite și unde este aplicată limita?”. Prin limită de încredere înțelegem locul în care sistemul verifică dacă o acțiune are voie să se întâmple și până unde poate ajunge.

Unele produse din această lecție oferă funcții de securitate, dar rolurile trebuie separate:

  • OpenShell este conceput explicit pentru sandboxing și politici de execuție și rețea;
  • NemoClaw compune politici și deployment peste OpenShell pentru un stack de referință21;
  • OpenClaw are politici pentru instrumente4 și opțiuni de sandboxing, dar instrumentele pot rula direct pe sistemul-gazdă (host) în anumite configurații — nu presupune izolare doar din numele produsului;
  • Hermes Agent1 oferă aprobări și opțiuni de izolare și un backend pentru terminal, dar configurația efectivă decide autoritatea;
  • MCP transportă funcții între client și server, dar nu transformă automat un instrument4 periculos într-un instrument sigur;
  • Ollama sau NIM servesc modele; faptul că modelul este local sau containerizat nu definește singur permisiunile agentului1;
  • LangGraph poate implementa pași de aprobare și întreruperi, dar izolarea sistemului de operare rămâne altă responsabilitate;
  • Hugging Face/NeMo includ mecanisme de acces, deployment sau mecanisme de protecție în anumite componente, dar trebuie numită componenta concretă și politica folosită.
Regula de siguranță: dacă într-o diagramă nu poți arăta exact unde este verificată permisiunea unei acțiuni cu efect real, arhitectura nu este încă suficient de precisă.

12. Exemple complete: aceleași produse, roluri diferite

Nu memorăm combinații recomandate. Urmărim responsabilitățile ca să vedem de ce anumite componente pot apărea împreună.

Întrebarea: Exemplul A — asistent personal cu model local: ce componente sunt necesare și cine răspunde de fiecare?

De ce contează: Este cel mai simplu stack complet: interfață, controller12, model local și o integrare exterioară. Dacă agentul1 primește acces la shell sau fișiere sensibile, arhitectura mai are nevoie de o limită de execuție și politici potrivite; desenul nu le rezolvă automat.

Cum afli răspunsul: Din responsabilitățile din secțiunile 5 (OpenClaw), 7 (Ollama) și 9 (MCP); fiecare componentă își justifică plasarea prin ce face, nu prin nume.

Un răspuns bun și unul slab: Bun: „OpenClaw controlează agentul1 și interfața; Ollama servește modelul; MCP standardizează integrarea cu calendarul.” Slab: „folosim OpenClaw cu AI” — o propoziție care nu spune cine decide și ce atinge.

Telegram
   │
   ▼
OpenClaw ── controller + sesiuni + instrumente
   │
   ├────────► Ollama ── model local
   │
   └────────► MCP client ──► server MCP calendar

Întrebarea: Exemplul B — flux de lucru6 într-o companie, cu model servit prin NIM: cine decide traseul și cine servește inferența?

De ce contează: Arată diferența dintre orchestrare18 și servire: LangGraph decide traseul și păstrează starea5, NIM expune inferența ca endpoint, iar MCP leagă aplicația de funcții externe; politica de identitate a CRM-ului și aprobarea umană nu sunt asigurate automat de niciunul.

Cum afli răspunsul: Din responsabilitățile din secțiunile 9 (LangGraph, MCP) și 7 (NIM); fiecare săgeată a diagramei corespunde unei componente numite.

Un răspuns bun și unul slab: Bun: „LangGraph decide traseul; NIM servește inferența; MCP leagă CRM-ul și documentele; identitatea și aprobarea se proiectează separat.” Slab: „NIM face totul” — un microserviciu17 de inferență nu are politici de CRM.

Aplicație web
    │
    ▼
LangGraph ── stare + workflow + pas de aprobare
    │
    ├────────► NIM ── endpoint de inferență
    │
    └────────► MCP ── CRM / documente / instrumente

Întrebarea: Exemplul C — agent1 persistent în limite de execuție stricte: cum colaborează Hermes Agent, NemoClaw și OpenShell?

De ce contează: Este traseul documentat în prezent pentru rularea controlată: Hermes Agent1 rămâne controllerul12, NemoClaw pregătește integrarea cu OpenShell, iar OpenShell aplică izolarea și politicile mediului; modelul rămâne o dependență separată.

Cum afli răspunsul: Din secțiunea 6 și din diagrama text de mai jos: Hermes Agent1 nu rulează direct în OpenShell, ci prin NemoClaw.

Un răspuns bun și unul slab: Bun: „Hermes Agent1 decide; NemoClaw configurează ciclul de viață; OpenShell izolează execuția; modelul e o dependență.” Slab: „NemoClaw rulează agentul în OpenShell” — omite cine păstrează starea5 și cine decide pașii.

Utilizator
   │
   ▼
Hermes Agent
   │
   ▼
NemoClaw — onboarding + configurare + ciclu de viață
   │
   ▼
OpenShell sandbox
   │
   ├────────► inferență configurată
   └────────► rețea / fișiere conform politicii

Întrebarea: Exemplul D — stack de referință21 NemoClaw cu OpenClaw: unde se termină aplicația și unde începe stack-ul de referință?

De ce contează: Este exemplul în care cele trei nume sunt cel mai ușor de confundat: OpenClaw este aplicația și gateway-ul14 agentului1, NemoClaw compune și administrează stack-ul de referință21, OpenShell furnizează stratul de bază pentru izolare și politici.

Cum afli răspunsul: Din secțiunile 5, 6 și din tabela din secțiunea 4: fiecare nume primește responsabilitatea principală, iar diagrama arată ordinea apelurilor, nu o proprietate a vreunui produs.

Un răspuns bun și unul slab: Bun: „OpenClaw primește sarcina de pe canal; NemoClaw compune stack-ul; OpenShell limitează execuția la rețeaua permisă explicit.” Slab: „NemoClaw și OpenClaw sunt același lucru” — confuzia din Diagrama 8 a lecției.

Canal / operator
      │
      ▼
OpenClaw (agent)
      │
      ▼
NemoClaw (blueprint + ciclu de viață + configurare)
      │
      ▼
OpenShell (sandbox + politici + gateway)
      │
      ├────────► inferență configurată
      └────────► rețea permisă explicit
Notă despre planșa cu cele patru arhitecturi: versiunea grafică anterioară a fost eliminată din această ediție deoarece desena Hermes Agent1 direct în OpenShell. Traseul documentat în prezent este Hermes Agent → NemoClaw → OpenShell. Diagramele text de mai sus sunt sursa corectă până când planșa grafică este regenerată.

13. Cinci familii de confuzii pe care trebuie să le recunoști

În loc să memorăm zece corecții aproape identice, grupăm erorile după mecanismul care le produce. Aceste cinci familii vor reapărea în exercițiul cu diagrame.

Fiecare card pornește de la o propoziție pe care o spune des cineva care învață. Citește-o, încearcă să vezi singur problema, apoi citește explicația.

1. Model ↔ runtime de inferență sau server de model

Ce spune cineva: „Ollama este modelul”, „NIM este fișierul de ponderi”.

De ce este greșit: modelul este familia de rețele antrenate, ponderile stau într-un artefact9 de model, iar runtime-ul sau serverul este programul care îl execută și îl servește. Sunt trei obiecte care se potrivesc între ele prin compatibilitate, nu unul singur cu trei nume.

Ce se întâmplă de fapt: un agent1 funcționează chiar și fără ca vreo componentă „de model” să fie instalată. Comandă reală pe Ubuntu 24.04:

command -v ollama
( fără rezultat — cod de retur 1 )

Pe aceeași mașină, agentul1 din laboratorul 2 a rulat complet și a ajuns în starea5 waiting_for_review, fiindcă bucla de control nu depinde de prezența unui server de model16.

Întrebarea corectă și cum afli răspunsul: care este modelul sau artefactul9 și ce software îl execută ori îl servește? Îl afli din inventar și din documentația fiecărei componente, nu din numele comercial.

2. Agent ↔ model

Ce spune cineva: „OpenClaw este LLM-ul2”, „Hermes Agent1 este modelul Hermes”.

De ce este greșit: aplicația agentului1 controlează bucla — starea5, pașii, instrumentele4 — iar modelul este componenta apelată la nevoie pentru text sau decizii. Ele există independent: aplicația poate schimba modelul, modelul poate fi folosit de alte aplicații.

Ce se întâmplă de fapt: același agent1 din laboratorul 2 a terminat o sarcină reală fără ca vreun model să fie apelat deloc:

./src/lesson02_invoice_agent.py --input data/inbox/invoice_complete.json --trace-file logs/lesson02/complete.jsonl | jq '{status, actions_taken}'
{
  "status": "waiting_for_review",
  "actions_taken": [
    "calculate_totals",
    "prepare_review_package",
    "wait_for_human_review"
  ]
}

Întrebarea corectă și cum afli răspunsul: ce aplicație controlează bucla și ce model folosește? Îl afli din configurația aplicației și din trace-ul rulării, care înregistrează fiecare apel.

3. Controller ↔ sandbox

Ce spune cineva: „LangGraph izolează shell-ul”, „OpenShell decide următorul pas”.

De ce este greșit: cele două răspund la întrebări diferite. Controllerul12 decide ce acțiune urmează, în limitele politicii; sandbox-ul20 decide unde și cât poate atinge acea acțiune — fișiere, rețea, dispozitive. Un framework de orchestrare18 nu oprește niciun apel de sistem, iar un sandbox nu are obiectiv.

Ce se întâmplă de fapt: în laboratorul 2, ordinea regulilor din controller12 a decis comportamentul: cu validarea înaintea pașilor de progres, scenariul cu date lipsă s-a oprit controlat în waiting_for_input (secțiunea 10.2 a laboratorului), fără să atingă vreun instrument4 — dovadă că decizia și limitarea sunt mecanisme separate, cu teste separate.

Întrebarea corectă și cum afli răspunsul: cine decide acțiunea și cine limitează locul și permisiunile de execuție? Se află din codul controllerului12 și din configurația de izolare — două fișiere diferite, verificate separat.

4. Protocol ↔ instrumente sau date

Ce spune cineva: „MCP este baza de date”, „MCP este instrumentul4”.

De ce este greșit: MCP este protocolul19 prin care aplicația agentului1 comunică cu servere care expun instrumente4 și resurse. Protocolul definește cum circulă cererile; capacitatea reală — citirea dintr-o bază de date, scrierea într-un CRM — aparține serverului și instrumentului expus.

Ce se întâmplă de fapt: fără niciun server MCP instalat, un agent1 poate funcționa complet, iar cu un server MCP conectat, agentul primește exact instrumentele4 pe care serverul le expune — lista se citește din configurație, nu din numele protocolului19.

Întrebarea corectă și cum afli răspunsul: ce componentă comunică prin protocol19 și ce capabilitate reală este expusă? Se află din lista serverelor MCP configurate și din schemele instrumentelor4 pe care fiecare le publică.

5. Nume-umbrelă ↔ componentă concretă

Ce spune cineva: „Hugging Face este o bibliotecă”, „NeMo este NemoClaw”.

De ce este greșit: un nume-umbrelă22 acoperă mai multe componente concrete — Hub, biblioteci, servicii — care au permisiuni, costuri și documentații diferite. Tratarea numelui-umbrelă ca o bibliotecă duce la decizii despre stratul greșit.

Ce se întâmplă de fapt: chiar un cuvânt comun precum „GPU11” acoperă componente diferite pe aceeași mașină. Ieșire reală a comenzii lspci | grep -i vga pe Ubuntu 24.04:

lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Crystal Well Integrated Graphics Controller (rev 08)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Venus XT [Radeon HD 8870M / R9 M270X/M370X] (rev 83)

Două plăci, un cuvânt-umbrelă: orice decizie „despre GPU-ul11 de pe mașină” trebuie să numească placa concretă.

Întrebarea corectă și cum afli răspunsul: despre ce produs, bibliotecă, serviciu sau proiect concret vorbim? Se află din documentația componentei concrete și, unde există, din inventarul mașinii.

14. Găsește greșeala — zece diagrame intenționat greșite

Aceasta este proba practică principală a Lecției 4. Înainte să deschizi răspunsul, rescrie mental fiecare diagramă folosind responsabilitățile din Lecția 3.

Zece arhitecturi intenționat greșite pentru exercițiul principal.
Înainte să deschizi răspunsul, identifică ce categorie a fost confundată și redesenează responsabilitățile separat.

Diagrama 1 — „Ollama trimite e-mailul”

Utilizator → Ollama → Gmail → e-mail trimis
Cheia instructorului — diagrama corectată
Diagrama 1 corectată: utilizatorul trimite cererea agentului sau controllerului, care folosește Ollama pentru inferență și instrumentul Gmail pentru trimitere; trimiterea trece prin aprobare și politică.
Ollama dă inferență; trimiterea are propriul instrument4 și propria autoritate.

Diagrama susține că Ollama primește cererea utilizatorului și trimite singur e-mailul; în realitate Ollama este un runtime local care servește modele, iar decizia și trimiterea aparțin altor componente. Ollama este un runtime cu server care descarcă și execută modele pe calculatorul local (Lecția 3, secțiunea 6.4): primește o cerere de inferență și întoarce text generat. El nu știe care este sarcina, nu păstrează starea5 între pași și nu are drepturi pe contul tău de Gmail.

Categoriile confundate: runtime-ul este desenat ca actor care decide, deși aceea este responsabilitatea controllerului12 — componenta care ține starea5 și alege pașii (Lecția 3, secțiunea 7.1) — iar instrumentul4 de e-mail este desenat ca etapă care „dorește” să trimită, deși el execută doar o acțiune autorizată de o politică. Diagrama corectată separă exact cele două: Utilizator → agent sau controller → Ollama (model) + instrument Gmail → aprobare și politică → trimitere.

Capcana: într-o diagramă cu trei casete, runtime-ul pare suficient pentru tot. Pentru constructorul de agenți1, separarea arată unde se acordă permisiunile: dreptul de trimitere se acordă instrumentului, iar politica se aplică controllerului12 — niciodată modelului.

Diagrama 2 — „Hugging Face este modelul”

Aplicație → Hugging Face → răspuns
Cheia instructorului — diagrama corectată
Diagrama 2 corectată: aplicația folosește fie un artefact descărcat de pe Hub, executat cu biblioteca transformers, fie un serviciu de inferență; ambele drumuri duc la răspuns.
Numește componenta exactă, nu numele-umbrelă.

Diagrama susține că „Hugging Face” este componenta care produce răspunsul; numele acoperă de fapt trei componente diferite, cu roluri și permisiuni diferite. Hugging Face Hub este depozitul public de unde descarci artefacte9 de model; transformers este o bibliotecă Python care încarcă și execută modele; un serviciu de inferență este un API7 găzduit care rulează modelul la furnizor (Lecția 3, secțiunile 6.1, 6.4 și 6.5).

Categoriile confundate: depozitul este desenat ca productor de răspunsuri, deși el doar distribuie fișiere; biblioteca este omisă complet, deși ea este codul care rulează în aplicația ta. Diagrama corectată numește componenta exactă: descărcarea artefactului de pe Hub, execuția prin transformers în aplicație sau apelul către serviciul de inferență.

Capcana: numele comerciale care acoperă tot lanțul ascund unde se produc costurile și unde se pun cheile. Pentru constructorul de agenți1, precizia contează practic: descărcarea de pe Hub nu cere cheie de serviciu, apelarea inferenței găzduite cere — două straturi, două politici diferite.

Diagrama 3 — „LangGraph este sandbox”

Agent → LangGraph security boundary → shell
Cheia instructorului — diagrama corectată
Diagrama 3 corectată: LangGraph sau controllerul cheamă instrumentul shell, care rulează în sandbox și sub politici înainte să atingă sistemul.
LangGraph organizează fluxul; limita de execuție este sandbox-ul20.

Diagrama susține că LangGraph este limita de securitate între agent1 și shell; în realitate LangGraph este un framework de orchestrare18, iar izolarea execuției este responsabilitatea sandbox20-ului. LangGraph organizează fluxul de lucru al unui agent ca graf de pași și tranziții (Lecția 3, secțiunea 7.1); sandbox-ul este mecanismul tehnic care limitează ce poate atinge un program — fișiere, rețea, dispozitive (Lecția 3, secțiunea 8.2).

Categoriile confundate: orchestrarea este desenată drept „security boundary”, deși un framework de grafuri nu oprește niciun apel de sistem; shell-ul este desenat ca destinație finală, deși el rulează sub politicile sandbox20-ului. Diagrama corectată desparte rolurile: LangGraph/controller → instrument shell → sandbox/politici → sistem.

Capcana: să crezi că „framework-ul agentic are securitate inclusă”. Pentru constructorul de agenți1, separarea contează la audit: întrebarea „ce oprește o comandă periculoasă?” trebuie să aibă răspuns într-un mecanism tehnic, nu în numele bibliotecii care ordonează pașii.

Diagrama 4 — „MCP este baza de date”

Agent → MCP database → clienți
Cheia instructorului — diagrama corectată
Diagrama 4 corectată: aplicația-gazdă a agentului folosește un client MCP, care vorbește cu un server MCP; serverul expune un instrument sau o resursă care interoghează baza de date.
MCP este protocol19; serverul expune instrumentul4 care interoghează baza.

Diagrama susține că MCP este o bază de date; MCP este un protocol19, iar baza de date rămâne o componentă separată pe care un server MCP o expune. MCP (Model Context Protocol) este protocolul prin care aplicația agentului1 — host-ul — accesează instrumente4 și resurse printr-un client MCP către servere MCP (Lecția 3, secțiunea 7.2). Un server MCP este un program care expune astfel de instrumente sau resurse.

Categoriile confundate: protocolul19 este desenat ca depozit de date, deși el definește doar cum circulă cererile; serverul MCP lipsește din diagramă, deși el este componenta care se conectează la baza de date. Diagrama corectată le pune pe toate: agent host → MCP client → MCP server → instrument sau resursă DB → bază de date.

Capcana: să crezi că „integrarea MCP” ține loc de permisiuni pe baza de date. Pentru constructorul de agenți1, separarea arată unde se aplică controlul: drepturile de citire și scriere se acordă serverului MCP și instrumentului expus, nu protocolului19, care nu are cont propriu.

Diagrama 5 — „NeMo = NemoClaw”

NVIDIA NeMo / NemoClaw → același produs → model
Cheia instructorului — diagrama corectată
Diagrama 5 corectată: NVIDIA NeMo este o suită (Framework, Agent Toolkit, servicii); NemoClaw este un stack de referință în care agentul rulează prin OpenShell.
Două responsabilități diferite, nu un produs.

Diagrama susține că NeMo și NemoClaw sunt același produs; ele sunt două componente diferite, cu responsabilități diferite în același ecosistem. NeMo este suita NVIDIA pentru antrenare și construire — cu Framework, Agent1 Toolkit și alte servicii; NemoClaw este un stack de referință21 pentru rularea agenților, construit peste OpenShell. Primul construiește și servește modele; al doilea asamblează un agent complet.

Categoriile confundate: suita este desenată ca punct final, deși ea produce componente; stack-ul de referință21 este redus la un nume de model, deși el însumează mai multe straturi. Diagrama corectată le desenează ca responsabilități diferite, nu ca două nume pentru același obiect.

Capcana: să compari modele sau runtime-uri „între NeMo și NemoClaw” — comparația are sens doar la nivelul componentei corecte. Pentru constructorul de agenți1, distincția economisește decizii greșite: ce alegi din suită este o decizie, ce folosește stack-ul de referință21 este alta.

Diagrama 6 — „NIM = weights”

Fișier NIM → GPU → tokeni
Cheia instructorului — diagrama corectată
Diagrama 6 corectată: artefactul de model este încărcat de motorul de inferență din NIM, expus prin API-ul NIM și folosit de aplicație.
NIM este microserviciul17 de inferență, nu un format de ponderi.

Diagrama susține că fișierul NIM conține GPU-ul11 și produce tokeni direct; NIM este de fapt microserviciul17 de inferență care deservește un model, nu un format de ponderi. Ponderile (weights) sunt valorile numerice învățate, stocate în artefacte9 de model (Lecția 3, secțiunea 6.1); NIM este serviciul NVIDIA care împachetează un runtime și expune modelul prin API7 (Lecția 3, secțiunea 6.4).

Categoriile confundate: fișierul este desenat ca sursă de calcul, deși el este dată stocată; GPU-ul11 este desenat ca consumator de fișier, deși el este pornit de un runtime; API-ul7 lipsește, deși el este interfața prin care aplicația primește tokeni. Diagrama corectată ordonează straturile: artefact sau model → motor sau runtime în NIM → API NIM → aplicație.

Capcana: să crezi că „descarci NIM-ul și modelul rulează singur”. Pentru constructorul de agenți1, separarea arată unde se plătește și unde se limitează: inferența se servește prin API-ul7 NIM, iar autoritatea rămâne la aplicația care îl apelează.

Diagrama 7 — „OpenShell înlocuiește agentul”

Utilizator → OpenShell → decide ce instrument urmează
Cheia instructorului — diagrama corectată
Diagrama 7 corectată: utilizatorul dă sarcina agentului sau controllerului, care decide acțiunea; OpenShell aplică politici și sandbox înainte ca acțiunea să ajungă la sistem.
Decizia aparține agentului1; OpenShell limitează execuția.

Diagrama susține că OpenShell decide ce instrument4 urmează; OpenShell limitează execuția, iar decizia aparține agentului1 sau controllerului12. OpenShell este stratul care aplică politici și sandbox20 asupra acțiunilor agentului — ce comenzi sunt permise, pe ce fișiere, în ce rețea. El nu are obiectiv și nu alege pași.

Categoriile confundate: stratul de politici este desenat ca creierul sistemului, deși el este mai degrabă un filtru; agentul1 lipsește din diagramă, deși el păstrează starea5 și propune acțiunile. Diagrama corectată pune decizia la locul ei: utilizator → agent sau controller → acțiune → OpenShell politici și sandbox → sistem.

Capcana: să integrezi politicile în interiorul deciziei și să crezi că „dacă e permis, fac”. Pentru constructorul de agenți1, separarea este exact modelul din Lecția 2: modelul propune, controllerul12 decide, iar stratul de politici permite sau blochează execuția reală.

Diagrama 8 — „NemoClaw este doar alt nume pentru OpenShell”

NemoClaw = OpenShell
Cheia instructorului — diagrama corectată
Diagrama 8 corectată: NemoClaw, cu blueprint, ciclu de viață și configurare, configurează și folosește OpenShell, care creează sandbox-ul.
Relație de compoziție, nu două nume pentru același lucru.

Diagrama susține că NemoClaw și OpenShell sunt același produs cu nume diferite; relația corectă este de compoziție — NemoClaw folosește OpenShell ca strat de bază și adaugă propriile componente. Compoziția înseamnă că un produs include și configurează altul, fără ca cele două să devină identice: NemoClaw adaugă blueprint-uri, gestionarea ciclului de viață și configurarea peste ce oferă OpenShell.

Categoriile confundate: stratul de bază este desenat ca întregul produs, deși el este o parte; componentele adăugate lipsesc din diagramă, deși ele sunt diferența dintre cele două nume. Diagrama corectată arată relația: NemoClaw → configurează și folosește OpenShell → sandbox.

Capcana: să citești știri despre OpenShell și să le atribui automat lui NemoClaw, sau invers. Pentru constructorul de agenți1, desenarea compoziției contează la actualizări: o schimbare în OpenShell ajunge la NemoClaw prin stratul de bază, iar ce este specific NemoClaw se modifică separat.

Diagrama 9 — „OpenClaw este furnizorul modelului”

OpenClaw model weights → inferență → tool
Cheia instructorului — diagrama corectată
Diagrama 9 corectată: agentul OpenClaw se leagă de un furnizor de model sau de un runtime și, separat, de instrumente.
OpenClaw este aplicația și gateway-ul14 agentului1; modelul se configurează separat.

Diagrama susține că OpenClaw produce ponderile modelului și le rulează; OpenClaw este aplicația și gateway-ul14 agentului1, iar modelul cu furnizorul său se configurează separat. OpenClaw este programul agentului care primește sarcini și apelează instrumente4; ponderile — valorile învățate ale unui model — vin dintr-un artefact9 livrat de un furnizor ales de tine (Lecția 3, secțiunea 6.1).

Categoriile confundate: aplicația este desenată ca furnizor de model, deși furnizorul este o alegere de configurare; instrumentele4 sunt comprimate într-o singură etapă de inferență, deși ele se atașează separat de model. Diagrama corectată desparte traseele: OpenClaw agent → furnizor de model sau runtime și, separat, OpenClaw agent → instrumente.

Capcana: să crezi că schimbarea modelului înseamnă schimbarea aplicației. Pentru constructorul de agenți1, separarea este chiar avantajul: poți înlocui furnizorul de model fără să atingi OpenClaw, iar instrumentele4 își păstrează permisiunile indiferent de modelul ales.

Diagrama 10 — „Hermes Agent = model Hermes”

Hermes Agent.gguf → Ollama → agent
Cheia instructorului — diagrama corectată
Diagrama 10 corectată: Hermes Agent folosește Ollama, care servește un model Hermes compatibil; agentul poate folosi și alte modele, iar modelul poate fi folosit de alte aplicații.
Aplicația și artefactul9 de model sunt lucruri diferite.

Diagrama susține că fișierul „Hermes Agent1.gguf” este aplicația agent, rulată de Ollama; de fapt numele acoperă două obiecte diferite — aplicația Hermes Agent și un posibil model numit Hermes, ambalat ca artefact9. Extensia .gguf denumește un artefact de model — fișierul cu ponderi (Lecția 3, secțiunea 6.1) — nu un program agent.

Categoriile confundate: aplicația și artefactul9 poartă același nume comercial, deși pot exista independent; Ollama este desenat ca „creator” de agent1, deși el doar servește modelul configurat. Diagrama corectată poate fi Hermes Agent → Ollama → model Hermes compatibil, dar Hermes Agent poate folosi și alte modele, iar un model Hermes poate fi folosit de alte aplicații.

Capcana: să deduci arhitectura din numele fișierelor. Pentru constructorul de agenți1, regula practică este: aplicația, artefactul9 și runtime-ul sunt trei obiecte care se potrivesc între ele prin compatibilitate, nu prin nume — și fiecare se verifică separat.

15. Cinci domenii: aceeași hartă, combinații diferite

Un nume de produs nu are valoare în vid. Rolul lui devine clar abia când știm ce problemă rezolvă sistemul și ce responsabilități sunt necesare.

Documente și cercetare

Un agent1 care citește un corpus verificat poate avea nevoie de un controller12, căutare în documente (retrieval), citări și un model bun la sinteză. Hugging Face poate fi sursa unui model sau a unui dataset, Ollama sau NIM pot servi inferența, LangGraph poate orchestra pașii, iar MCP poate conecta o sursă documentară. OpenShell devine relevant mai ales dacă agentul execută cod sau operează asupra fișierelor, nu prin simplul fapt că sistemul caută în documente (RAG).

Operațiuni de business

Într-un agent1 care clasifică solicitări, consultă CRM-ul și pregătește acțiuni, întrebările dominante sunt aprobarea, identitatea și auditul. MCP poate standardiza anumite integrări, LangGraph poate controla un workflow6 cu pași de aprobare, iar un model servit prin Ollama, NIM sau un furnizor extern de model poate oferi inferența necesară pentru interpretarea limbajului. Niciunul dintre aceste produse nu înlocuiește drepturile reale din CRM sau politica organizației.

Programare și administrarea fișierelor

Aici limita de execuție devine centrală. Un harness precum OpenClaw sau Hermes Agent1 poate coordona modelul și instrumentele4, dar accesul la shell, Git, fișiere și rețea trebuie limitat separat. OpenShell sau un sandbox20 echivalent poate deveni o piesă arhitecturală importantă. Un server de model16 mai bun nu compensează un agent căruia i-ai dat permisiuni excesive.

Media și producție creativă

Sistemul poate combina modele de text, imagine, audio și video, fiecare cu alt runtime și alt hardware. Hugging Face poate furniza artefacte9 sau biblioteci, NeMo poate apărea pentru anumite componente de vorbire sau multimodale, iar controllerul12 agentului1 coordonează serviciile. Lecția principală rămâne aceeași: „modelul de transcriere”, „runtime-ul”, „agentul de producție” și „stocarea materialului brut” sunt responsabilități diferite.

Senzori, știință și sisteme inginerești

Agentul1 nu trebuie să înlocuiască simulatorul, baza de date sau modelul fizic validat. Un workflow6 poate folosi LangGraph sau cod explicit pentru orchestrare18, MCP ori API-uri7 pentru conectarea la servicii, iar modelul lingvistic poate explica și coordona. În astfel de sisteme, „ce spune modelul” și „ce spune sursa tehnică de referință” trebuie păstrate separat.

Observație: aceeași tehnologie poate fi potrivită într-un domeniu și inutilă în altul. Nu porni de la „vreau să folosesc X”; pornește de la „ce responsabilitate trebuie îndeplinită și cu ce constrângeri?”.

16. Exerciții practice

Exercițiile verifică dacă poți aplica metoda la arhitecturi noi, nu doar dacă ai memorat tabelul din secțiunea 4.

Exercițiul 1 — Completează fișa unui produs

Sarcina: alege unul dintre cele zece nume și completează cele șapte întrebări ale decodorului: categorie, intrare, ieșire, responsabilitate, dependențe, autoritate, limită de securitate.

Un exemplu pentru LangGraph

Categorie: framework și runtime de orchestrare18. Fiecare câmp al decodorului primește apoi o propoziție proprie: intrarea — ce primește componenta — este formată din stare5, evenimente și rezultate ale modelului sau ale instrumentelor4; ieșirea este următorul nod sau următoarea acțiune, plus starea actualizată; responsabilitatea este controllerul12 și fluxul de lucru; dependențele sunt modelele, instrumentele și componentele backend configurate separat; autoritatea este numai cea pe care instrumentele conectate o au; limita de securitate nu este LangGraph în sine — trebuie proiectată în jurul instrumentelor și infrastructurii.

Exemplu concret: într-un graf care verifică o factură, LangGraph nu calculează totalul și nu decide aprobarea — el ordonează pașii și păstrează starea5 între ei. Capcana: să completezi câmpul „limită de securitate” cu numele framework-ului. Pentru constructorul de agenți1, fișa completată corect arată exact unde trebuie adăugate validările și permisiunile, în afara orchestratorului.

Exercițiul 2 — Dezambiguizează un nume-umbrelă

Sarcina: rescrie propoziția „folosim Hugging Face” în trei versiuni tehnic precise: una pentru stocarea modelului, una pentru bibliotecă și una pentru inferență.

Un răspuns posibil

Cele trei propoziții precise sunt: „Păstrăm artefactul9 într-un repository de model pe Hugging Face Hub”, „Încărcăm modelul prin biblioteca Transformers” și „Apelăm un serviciu de inferență Hugging Face compatibil cu modelul nostru”. Hub-ul este depozitul în care stau artefactele de model, Transformers este biblioteca Python care le încarcă și le execută, iar serviciul de inferență este API-ul7 găzduit care rulează modelul la furnizor — trei straturi, trei responsabilități.

Exemplu concret: aceeași echipă poate descărca un model de pe Hub, rula local cu Transformers și, când volumul crește, apela serviciul găzduit — fără să schimbe nimic în propoziția „folosim Hugging Face”, dar cu politici și costuri complet diferite.

Capcana: propoziția „folosim Hugging Face” ascunde exact informațiile de care ai nevoie la decizie: unde stau datele, ce rulează, cine plătește calculul. Pentru constructorul de agenți1, exercițiul antrenează regula generală a lecției: un nume-umbrelă22 se descompune în componente concrete înainte de orice altă decizie.

Exercițiul 3 — Separă NeMo de NemoClaw

Sarcina: scrie câte o propoziție pentru NeMo Framework, NeMo Agent1 Toolkit și NemoClaw, fără să folosești cuvântul generic „platformă”.

Un răspuns posibil

Cele trei propoziții sunt: „NeMo Framework este un framework pentru dezvoltarea și antrenarea modelelor generative”, „NeMo Agent1 Toolkit conectează și evaluează fluxuri de lucru agentice și instrumente4” și „NemoClaw este un stack de referință21 pentru rularea controlată a agenților prin OpenShell”. Fiecare propoziție numește o componentă concretă și rolul ei, fără cuvântul generic „platformă”, care ar acoperi toate trei fără să le distingă.

Exemplu concret: dacă vrei să antrenezi sau să ajustezi un model, te uiți la NeMo Framework; dacă vrei să conectezi și să evaluezi un flux agentic cu instrumente4, la Agent1 Toolkit; dacă vrei un stack gata asamblat pentru rularea controlată a agenților, la NemoClaw.

Capcana: numele aproape identice invită la o singură categorie comună — exact greșeala din Diagrama 5 a secțiunii 14. Pentru constructorul de agenți1, propozițiile separate devin rânduri separate în fișa stack-ului: fiecare are dependențe, autoritate și limite diferite.

Exercițiul 4 — Construiește arhitectura minimă

Sarcina: vrei un agent1 care citește documente locale și poate doar propune, nu modifica fișiere. Alege categorii de componente, nu neapărat produse. Marchează ce responsabilități poți amâna.

Un răspuns posibil

Arhitectura minimă este: interfață CLI sau web simplă; un controller12 explicit sau un framework de orchestrare18; modelul prin API7 sau printr-un runtime local; un singur instrument4, doar pentru citirea documentelor; stare5 minimă; niciun instrument de scriere; autentificare și permisiuni potrivite mediului. Fiecare element rezolvă exact o responsabilitate din fișa stack-ului, fără componente „ca să fie acolo”.

Exemplu concret: agentul1 citește documentele din primit/, propune rezumate și acțiuni, dar nu poate scrie nicăieri — modificările rămân propuneri pentru un om. Un sandbox20 puternic poate fi amânat atât timp cât nu există execuție de cod sau scriere, dar politica de acces la documente rămâne necesară din prima.

Capcana: să adaugi de la început scriere, shell și integrări „ca să fie gata”. Pentru constructorul de agenți1, exercițiul arată ordinea creșterii: capabilitățile se adaugă pe măsură ce responsabilitățile o cer, iar fiecare capabilitate nouă vine cu propriile permisiuni și teste.

Exercițiul 5 — Repară o comparație greșită

Sarcina: cineva întreabă „pentru agentul1 meu este mai bun LangGraph sau Ollama?”. Rescrie întrebarea în două întrebări corecte.

Un răspuns posibil

Întrebarea se desparte în două: „Am nevoie de LangGraph sau de un controller12 implementat intern pentru orchestrarea stării5 și a pașilor?” și „Pentru inferență locală sau în cloud, Ollama este compatibil și potrivit cu modelul, hardware-ul și constrângerile mele?”. Întrebarea originală compară componente care nu rezolvă aceeași problemă: LangGraph este orchestrare18, Ollama este servire de modele.

Exemplu concret: poți folosi ambele în același sistem — LangGraph ordonează pașii și păstrează starea5, iar Ollama servește modelul local la care orchestratorul trimite cererile de inferență. Alegerea unuia nu exclude celălalt, deci o comparație directă „mai bun” nu are sens.

Capcana: comparațiile de produse se fac între alternative pentru aceeași responsabilitate, nu între componente de straturi diferite. Pentru constructorul de agenți1, exercițiul antrenează întrebarea dinaintea oricărei comparații: „ce responsabilitate rezolvă fiecare?” — abia apoi alternativele pot fi cântărite.

Exercițiul 6 — MCP și securitatea

Sarcina: desenează un server MCP care expune un instrument4 delete_file. Marchează patru locuri diferite unde pot exista controale.

Un răspuns posibil

Patru locuri diferite unde pot exista controale: aplicația-gazdă poate cere confirmarea înainte de apel; clientul sau gazda poate aplica o listă de instrumente4 permise (allowlist); serverul MCP poate valida calea și identitatea cererii; sandbox-ul20 sau sistemul de operare poate limita fișierele accesibile. Host-ul este aplicația agentului1, clientul MCP este componenta ei care vorbește protocolul19, iar serverul MCP expune instrumentul delete_file.

Exemplu concret: agentul1 propune ștergerea unui fișier; host-ul cere aprobarea omului, allowlist-ul clientului verifică că instrumentul4 este permis, serverul validează că calea aparține folderului destinat, iar sistemul de operare refuză orice în afara lui. Patru garduri succesive, fiecare tehnic.

Capcana: să te bazezi pe un singur strat — protocolul19 este doar canalul prin care circulă cererea, nu mecanismul care o autorizează. Pentru constructorul de agenți1, exercițiul arată că securitatea agentului este o succesiune de controale pe traseul propunerii, nu o proprietate a protocolului.

Exercițiul 7 — Decodează un produs care nu apare în lecție

Sarcina: alege un produs agentic apărut recent. Folosește numai documentația oficială și completează cele șapte întrebări. Nu îl compara cu nimic până nu îi stabilești categoria.

Criteriu de reușită

Criteriul de reușită: răspunsul trebuie să distingă faptele din documentație de concluziile tale, să numească versiunea și data consultării și să poată indica cel puțin o responsabilitate pe care produsul NU o rezolvă. Prima cerință separă ce spune producătorul de ce ai înțeles tu; a doua face verificarea repetabilă — o fișă fără versiune și dată nu poate fi recitită când produsul se schimbă; a treia obligă la plasare în stack, nu doar la o listă de funcții.

Exemplu concret: „conform documentației versiunii X, consultate la data Y, produsul expune un API7 de conversație; NU include un mecanism de aprobare umană” — fiecare propoziție are sursă și data ei.

Capcana: să copiezi descrierea de marketing ca fișă — descrierile nu spun ce NU face produsul. Pentru constructorul de agenți1, exercițiul antrenează citirea documentației ca sursă de dovezi: responsabilitățile, limitele și versiunea sunt cele care ajung apoi în fișa stack-ului și în deciziile de configurare.

Exercițiul 8 — Refă din memorie doar diagramele la care ai greșit

Sarcina: după ce ai terminat secțiunea 14, închide răspunsurile și redesenează numai diagramele pe care nu le-ai corectat corect din prima. Dacă le-ai rezolvat pe toate, alege cele trei care ți s-au părut cele mai ușor de confundat și refă-le fără să privești lecția.

Legendă vizuală pentru exercițiu: albastru = model/inferență; verde = instrumente4 și date; portocaliu = aprobare umană; contur roșu = limită de securitate; mov = stare5 și memorie. Culorile sunt un ajutor de citire, nu categorii tehnice suplimentare.

Criteriu de reușită

Criteriul de reușită: fiecare diagramă refăcută trebuie să separe cel puțin controllerul12, inferența, instrumentele4 și datele și limita de securitate, acolo unde ele sunt relevante, și să poată explica în cuvinte de ce fiecare săgeată există. Legenda vizuală rămâne un ajutor de citire — albastru pentru model și inferență, verde pentru instrumente și date, portocaliu pentru aprobarea umană, contur roșu pentru limita de securitate, mov pentru stare5 și memorie — nu categorii tehnice suplimentare.

Exemplu concret: o diagramă corectată pentru „Ollama trimite e-mailul” arată controllerul12 care decide, Ollama care servește modelul, instrumentul4 de e-mail și blocul de aprobare — fiecare desenat ca componentă separată, cu motivul săgeții scris lângă ea.

Capcana: să redesenezi diagrama la fel, dar cu culorile corecte — forma contează, nu decorul: două responsabilități în aceeași cutie rămâne o greșeală, indiferent de culoare. Pentru constructorul de agenți1, refacerea din memorie a diagramelor greșite este testul care arată dacă metoda decodorului a devenit reflex, nu exercițiu de copiat.

17. Quiz cu răspunsuri explicate

Răspunde înainte să deschizi explicația. Pentru fiecare întrebare încearcă să spui: categoria, responsabilitatea principală și confuzia pe care o evităm.

1

OpenClaw este un LLM2?

Deschide răspunsul explicat

Nu — OpenClaw este o aplicație și un gateway14 de agent1 care conectează modele, instrumente4, sesiuni și canale, iar modelul este configurat separat. Aplicația agentului este programul care păstrează sesiunile, expune canalele și apelează instrumentele; gateway-ul este partea care primește cererile și le distribuie; modelul este componenta care generează textul și poate fi schimbat prin configurație.

Exemplu concret: aceeași instalare OpenClaw poate lucra cu un model accesat la distanță astăzi și cu unul local mâine — aplicația rămâne aceeași, configurația se schimbă. Dacă modelul ar fi același lucru cu aplicația, această schimbare nu ar fi posibilă.

Capcana: numele de produs care apare în toate discuțiile despre AI pare să denumească modelul. Pentru constructorul de agenți1, distincția decide unde se fac setările: promptul3 și permisiunile rămân la aplicație, iar alegerea modelului este o dependență configurată, nu identitatea produsului.

2

Hermes Agent1 și un model Hermes sunt același obiect tehnic?

Deschide răspunsul explicat

Nu — Hermes Agent1 este aplicația și harness-ul13 agentic, iar un model Hermes este un model sau un artefact9 folosit pentru inferență; agentul poate folosi alte modele, iar modelul poate fi folosit de alte aplicații. Harness-ul este învelișul care ține starea5, instrumentele4 și bucla; artefactul este fișierul cu ponderi al modelului.

Exemplu concret: un fișier cu extensia .gguf numit „Hermes” este un artefact9 care poate fi rulat de runtime-uri compatibile; Hermes Agent1 poate fi configurat să folosească acel model sau un altul. Numele comercial comun nu creează o legătură tehnică obligatorie.

Capcana: să deduci arhitectura din numele fișierelor — exact greșeala din Diagrama 10 a secțiunii 14. Pentru constructorul de agenți1, separarea înseamnă libertate de alegere pe ambele părți: aplicația se schimbă fără model, modelul fără aplicație, iar compatibilitatea se verifică separat.

3

Ce relație există între NemoClaw și OpenShell?

Deschide răspunsul explicat

NemoClaw este un stack de referință21, cu un plan versionat (blueprint) și instrumente4 auxiliare, care folosește OpenShell ca strat de bază pentru sandbox20, politici și gateway14 — nu sunt două nume pentru același produs. Stack-ul de referință este o compoziție verificată a mai multor componente; OpenShell este stratul care izolează execuția și aplică politicile.

Povestea relației, în ordine: NemoClaw preia configurația agentului1, îl pregătește pentru rulare și îl pune în limitele stabilite de OpenShell; OpenShell execută și aplică politicile; NemoClaw adaugă deasupra blueprint-ul și gestionarea ciclului de viață. Relația este de compoziție, nu de sinonimie.

Capcana: știrile despre unul dintre ele citite ca știri despre celălalt. Pentru constructorul de agenți1, desenarea compoziției contează la actualizări: ce se schimbă în OpenShell ajunge la NemoClaw prin stratul de bază, iar ce este specific NemoClaw evoluează separat.

4

Dacă un model este accesat prin Ollama, înseamnă automat că inferența este locală?

Deschide răspunsul explicat

Nu — Ollama oferă atât modele locale, cât și modele accesate în cloud, deci trebuie verificate modelul și furnizorul selectate și locul unde rulează efectiv inferența. Local înseamnă că inferența se execută pe calculatorul tău; cloud înseamnă că se execută pe infrastructura furnizorului, iar datele trec prin rețea.

Exemplu concret: aceeași comandă către Ollama poate servi un model descărcat pe disc sau un model oferit ca serviciu; din răspunsul primit nu se vede întotdeauna diferența, de aceea se verifică din configurație ce model și ce furnizor sunt selectate.

Capcana: „rulez prin Ollama, deci totul e local și privat” — afirmația este adevărată numai pentru varianta locală. Pentru constructorul de agenți1, verificarea contează pentru clasificarea datelor: datele confidențiale cer inferență care rulează acolo unde politica ta permite, iar asta se dovedește din configurație, nu din numele runtime-ului.

5

De ce „Hugging Face” nu poate fi plasat într-un singur strat?

Deschide răspunsul explicat

Pentru că numele „Hugging Face” acoperă Hub-ul, biblioteci, depozite de modele și date, aplicații și servicii de inferență — componente care aparțin unor straturi diferite ale stack-ului. Hub-ul este depozitul de artefacte9, bibliotecile sunt cod care rulează în aplicația ta, iar serviciile de inferență sunt API-uri7 găzduite; plasarea lor în harta zonelor este diferită.

Exemplu concret: „descărcăm modelul de pe Hugging Face” este Zona IV ca sursă de artefact9, „folosim biblioteca Transformers în aplicație” este Zona III ca framework, „apelăm serviciul de inferență” este Zona IV ca server. Aceeași etichetă, trei plasări.

Capcana: să plasezi numele-umbrelă direct în tabel, fără componenta concretă — nu plasezi de fapt nimic. Pentru constructorul de agenți1, regula din secțiunea 10 se aplică la maximum: numește componenta exactă, abia apoi plaseaz-o și compar-o.

6

Care este diferența dintre NeMo și NemoClaw?

Deschide răspunsul explicat

NeMo este o suită NVIDIA mai largă pentru dezvoltarea modelelor și ciclul de viață al agenților1, cu componente precum NeMo Framework și NeMo Agent Toolkit, iar NemoClaw este un stack de referință21 pentru rularea agenților prin OpenShell. Suita este setul de componente pentru construire și adaptare; stack-ul de referință este o compoziție gata asamblată și documentată pentru un scop anume.

Exemplu concret: dacă vrei să antrenezi sau să ajustezi un model, te uiți la NeMo Framework; dacă vrei să conectezi și să evaluezi un flux agentic cu instrumente4, la Agent1 Toolkit; dacă vrei rulare controlată a agenților, la NemoClaw peste OpenShell.

Capcana: numele aproape identice — o literă schimbată între „NeMo” și „NemoClaw” — invită la o singură categorie, exact greșeala din Diagrama 5. Pentru constructorul de agenți1, două decizii diferite se ascund în spatele lor: ce componentă din suită alegi pentru construire este o decizie, ce stack de referință21 folosești pentru rulare este alta.

7

NIM este modelul sau serviciul care îl expune?

Deschide răspunsul explicat

În această clasificare, NIM este microserviciul17 containerizat de inferență care expune un model prin API7; modelul servit rămâne o componentă separată. Microserviciul este un serviciu mic, independent, care rulează într-un container; API-ul este interfața prin care aplicația trimite cereri și primește răspunsuri.

Povestea relației, în ordine: un artefact9 de model există undeva stocat; NIM îl încarcă cu runtime-ul inclus și îl expune printr-un endpoint; aplicația trimite cereri la endpoint și primește tokeni. Fișierul NIM nu este fișierul de ponderi — este servirea care le folosește.

Capcana: să crezi că „am descărcat NIM-ul, deci am modelul”. Servirea poate exista fără alegerea modelului potrivit pentru sarcină. Pentru constructorul de agenți1, separarea permite să schimbi modelul servit fără să schimbi servirea, iar limitările de resurse se aplică serviciului, nu artefactului.

8

LangGraph și MCP rezolvă aceeași problemă?

Deschide răspunsul explicat

Nu — LangGraph orchestrează starea5 și pașii workflow6-ului, iar MCP standardizează conexiunea gazdă–client–server către instrumente4 (tools), resurse (resources) și prompturi3; pot fi folosite împreună. Orchestrarea înseamnă a decide ordinea pașilor și a păstra starea între ei; conexiunea standardizată înseamnă a expune și apela funcții externe printr-un contract comun.

Povestea, în ordine: LangGraph decide că următorul pas cere date din CRM; apelul către CRM poate pleca printr-un server MCP; răspunsul revine în starea5 orchestratorului, care alege pasul următor. Fiecare componentă face altceva: una ordonează, cealaltă conectează.

Capcana: să le compari ca alternative — sunt complementare, nu concurente. Pentru constructorul de agenți1, combinația este tipică: orchestrarea poate fi schimbată fără a atinge integrările, iar integrările se schimbă fără a atinge orchestrarea.

9

MCP garantează că un instrument4 este sigur?

Deschide răspunsul explicat

Nu — MCP definește protocolul19 și modul în care componentele își declară funcțiile și schimbă cereri și răspunsuri; autorizarea, consimțământul, confirmările, validarea parametrilor și izolarea trebuie proiectate și aplicate de aplicație. Autorizarea este verificarea drepturilor înaintea execuției, iar consimțământul este acordul explicit al utilizatorului pentru o acțiune.

Exemplu concret: un server MCP poate expune un instrument4 delete_file perfect documentat conform protocolului19 — și periculos deplin. Protocolul face instrumentul descoperibil și apelabil; nimic din el nu oprește ștergerea greșită.

Capcana: să tratezi „integrare standardizată” ca „integrare sigură”. Diferența se vede la primul instrument4 cu efect extern: protocolul19 îl transportă, securitatea trebuie să existe în jurul lui. Pentru constructorul de agenți1, exercițiul fixează lista minimă de controale: permisiuni, allowlist, confirmări și validări înaintea apelului real.

10

OpenShell poate înlocui modelul și controllerul12?

Deschide răspunsul explicat

Nu — OpenShell furnizează în primul rând mediul izolat și politica de execuție; agentul1 sau controllerul12 și modelul rămân responsabilități separate. Mediul izolat este spațiul în care programul poate rula cu acces doar la ce i s-a dat explicit; politica de execuție este setul de reguli aplicate la fiecare acțiune.

Exemplu concret: OpenShell poate limita un agent1 la un singur folder și la rețea blocată, dar nu îi spune ce sarcină are, nu păstrează progresul și nu alege instrumentul4 următor — toate aparțin controllerului12, iar modelul rămâne componenta apelată pentru limbaj.

Capcana: să crezi că „avem izolare, deci avem agent1” — izolarea fără buclă este doar un program închis într-un mediu sigur. Pentru constructorul de agenți, ordinea corectă este inversă față de diagrama greșită: controllerul12 decide, OpenShell limitează unde și cât, modelul servește limbajul.

11

Ce întrebare pui când documentația spune doar „NeMo”?

Deschide răspunsul explicat

Întrebarea corectă este „Care componentă NeMo?” — Framework, Agent1 Toolkit, Microservices sau alt modul; fără componenta concretă nu poți plasa numele corect în stack. Suita este familia de componente NVIDIA pentru modele și agenți, iar fiecare componentă are alt rol: dezvoltare, conectare de fluxuri agentice, servire.

Exemplu concret: „folosim NeMo” poate însemna antrenare cu Framework, integrare de fluxuri cu Agent1 Toolkit sau servire cu Microservices — trei plasări diferite în harta zonelor, cu dependențe și permisiuni diferite.

Capcana: să plasezi numele familiei direct în tabel, ca pe o singură componentă — exact confuzia nume-umbrelă22 din secțiunea 13. Pentru constructorul de agenți1, întrebarea aceasta este primul pas al decodorului pentru orice suită: componenta concretă decide plasarea, compatibilitatea și documentația pe care o citești.

12

Poate un agent1 folosi simultan LangGraph, NIM și MCP?

Deschide răspunsul explicat

Da — LangGraph poate controla fluxul de lucru, NIM poate furniza inferența, iar MCP poate conecta instrumentele4 și resursele; responsabilitățile sunt complementare. Complementare înseamnă că fiecare acoperă o responsabilitate diferită a fișei: orchestrare18, servire de model, integrări.

Povestea, în ordine: aplicația primește o sarcină; LangGraph o împarte în pași și păstrează starea5; la pasul care cere limbaj, trimite o cerere către NIM; la pasul care cere date externe, trece prin MCP către instrumentul4 potrivit; rezultatele revin în starea comună.

Capcana: să presupui că „merg împreună” din start — compatibilitatea concretă între versiuni, formate și permisiuni se verifică, iar responsabilitățile rămân separate chiar dacă produsele colaborează. Pentru constructorul de agenți1, combinația aceasta este tocmai arhitectura din Exemplul B al secțiunii 12: orchestrare18, inferență și integrări, fiecare pe rolul lui.

13

De ce „local” nu înseamnă automat „sigur”?

Deschide răspunsul explicat

Pentru că un agent1 local poate avea acces excesiv la fișiere, la rețea, la date de autentificare sau la shell — locul de execuție și limita de autoritate sunt proprietăți diferite. Local înseamnă doar că inferența și procesul rulează pe calculatorul tău; nu spune nimic despre ce are voie să atingă procesul.

Exemplu concret: un agent1 local rulat cu drepturile contului tău poate citi documente personale, poate trimite date în rețea și poate șterge fișiere — la fel ca orice alt program cu acele drepturi. Dacă datele sunt confidențiale, localul reduce doar unul dintre riscuri (transferul către un furnizor), dar lasă restul neatins.

Capcana: „e local, deci e privat” — confidențialitatea este proprietatea întregului traseu: fișiere, rețea, loguri, instrumente4. Pentru constructorul de agenți1, regula practică rămâne cea din Lecția 2: limitele se acordă după autoritate și reversibilitate, iar localitatea este doar una dintre variabile.

14

Care este primul pas înainte să compari două produse?

Deschide răspunsul explicat

Primul pas este să stabilești categoria și responsabilitatea fiecărui produs: dacă cele două nu rezolvă aceeași problemă, comparația directă este greșită sau incompletă. Categoria este răspunsul la „ce fel de lucru este, în primul rând?” — orchestrare18, servire de model, protocol19, aplicație.

Exemplu concret: „LangGraph sau Ollama pentru agentul1 meu?” — LangGraph aparține orchestrării, Ollama servirii de modele; întrebarea corectă devine două: ce orchestrator îmi trebuie și ce servire de model îmi trebuie. Abia între alternative pentru aceeași responsabilitate există un „mai bun”.

Capcana: tabelul comparativ de pe un blog, care pune pe același rând produse din straturi diferite. Pentru constructorul de agenți1, regula aceasta economisește decizii greșite: responsabilitatea, apoi cerințele, apoi alternativele — în ordinea asta, comparația are criterii și poate fi câștigată de ambele părți doar în cazuri diferite.

15

Ce faci când un produs și-a extins funcțiile după ce l-ai învățat?

Deschide răspunsul explicat

Revii la documentația oficială actuală a produsului și refaci cele șapte întrebări ale decodorului; păstrezi conceptele stabile și actualizezi plasarea produsului după capabilitățile versiunii curente. Decodorul este metoda din secțiunea 2: categorie, intrare, ieșire, responsabilitate, dependențe, autoritate, limită de securitate — același set de întrebări pentru orice versiune.

Exemplu concret: un produs care ieri era „doar runtime de inferență15” poate include azi și un server de model16; plasarea veche rămâne adevărată pentru versiunea veche, iar fișa nouă notează noul rol cu versiunea și data consultării documentației.

Capcana: să tratezi fișa veche ca adevăr definitiv — produsele se extind, iar numele rămâne același. Pentru constructorul de agenți1, obiceiul acesta protejează de două erori opuse: să respingi un produs pentru ce nu putea face ieri și să accepți un produs pentru ce ar putea face „mâine”. Conceptele din lecție rămân; plasarea produselor se verifică.

18. Recapitulare

Nu trebuie să memorezi zece definiții izolate. O parte din vocabular — runtime, framework, harness, server de model16, protocol19, sandbox20 — a fost deja construit în Lecțiile 1–3. Aici îl aplici produselor reale și adaugi doar câțiva termeni noi, precum gateway14, microserviciu17 și stack de referință21. Trebuie să poți reconstrui diferența dintre categorii și să explici de ce unele produse se suprapun. Vocabularul aplicat se află acum în secțiunea „Vocabular esențial”, la finalul lecției.

Agent1 și gateway14

OpenClaw și Hermes Agent1 sunt aplicații agentice cu harness-uri care coordonează modele, instrumente4, stare5 și interfețe. Modelul rămâne separat.

Inferență

Ollama și NIM se află în principal în zona de runtime de inferență15 sau server de model16. Nu decid obiectivul agentului1.

Orchestrare18

LangGraph organizează starea5, nodurile și traseul workflow6-ului (fluxului de lucru). Nu este model și nici sandbox20.

Integrare

MCP este protocolul19 prin care aplicații-gazdă și clienți MCP se conectează la servere ce expun tools, resources și prompts.

Izolare

OpenShell furnizează sandbox20 și politici; NemoClaw compune un stack de referință21 în jurul acestei limite.

Nume-umbrelă22

Hugging Face și NeMo acoperă familii de produse și servicii; întotdeauna cere componenta concretă.

Regula într-o frază: OpenClaw și Hermes controlează agentul1; Ollama sau NIM servesc modele; LangGraph orchestrează starea5; MCP conectează componente și funcții; OpenShell izolează execuția; NemoClaw compune un stack de referință21 peste OpenShell; Hugging Face și NeMo sunt ecosisteme sau suite care trebuie desfăcute în componente concrete.

Vocabular esențial

Recitește definițiile după parcurgerea lecției — acum fiecare termen are context. Sunt grupate în două familii: termenii moșteniți din Lecțiile 1–3 și vocabularul aplicat produselor reale. Apasă pe numărul de lângă un termen ca să ajungi la explicația lui; butonul Înapoi al browserului te duce înapoi unde citeai.

Vocabular din Lecțiile 1–3

TermenCe înseamnă
1 AgentSistem care urmărește un obiectiv, păstrează stare și alege dinamic acțiunile următoare, până la o condiție de oprire. OpenClaw și Hermes Agent sunt aplicații care pot găzdui un astfel de sistem. Detaliat în Lecția 1.
2 LLMModel lingvistic de mari dimensiuni, antrenat pe cantități uriașe de text. Este componenta care generează limbajul într-un stack, nu sistemul care decide și acționează. Detaliat în Lecția 1.
3 PromptInstrucțiunea trimisă modelului pentru a-i cere un rezultat. Schimbă orientarea răspunsului, nu cunoștințele modelului. Detaliat în Lecția 1.
4 InstrumentCapacitate pe care agentul o poate apela: o căutare, o interogare, o comandă. Este locul unde agentul atinge lumea reală și unde se pun limitele. Detaliat în Lecția 1.
5 StareInformația păstrată despre sarcina curentă: progresul, încercările, rezultatele. Fără stare, agentul nu poate relua sau corecta nimic. Detaliat în Lecția 1.
6 WorkflowSecvență de pași stabilită dinainte de un om, cu ramuri prevăzute. Potrivit când procesul e cunoscut și trebuie repetat identic. Detaliat în Lecția 1.
7 APIInterfața prin care un program cere date sau acțiuni altui program, într-un format stabilit. Echivalentul butoanelor pentru programe. Detaliat în Lecția 1.
8 CuantizareReprezentarea valorilor modelului cu precizie numerică mai redusă, pentru economie de memorie. Poate compromite calitatea și compatibilitatea. Detaliat în Lecția 3.
9 Artefact de modelFișierul care împachetează ponderile și metadatele unui model antrenat — de pildă un fișier GGUF. Nu se execută singur: are nevoie de un runtime compatibil. Detaliat în Lecția 3.
10 DriverSoftware care permite sistemului de operare să comunice cu un dispozitiv, de pildă cu placa video. Driverul face placa vizibilă; nu este platforma de calcul. Detaliat în Lecția 3.
11 GPUProcesor proiectat pentru multe operații paralele, potrivit pentru calculele rețelelor neuronale — dar nu obligatoriu pentru un agent. Detaliat în Lecția 3.
12 ControllerComponenta care coordonează bucla agentului: menține starea, alege pașii, aplică permisiunile și verifică oprirea. Detaliat în Lecția 2.

Vocabularul aplicat produselor

TermenCe înseamnă
13 Aplicație de agent și agent harnessSoftware-ul care menține bucla, starea și legătura dintre model, instrumente și interfață. Ca regia unui spectacol: coordonează actorii, decorurile și schimbările de scenă. Nu este modelul — modelul este unul dintre actori pe care îi coordonează.
14 GatewayComponentă care centralizează conexiuni, rutare, sesiuni sau acces către alte servicii și canale. Ca recepția unui hotel: toate cererile trec prin ea și sunt distribuite mai departe. Gateway-ul nu este rețeaua în sine — este punctul de intrare organizat.
15 Runtime de inferențăSoftware care încarcă modelul și îl execută pe hardware-ul disponibil. Ca player-ul care rulează un film: fișierul există deja, playerul îl pune în mișcare. Runtime-ul nu stabilește sarcina agentului și nu are permisiuni proprii.
16 Server de modelServiciu care pune inferența la dispoziția altor aplicații, de obicei printr-un API. Ca ghișeul unei bănci: clienții vin cu cereri standardizate și primesc răspunsuri. Serverul nu urmărește sarcina agentului între cereri — el doar răspunde.
17 MicroserviciuServiciu independent, cu o interfață bine definită, care îndeplinește o parte dintr-un sistem mai mare. Ca un ghișeu separat al instituției: face un singur lucru, bine delimitat. Microserviciul nu este aplicația întreagă — este o piesă a ei.
18 Framework de orchestrareCadru software pentru definirea și executarea stării, pașilor și tranzițiilor unui workflow sau agent. Ca dirijorul orchestrei: nu cântă el, dar stabilește cine intră și când. Framework-ul nu este modelul și nici mecanismul de izolare.
19 ProtocolSet de reguli și mesaje prin care două componente comunică, ca limba comună a două persoane care nu vorbesc aceeași limbă maternă. Un protocol nu este automat aplicația care îl folosește — definește conversația, nu participantul.
20 SandboxMediu izolat care limitează accesul unui proces la fișiere, rețea, procese sau alte resurse. Ca cutia de nisip: libertate înăuntru, nimic în afară. Sandbox-ul nu vine automat cu rularea — se obține prin configurație.
21 Stack de referințăAnsamblu versionat de componente și configurări care arată o cale recomandată și repetabilă de punere în funcțiune. Ca rețeta completă a unui restaurant franciză: aceleași ingrediente, aceleași pași, oriunde. Stack-ul de referință nu este un produs monolitic — este compoziția documentată a mai multor componente.
22 Nume-umbrelăNume care acoperă mai multe produse, biblioteci sau servicii și nu poate fi plasat precis fără context suplimentar. Ca cuvântul „sporturi”, care acoperă înotul și fotbalul deodată. Numele-umbrelă nu este o componentă — mereu se cere componenta concretă de sub el.

19. Referințe și documentație oficială

Produsele din această lecție se schimbă rapid. Descrierile au fost reverificate în documentația oficială disponibilă la 1 octombrie 2026. La instalare sau la luarea unei decizii de producție, verifică din nou versiunea curentă, notele de versiune (release notes) și matricea de compatibilitate.

20. Ce urmează

Lecțiile 1–4 te-au ajutat să te orientezi. Acum poți separa conceptele, poți explica bucla agentului1, poți reconstrui stack-ul complet și poți plasa nume concrete fără să le tratezi ca pe ceva magic. Următoarea parte a cursului începe cu bazele software pe care agenții le pot afecta în mod real.

Lecția 5 — Fișiere, procese, utilizatori și permisiuni va coborî din nou spre sistemul de operare. Vom analiza ce este un proces, cine îl rulează, ce fișiere poate citi sau modifica și de ce autoritatea reală a unui agent1 este limitată în cele din urmă de drepturile pe care sistemul de operare le acordă proceselor sale.