<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tui on All about Raspberry Pi</title><link>https://hugozhu.site/tags/tui/</link><description>Recent content in Tui on All about Raspberry Pi</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 19 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hugozhu.site/tags/tui/index.xml" rel="self" type="application/rss+xml"/><item><title>解构 Agent CLI：从 React 子进程到 Python 回调的通信协议</title><link>https://hugozhu.site/post/2026/184-hermes-cli-tui-architecture-deep-dive/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://hugozhu.site/post/2026/184-hermes-cli-tui-architecture-deep-dive/</guid><description>&lt;p&gt;上周团队在讨论 Agent 产品的交互方案。前端同学主张用 Web UI + WebSocket，理由是现代、可扩展、支持多端。后端同学说那不如直接嵌到现有产品里，用 HTTP REST API。&lt;/p&gt;
&lt;p&gt;我打开了我们自己的 Agent 代码仓库，给他们看了两套实现——一套是纯 Python 的同进程架构，另一套是 React + Python 子进程通过 JSON-RPC 通信。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;我们同一个产品里，两套通信协议并存。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;他们沉默了几秒。&amp;ldquo;为什么？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;因为这不是架构设计的失误，而是&lt;strong&gt;交互范式的必然分化&lt;/strong&gt;。CLI 要的是零延迟的本地体验，TUI 要的是跨进程的事件驱动架构。用一套协议去套两种场景，只会两头都不讨好。&lt;/p&gt;
&lt;p&gt;今天我们就来解剖一下 Hermes Agent 的两种交互架构——看看 CLI 和 TUI 分别是怎么和 Agent Loop 通信的，协议是什么，为什么这么设计。&lt;/p&gt;</description></item></channel></rss>