Unity of Knowledge and Action, Forged with AI
Documenting AI practice, technical thinking, and life notes
Unity of Knowledge and Action, Forged with AI
Documenting AI practice, technical thinking, and life notes

TL;DR: Five constraints shaped the Watchdog-Intervention Bridge’s cross-language architecture. Watchdog has to intercept LLM tool calls synchronously, so it runs in TypeScript. Intervention has to reuse the existing reflection engine and rule system, so it stays in Python. The Bridge adds zero new infrastructure, so it uses subprocess. Communication can’t block every tool call, so batching replaces real-time streaming. Each decision was the least bad option under the circumstances. The last post covered what the Watchdog-Intervention Bridge does in Aristotle v1.6. This one is about why it looks the way it does. ...

This is a bonus article for the “AI Path L1→L2 Upgrade Guide.” If you have not installed OpenCode yet, this guide gets you from zero to running. In Day 8 you learned about autonomous execution AI. The next step is actually installing the thing. OpenCode is an open-source AI coding assistant. It is free, supports multiple models, and has a skill system. Paired with OpenCode Zen, you can use tested models without setting up third-party API keys, including the free DeepSeek V4 Flash. ...

TL;DR: Aristotle v1.6.0 introduces the Watchdog-Intervention Bridge, shifting from “reflect after the fact” to “intercept in real time.” A TypeScript watchdog detects 21 signal types around tool calls. A Python intervention layer handles 13 violation types, connected via a subprocess bridge. MCP tools expanded from 10 stubs to 25 full implementations. Two known bugs remain. Open source on GitHub, MIT license. A Hypothesis Overturned From v1.0 to v1.5, Aristotle answered one question: when AI makes a mistake, how do you make it remember and not repeat it? ...

Why Voice Input Typing speed averages 50-80 WPM. Natural speech runs 150-180 WPM. For emails, notes, and even code comments, the gap is hard to ignore.[1] What pushed me to actually look was vibe coding, the “describe and decide, let AI write the rest” style of programming. The bottleneck shifts from “how fast can I code” to “how fast can I articulate what I want.” Rewrite a prompt, tweak a parameter, jump to another app to type — all of it breaks flow. Voice input closes that loop. Speak the intent, stay in flow. ...

This is Day 9 of Week 2 in the “AI Path L1→L2 Upgrade Guide.” You should have completed Day 7 first. Day 7 added error handling to your script, so it’s resilient now. But there’s a bigger cost factor you might have missed: the API provider you picked could cost a lot more than you think. DeepSeek V4-Flash charges $0.14 per million input tokens. OpenAI GPT-5.5 charges $5.00. That’s a 35x difference. If you ignore caching, the gap widens further. ...

This is Day 8 of Week 2 in the “AI Path L1→L2 Upgrade Guide.” You should have completed Day 7 first. Day 7 you added error handling to your script. It now runs reliably in real network conditions. But there’s a more fundamental limitation: you still have to write code. Writing code to call APIs is one kind of automation. There’s a lighter one: describe the task, and let AI write the code, run it, and fix the bugs itself. That’s autonomous execution AI. ...

TL;DR: Part 1 found that the agent merged the protocol’s five-role separation into four from round 2 onward. This piece digs into root causes: attention dilution drops the “no merging” constraint below a threshold; the EOS bias provides motivation to simplify; stateless architecture creates a positive feedback loop for drift. The v0.21.0 reload mechanism is a band-aid, not a cure. Part 2 of 3. Part 1: Why Agents Won’t Loop Part 1 established protocol drift: starting from R2’, the agent merged the five-role separation into four while keeping its output format pristine. Re-reading the protocol after user outbursts only restored compliance briefly. Within a few rounds, the constraint was quietly bypassed again. ...

Problem: Data Sources Exist, But Agents Can’t Use Them kimi CLI’s datasource plugin is a good piece of work. A-share, HK, and US stock quotes, macroeconomic indicators, corporate registries, academic paper search: six data sources covering most day-to-day investment research needs. Install it, type one command in kimi, and you get results. But I work in opencode, not directly in kimi. When an AI agent needs to query financial data, a few things get in the way. ...

TL;DR: Agents won’t loop autonomously in long multi-round tasks. They keep asking “should I continue?” Worse: from round 2 onward, the agent quietly merged the protocol’s mandatory five-role separation into four. Clean formatting hid the violation. This isn’t context compression. It’s protocol drift — systematic degradation in long-horizon tasks. Part 1 of 3. Part 2: Deep Root Causes June 11, 8 PM I told my agent to run a Ralph Review Loop on six module test plans. This is a multi-round review protocol I defined in my open-source tool tdd-pipeline [1]: each round dispatches independent subagents to find issues, locate files, confirm defects, and evaluate fixes. The loop stops after two consecutive rounds with zero Critical/High/Medium findings. The protocol was unambiguous: “Fixes do not require user confirmation.” ...

This is the Day 7 exercise for Week 2 of the “AI Path: Level Up Guide” series. Complete Day 6: Batch Processing Practice first. In Day 6, you wrote a batch processing script that works. Pick a scenario, walk the folder, call the API, save the results. It all runs smoothly until you try it for real. But that script runs in an idealized environment. Real networks are not ideal. Have you hit any of these with your script? ...