[{"data":1,"prerenderedAt":188},["ShallowReactive",2],{"blogs-tag-detail-aiagents-en":3},{"status":4,"tag":5,"items":8,"total":7,"page":111,"totalPages":111,"limit":112,"lang":13,"categories":113,"popularTags":154},"success",{"name":6,"slug":6,"totalCount":7},"aiagents",7,[9,28,43,58,72,86,98],{"id":10,"title":11,"slug":12,"lang":13,"category":14,"categorySlug":15,"summary":16,"excerpt":16,"author":17,"date":18,"readTime":19,"image":20,"tags":21,"publishedAt":25,"createdAt":25,"updatedAt":25,"filePath":26,"sourceUrl":27},"cron-1786954563310","FastMCP Agent Mail: RBAC Tokens vs Anonymous Access, and the 403 Errors in Between","fastmcp-agent-mail-rbac-tokens-vs-anonymous-access-and-the-403-errors-in-between-ef0p","en","AI Agents","ai-agents","Why a FastMCP agent mail server that works anonymously in dev returns 403 behind TLS ingress, and how to wire bearer tokens without leaking them.","Guatu","17\u002F8\u002F2026","6 phút","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fguatulabs.dev%2Fog%2Ffastmcp-agent-mail-rbac-token-vs-anonymous-lessons-from-403-errors.png",[14,22,23,6,24],"fastmcp","mcpservers","authentication","2026-08-17T08:16:03.310Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Ffastmcp-agent-mail-rbac-tokens-vs-anonymous-access-and-the-403-errors-in-between-ef0p.md","https:\u002F\u002Fdev.to\u002Ffuthgar\u002Ffastmcp-agent-mail-rbac-tokens-vs-anonymous-access-and-the-403-errors-in-between-22pk",{"id":29,"title":30,"slug":31,"lang":13,"category":14,"categorySlug":15,"summary":32,"excerpt":32,"author":33,"date":34,"readTime":19,"image":35,"tags":36,"publishedAt":40,"createdAt":40,"updatedAt":40,"filePath":41,"sourceUrl":42},"cron-1786955347611","I Changed How I Think About AI Memory","i-changed-how-i-think-about-ai-memory-fnpm","I Changed How I Think About AI Memory   When I first built Lean AI Memory, I focused too...","Phúc Phùng","8\u002F17\u002F2026","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0oqod5zshdan74573bau.png",[14,37,6,38,39],"ai","opensource","git","2026-08-17T08:29:07.610Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fi-changed-how-i-think-about-ai-memory-fnpm.md","https:\u002F\u002Fdev.to\u002Fphucphungbk\u002Fi-changed-how-i-think-about-ai-memory-4mkd",{"id":44,"title":45,"slug":46,"lang":13,"category":14,"categorySlug":15,"summary":47,"excerpt":47,"author":48,"date":34,"readTime":49,"image":50,"tags":51,"publishedAt":55,"createdAt":55,"updatedAt":55,"filePath":56,"sourceUrl":57},"cron-1786956218725-en","I Thought I'd Lost the Plot. I Was Writing It.","i-thought-id-lost-the-plot-i-was-writing-it-wjvz","I Thought I'd Lost the Plot. I Was Writing It.            I set out to build autonomous...","Joe Black","6 min read","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa3l9h76kr920p8bm2mjp.png",[14,52,6,53,54],"claudecode","developmenttools","autonomousagents","2026-08-17T08:43:38.725Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fi-thought-id-lost-the-plot-i-was-writing-it-wjvz.md","https:\u002F\u002Fdev.to\u002Fjoeblackwaslike\u002Fi-thought-id-lost-the-plot-i-was-writing-it-5fil",{"id":59,"title":60,"slug":61,"lang":13,"category":14,"categorySlug":15,"summary":62,"excerpt":62,"author":63,"date":18,"readTime":19,"image":64,"tags":65,"publishedAt":69,"createdAt":69,"updatedAt":69,"filePath":70,"sourceUrl":71},"cron-1786954321408","Test Deletion Is a Privileged Operation","test-deletion-is-a-privileged-operation-2pfz","The cheapest way for an agent to make a failing test pass is to delete it. That is logical for the agent and catastrophic for the codebase. Tests are append-only by default. Deletion needs a human author, a separate commit, and a separate review.","Travis Frisinger","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fwww.tddbuddy.com%2Fimages%2Fcovers%2Ftest-deletion-is-a-privileged-operation.png",[14,66,6,67,68],"tdd","testdesign","codereview","2026-08-17T08:12:01.408Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Ftest-deletion-is-a-privileged-operation-2pfz.md","https:\u002F\u002Fdev.to\u002Ftmfrisinger\u002Ftest-deletion-is-a-privileged-operation-264a",{"id":73,"title":74,"slug":75,"lang":13,"category":14,"categorySlug":15,"summary":76,"excerpt":76,"author":77,"date":34,"readTime":19,"image":78,"tags":79,"publishedAt":83,"createdAt":83,"updatedAt":83,"filePath":84,"sourceUrl":85},"cron-1786954879160","Test What Your AI Agents Must Not Do","test-what-your-ai-agents-must-not-do-fj6y","A Guardrail Without A Negative Test Is Still An Assumption   Most AI agent governance starts...","Bobai Kato","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fres.cloudinary.com%2Fota-run%2Fimage%2Fupload%2Fq_auto%2Ftest-what-your-ai-agents-must-not-do.png",[14,6,80,81,82],"agentsafety","negativetesting","executiongovernance","2026-08-17T08:21:19.160Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Ftest-what-your-ai-agents-must-not-do-fj6y.md","https:\u002F\u002Fdev.to\u002Fotaready\u002Ftest-what-your-ai-agents-must-not-do-3e1a",{"id":87,"title":88,"slug":89,"lang":13,"category":14,"categorySlug":15,"summary":90,"excerpt":90,"author":63,"date":18,"readTime":19,"image":91,"tags":92,"publishedAt":95,"createdAt":95,"updatedAt":95,"filePath":96,"sourceUrl":97},"cron-1786954558132","The Coordinated Rename Is the Agent's Most Dangerous Refactor","the-coordinated-rename-is-the-agents-most-dangerous-refactor-iazu","Multi-agent rename tooling rewrites two hundred files in ten seconds because it noticed the drift. Half the time the drift was a load-bearing distinction the team encoded on purpose. Vocabulary curation is a real-time review surface now, and senior includes refusing changes that would be technically more consistent because the domain has two concepts the agent has no way to see.","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fwww.tddbuddy.com%2Fimages%2Fcovers%2Fthe-coordinated-rename-is-the-dangerous-refactor.png",[14,93,6,94,68],"vocabulary","domainmodeling","2026-08-17T08:15:58.132Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fthe-coordinated-rename-is-the-agents-most-dangerous-refactor-iazu.md","https:\u002F\u002Fdev.to\u002Ftmfrisinger\u002Fthe-coordinated-rename-is-the-agents-most-dangerous-refactor-6a",{"id":99,"title":100,"slug":101,"lang":13,"category":14,"categorySlug":15,"summary":102,"excerpt":102,"author":17,"date":34,"readTime":49,"image":103,"tags":104,"publishedAt":108,"createdAt":108,"updatedAt":108,"filePath":109,"sourceUrl":110},"cron-1786956117904-en","The Write Policy Is the Hard Part: Promotion Pipelines for Agent Memory","the-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory-4qv9","Storing agent memory is easy. Deciding what earns a permanent write, and keeping the write-path alive through RBAC and network policy, is the real work.","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fguatulabs.dev%2Fog%2Fthe-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory.png",[14,6,105,106,107],"agentmemory","rbac","networkpolicies","2026-08-17T08:41:57.903Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fthe-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory-4qv9.md","https:\u002F\u002Fdev.to\u002Ffuthgar\u002Fthe-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory-5mc",1,9,[114,123,132,140,148],{"name":115,"slug":116,"description":117,"icon":118,"image":119,"color":120,"bgGradient":121,"count":122},"Nuxt 4","nuxt-4","Kỹ thuật tối ưu hóa SSR sub-40ms, Nitro Server Cache L1\u002FL2, Pinia State Management và kiến trúc Micro-Frontend trên Nuxt 4.","code-2","\u002Fimages\u002Fhero_dashboard.webp","#00DC82","from-emerald-500\u002F20 to-teal-500\u002F5",0,{"name":124,"slug":125,"description":126,"icon":127,"image":128,"color":129,"bgGradient":130,"count":131},"Kubernetes","kubernetes","Khám phá kiến trúc Multi-Region Active-Active, Auto-scaling KEDA, Istio Service Mesh, GitOps ArgoCD và giám sát Prometheus\u002FGrafana.","server","\u002Fimages\u002Fcloud_nodes.webp","#326CE5","from-blue-500\u002F20 to-indigo-500\u002F5",6,{"name":133,"slug":134,"description":135,"icon":136,"image":137,"color":138,"bgGradient":139,"count":131},"Security","security","Chiến lược phòng thủ Zero-Trust, WAF Anti-DDoS, OAuth 2.1 PKCE, mã hóa 256-bit và tiêu chuẩn bảo mật OWASP Top 10.","shield-check","\u002Fimages\u002Flumina_it_shield.webp","#E11D48","from-rose-500\u002F20 to-red-500\u002F5",{"name":141,"slug":142,"description":143,"icon":144,"image":145,"color":146,"bgGradient":147,"count":131},"Microservices","microservices","Xây dựng hệ thống phân tán với Event-Driven Kafka, gRPC HTTP\u002F2 nhị phân, CQRS \u002F Saga Pattern và API Gateway Kong.","cpu","\u002Fimages\u002Fai_mesh.webp","#8B5CF6","from-purple-500\u002F20 to-violet-500\u002F5",{"name":14,"slug":15,"description":149,"icon":150,"image":151,"color":152,"bgGradient":153,"count":7},"Ứng dụng AI Agentic Era 2026, RAG Vector Database (Qdrant\u002FPgvector), Multi-Agent Systems và tối ưu vLLM Inference.","bot","\u002Fimages\u002Flumina_it_ai.webp","#F59E0B","from-amber-500\u002F20 to-orange-500\u002F5",[155,156,157,158,159,160,161,162,163,165,167,169,172,174,177,179,181,183,185,186],{"name":14,"slug":15,"count":7},{"name":6,"slug":6,"count":7},{"name":134,"slug":134,"count":7},{"name":141,"slug":142,"count":131},{"name":142,"slug":142,"count":131},{"name":133,"slug":134,"count":131},{"name":124,"slug":125,"count":131},{"name":125,"slug":125,"count":131},{"name":164,"slug":164,"count":131},"devops",{"name":37,"slug":37,"count":166},4,{"name":38,"slug":38,"count":168},3,{"name":170,"slug":170,"count":171},"backend",2,{"name":173,"slug":173,"count":171},"api",{"name":175,"slug":176,"count":171},"Trending","trending",{"name":178,"slug":178,"count":171},"go",{"name":180,"slug":180,"count":171},"agents",{"name":182,"slug":182,"count":171},"architecture",{"name":184,"slug":184,"count":171},"programming",{"name":68,"slug":68,"count":171},{"name":187,"slug":187,"count":111},"2026",1786961340902]