{"id":2619,"date":"2026-05-21T17:06:24","date_gmt":"2026-05-21T17:06:24","guid":{"rendered":"https:\/\/paoloronco.it\/?p=2619"},"modified":"2026-05-21T17:06:25","modified_gmt":"2026-05-21T17:06:25","slug":"infra-agent-building-a-specialized-ai-infrastructure-operator","status":"publish","type":"post","link":"https:\/\/paoloronco.it\/en\/infra-agent-building-a-specialized-ai-infrastructure-operator\/","title":{"rendered":"Infra Agent | Building a Specialized AI Infrastructure Operator"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Negli ultimi mesi ho lavorato a un progetto personale chiamato Infra Agent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019idea non era creare \u201cl\u2019ennesimo AI assistant\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esistono gi\u00e0 ottimi agent general-purpose come:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/openclaw.ai\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">OpenClaw<\/a><\/li>\n\n\n\n<li>OpenAI Codex<\/li>\n\n\n\n<li>Anthropic Claude Code<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il problema \u00e8 che questi strumenti cercano di fare tutto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>coding<\/li>\n\n\n\n<li>browser automation<\/li>\n\n\n\n<li>productivity<\/li>\n\n\n\n<li>e-mail<\/li>\n\n\n\n<li>files<\/li>\n\n\n\n<li>generic workflows<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Io volevo invece costruire qualcosa di molto pi\u00f9 verticale:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">un AI Agent specializzato esclusivamente in infrastruttura Linux, troubleshooting e operazioni SSH remote.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">The Problem<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Quando gestisci sistemi Linux reali, spesso perdi tempo in task ripetitivi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>controllare servizi<\/li>\n\n\n\n<li>leggere log<\/li>\n\n\n\n<li>verificare disk usage<\/li>\n\n\n\n<li>capire perch\u00e9 nginx \u00e8 down<\/li>\n\n\n\n<li>diagnosticare container<\/li>\n\n\n\n<li>controllare systemd<\/li>\n\n\n\n<li>verificare networking<\/li>\n\n\n\n<li>fare remediation basilari<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gli LLM sono ottimi nel reasoning operativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ma dare accesso shell diretto a un AI \u00e8 pericoloso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specialmente perch\u00e9 molti AI agents moderni hanno enormi superfici d\u2019attacco e problemi di sicurezza.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Infra Agent nasce proprio per risolvere questo problema:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AI utile<\/li>\n\n\n\n<li>ma confinata<\/li>\n\n\n\n<li>auditabile<\/li>\n\n\n\n<li>approval-based<\/li>\n\n\n\n<li>limitata all\u2019ambito infrastrutturale<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">A Specialized Infrastructure Agent<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Infra Agent non \u00e8 un \u201ccomputer-use agent\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non controlla desktop.<br>Non naviga browser.<br>Non manda email.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fa una cosa sola:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Infrastructure Operations.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 progettato per:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linux servers<\/li>\n\n\n\n<li>SSH operations<\/li>\n\n\n\n<li>system diagnostics<\/li>\n\n\n\n<li>service lifecycle management<\/li>\n\n\n\n<li>operational troubleshooting<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019agente lavora tramite:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SSH<\/li>\n\n\n\n<li>command validation<\/li>\n\n\n\n<li>policy enforcement<\/li>\n\n\n\n<li>scoped execution<\/li>\n\n\n\n<li>approval workflows<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Safety First<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">La parte pi\u00f9 importante del progetto \u00e8 stata la sicurezza.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Molti AI agents moderni operano con privilegi enormi e poca separazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Infra Agent invece utilizza:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>allowlists<\/li>\n\n\n\n<li>blocklists<\/li>\n\n\n\n<li>scoped sudo<\/li>\n\n\n\n<li>explicit approvals<\/li>\n\n\n\n<li>dedicated AI users<\/li>\n\n\n\n<li>SSH isolation<\/li>\n\n\n\n<li>server-side validation<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Esempi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lettura log \u2192 consentita<\/li>\n\n\n\n<li>restart nginx \u2192 approval richiesta<\/li>\n\n\n\n<li>comandi distruttivi \u2192 bloccati<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019obiettivo non \u00e8 sostituire il sysadmin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 ridurre:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>tempo operativo<\/li>\n\n\n\n<li>troubleshooting manuale<\/li>\n\n\n\n<li>context switching<\/li>\n\n\n\n<li>task ripetitivi<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">mantenendo per\u00f2:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>controllo umano<\/li>\n\n\n\n<li>auditabilit\u00e0<\/li>\n\n\n\n<li>sicurezza operativa<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Homelab &amp; Real Infrastructure<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Il progetto \u00e8 sviluppato e testato principalmente nel mio homelab personale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo mi ha permesso di lavorare su:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>infrastrutture Linux reali<\/li>\n\n\n\n<li>networking<\/li>\n\n\n\n<li>SSH hardening<\/li>\n\n\n\n<li>service orchestration<\/li>\n\n\n\n<li>reverse proxy<\/li>\n\n\n\n<li>monitoring<\/li>\n\n\n\n<li>containerized workloads<\/li>\n\n\n\n<li>AI orchestration<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">anzich\u00e9 costruire un semplice proof-of-concept teorico.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Technologies<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Backend<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python<\/li>\n\n\n\n<li>FastAPI<\/li>\n\n\n\n<li>LangChain<\/li>\n\n\n\n<li>SQLite<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frontend<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>React<\/li>\n\n\n\n<li>TypeScript<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">AI Providers<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OpenAI<\/li>\n\n\n\n<li>Anthropic<\/li>\n\n\n\n<li>Gemini<\/li>\n\n\n\n<li>Ollama<\/li>\n\n\n\n<li>Groq<\/li>\n\n\n\n<li>DeepSeek<\/li>\n\n\n\n<li>&amp; Many mores<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">What I Learned<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Questo progetto mi ha permesso di approfondire:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AI agent architecture<\/li>\n\n\n\n<li>operational safety<\/li>\n\n\n\n<li>Linux systems<\/li>\n\n\n\n<li>infrastructure automation<\/li>\n\n\n\n<li>SSH security<\/li>\n\n\n\n<li>approval-based execution<\/li>\n\n\n\n<li>LLM orchestration<\/li>\n\n\n\n<li>secure remote tooling<\/li>\n\n\n\n<li>system observability<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Current Status<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Infra Agent \u00e8 ancora in sviluppo attivo e continuo a lavorare su:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>orchestrazione multi-host<\/li>\n\n\n\n<li>automation workflows<\/li>\n\n\n\n<li>observability<\/li>\n\n\n\n<li>AI safety<\/li>\n\n\n\n<li>infrastructure reasoning<\/li>\n\n\n\n<li>policy systems<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub Repository: <a href=\"https:\/\/github.com\/paoloronco\/infra-agent?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Infra Agent Repository<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Negli ultimi mesi ho lavorato a un progetto personale chiamato Infra Agent. L\u2019idea non era creare \u201cl\u2019ennesimo AI assistant\u201d. Esistono gi\u00e0 ottimi agent general-purpose come: Il problema \u00e8 che questi strumenti cercano di fare tutto: Io volevo invece costruire qualcosa di molto pi\u00f9 verticale: un AI Agent specializzato esclusivamente in infrastruttura Linux, troubleshooting e operazioni &hellip; <a href=\"https:\/\/paoloronco.it\/en\/infra-agent-building-a-specialized-ai-infrastructure-operator\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Infra Agent | Building a Specialized AI Infrastructure Operator&#8221;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2619","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts\/2619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/comments?post=2619"}],"version-history":[{"count":1,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts\/2619\/revisions"}],"predecessor-version":[{"id":2620,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts\/2619\/revisions\/2620"}],"wp:attachment":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/media?parent=2619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/categories?post=2619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/tags?post=2619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}