<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Source Reading on Time Friend</title><link>https://time-friend.com/en/tags/source-reading/</link><description>Recent content in Source Reading on Time Friend</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 02 Sep 2026 13:30:14 +0400</lastBuildDate><atom:link href="https://time-friend.com/en/tags/source-reading/index.xml" rel="self" type="application/rss+xml"/><item><title>Why One Simple Loop Drives Every Coding Agent</title><link>https://time-friend.com/en/archive/agent-loop-coding-agents/</link><pubDate>Wed, 02 Sep 2026 09:30:00 +0000</pubDate><guid>https://time-friend.com/en/archive/agent-loop-coding-agents/</guid><description>&lt;p&gt;I read the &lt;a href="https://github.com/google-gemini/gemini-cli"&gt;Gemini CLI&lt;/a&gt; source code for a concrete reason: last year I built a Code Agent product internally, and while designing its loop mechanism I wanted to see how an open-source implementation already running on many developers&amp;rsquo; terminals actually does it. So I went through the Gemini CLI core directories.&lt;/p&gt;
&lt;p&gt;The conclusion surprised me: the essential thing is tiny — it&amp;rsquo;s a loop. The model speaks, fires tool calls, receives tool results, and speaks again. Everything else — approvals, context compression, loop detection, budget control, model fallback — is peripheral engineering built around that loop. Even the question of &amp;ldquo;who speaks next&amp;rdquo; is just a decision point inside the loop: when the model finishes a line without firing any tool, a lightweight model gets asked once whether to continue or hand control back, and &amp;ldquo;continue&amp;rdquo; simply starts another turn.&lt;/p&gt;</description></item></channel></rss>