<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>AIVO — Write slowly, understand deeply</title><description>AIVO is the technical blog of Tú (tusgino). Writing slowly and understanding deeply about production-grade system architecture, cloud infrastructure and reading experience on the web.</description><link>https://aivo.io.vn/en/</link><item><title>100% coverage, and it still did not run</title><link>https://aivo.io.vn/en/blog/coverage-100-ma-van-khong-chay/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/coverage-100-ma-van-khong-chay/</guid><description>A feature was completely dead in production while 178 tests were green and coverage held at 100%. Tests measure lines that ran, not the path that ships.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Ask before writing, and refuse when nobody answers</title><link>https://aivo.io.vn/en/blog/hoi-truoc-khi-ghi/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/hoi-truoc-khi-ghi/</guid><description>Permission is not a true/false flag. It is a seam with a contract, three sandbox modes that speak only about files, and a safe default: no answer means no.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Cut the context, keep the audit trail</title><link>https://aivo.io.vn/en/blog/cat-ngu-canh-van-kiem-toan-duoc/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/cat-ngu-canh-van-kiem-toan-duoc/</guid><description>Compaction deletes nothing. It only shadows a range on the surface sent to the model, records exactly which range, and leaves the original in the log for later.</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Permission sits on the path, not in the tool</title><link>https://aivo.io.vn/en/blog/mot-tool-call-di-qua-bay-chang/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/mot-tool-call-di-qua-bay-chang/</guid><description>A tool call passes seven stages before it reaches the tool body. Policy, hooks and sandboxing live there — and the tool itself need not know about them.</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The log is the source, not a copy</title><link>https://aivo.io.vn/en/blog/so-ghi-la-nguon-khong-phai-ban-sao/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/so-ghi-la-nguon-khong-phai-ban-sao/</guid><description>Everything the model sees must be in the log first. Context is never stored beside it — it is derived, and that is the difference between a source and a copy.</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The same loop, different seams</title><link>https://aivo.io.vn/en/blog/cung-mot-vong-lap-hai-kien-truc/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/cung-mot-vong-lap-hai-kien-truc/</guid><description>Every harness has a log, a tool registry, a context budget and a permission layer. They differ in which of those you may replace — I read four to answer.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Where a harness begins</title><link>https://aivo.io.vn/en/blog/harness-bat-dau-tu-cho-nao/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/harness-bat-dau-tu-cho-nao/</guid><description>The loop is only a coordinator. Four parts turn it into a harness: a durable log, a tool registry, a context budget, and a permission layer, all four pluggable.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate></item><item><title>System One AI: don&apos;t burn 800ms just to get one routing keyword</title><link>https://aivo.io.vn/en/blog/system-one-typed-decisions/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/system-one-typed-decisions/</guid><description>Explore System One AI with TypeSafe Jev: replace slow LLMs with Typed Decisions, probability distributions and the three primitives Choice, Score and Noul.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The while loop works, until it doesn&apos;t</title><link>https://aivo.io.vn/en/blog/vong-while-chay-duoc-toi-luc-khong/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/vong-while-chay-duoc-toi-luc-khong/</guid><description>An agent loop runs in ten lines. The production version of that same loop is 101 lines, and every extra line marks a place it used to break. Here are the four.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The model proposes, your code executes</title><link>https://aivo.io.vn/en/blog/model-de-nghi-code-thuc-thi/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/model-de-nghi-code-thuc-thi/</guid><description>The model sees only a tool declaration, never its execution. A tool call is a structured request your code validates, authorises, and then decides to run.</description><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The context window is not memory</title><link>https://aivo.io.vn/en/blog/cua-so-ngu-canh-khong-phai-tri-nho/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/cua-so-ngu-canh-khong-phai-tri-nho/</guid><description>A context window is a finite budget, not a memory. On the same request, two published token ratios differ by 1.6x, and you cannot tell which one you are on.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Call the API, then forget</title><link>https://aivo.io.vn/en/blog/mot-lan-goi-api-roi-quen-het/</link><guid isPermaLink="true">https://aivo.io.vn/en/blog/mot-lan-goi-api-roi-quen-het/</guid><description>Every API call is a pure function: text in, text out, then nothing. The memory you think the model has is history you resend yourself, and you pay for it.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>