Full markdown reading view

重读 OpenClaw 背后的 Agent 框架「pi」,作者 @badlogicgames 对主流 Coding Agent 的反思还是太超前了,pi 的极简设计即使现在带着上帝视角往回看,仍然是

查看来源 /mnt/ramdisk/test/@shao__meng_status_2032253333747220690.clean.md

重读 OpenClaw 背后的 Agent 框架「pi」,作者 @badlogicgames 对主流 Coding Agent 的反思还是太超前了,pi 的极简设计即使现在带着上帝视角往回看,仍然是

来源: https://x.com/shao__meng/status/2032253333747220690
抓取时间: 2026-03-13T20:50:23.461Z

正文

作者: @shao__meng (meng shao)
时间: Fri Mar 13 00:32:06 +0000 2026
链接: https://x.com/shao__meng/status/2032253333747220690

重读 OpenClaw 背后的 Agent 框架「pi」,作者 @badlogicgames 对主流 Coding Agent 的反思还是太超前了,pi 的极简设计即使现在带着上帝视角往回看,仍然是精妙,不得不佩服!
https://t.co/mChSOHZHI8

可复制学习的经验
即使你不使用 pi,这些经验也适用于其他 Agents:

  1. 保持系统提示简洁:模型已理解 Coding Agents 模式,冗长的提示反而有害
  2. 最小化工具集:四个基本工具(读、写、改、执行)已足够
  3. 文件化状态管理:使用文件而非内置功能管理 TODO、计划等状态
  4. 追求可观察性:选择能让你看到完整交互过程的工具
  5. 上下文工程优先:精确控制进入模型的上下文比工具数量更重要

为什么自建 pi?
· Mario 曾使用 Claude Code,但随着时间推移,该工具变得臃肿(80% 的功能他用不到)
· 系统提示和工具在每个版本中都会变化,破坏了他的工作流程
· 现有工具缺乏可见性(无法查看与模型的交互细节)
· 自托管模型支持不佳

pi 的三层技术架构

  1. pi-ai(统一的 LLM API)
    解决的关键问题:
    · 多提供商兼容:统一支持 OpenAI、Anthropic、Google、xAI 等四种 API 格式
    · 上下文切换:可以在会话中切换模型(如从 Claude 切换到 GPT),保留完整对话历史
    · 工具调用分割:将工具结果分为 LLM 可见部分和 UI 展示部分
    · 中断请求支持:支持 AbortController 中止请求并返回部分结果

  2. pi-tui(终端 UI 框架)
    设计选择:
    · 采用追加模式:不同于全屏 TUIs(如 Amp、opencode),pi 采用类似 Claude Code 的追加输出模式
    · 保留滚动历史:不接管终端视口,保留原生滚动和搜索功能
    · 差异渲染:只重绘变化的行,配合同步输出转义码实现无闪烁更新

  3. pi-coding-agent(核心 CLI)
    · 关键特性:极简系统提示词(仅约 1000 tokens)
    · 仅有 4 个核心工具:read、write、edit、bash
    · 支持项目上下文文件(AGENTS.md)分层加载

设计哲学与反常规选择

  1. YOLO 模式(默认开放权限)
    · 他认为其他工具的安全措施是"安全剧场"
    · 既然 Agent 可以写代码和执行代码,真正的安全防护实际上是不可能的
    · 默认赋予文件系统和命令执行的完整权限

  2. 不做内置 TODO 功能
    · 他认为 TODO 列表往往会让模型更困惑
    · 替代方案:直接写入 TODO.md 文件,用复选框标记进度

  3. 不做计划模式
    · 可以通过 --tools read,grep,find,ls 启动只读模式来实现类似功能
    · 持久化计划应写入文件(如 PLAN.md),跨会话可见

  4. 不支持 MCP
    · 认为 MCP 服务器会占用过多上下文空间(如 Playwright MCP 占 13.7k tokens)
    · 替代方案:构建简单的 CLI 工具 + README,按需读取

  5. 没有后台 Bash
    · 使用 tmux 替代后台进程管理
    · 提供更好的可观察性,且用户可以主动进入会话

  6. 没有 Sub-agents
    · 其他工具的 Sub-agents 是"黑盒中的黑盒"
    · 解决方案:通过 bash 直接调用 pi 自身,获得完整输出可见性

媒体链接:

  1. https://pbs.twimg.com/media/HDQDlAzaAAAxgr4.jpg

评论 (15)

评论 点赞 2

作者: @dddanielwang (DanielW)
时间: Fri Mar 13 05:38:21 +0000 2026
链接: https://x.com/dddanielwang/status/2032330403428909144

@shao__meng @badlogicgames 今天在试用,感觉真的挺优雅的,不停的问deepwiki这个repo的细节 https://t.co/Hv4Y39hBwG

媒体链接:

  1. https://pbs.twimg.com/media/HDRJuUybYAEsiau.jpg

评论 点赞 1

作者: @shao__meng (meng shao)
时间: Fri Mar 13 04:05:33 +0000 2026
链接: https://x.com/shao__meng/status/2032307047967178867

@Drli89 @badlogicgames 晚点我整理开源出来,包括信息卡的,还有 Remotion Skills 做动画视频的

评论 点赞 1

作者: @justinforfun (Justin否饭)
时间: Fri Mar 13 01:14:14 +0000 2026
链接: https://x.com/justinforfun/status/2032263933898473658

@shao__meng @badlogicgames 原来如此😂我说咋没动静了

评论 点赞 1

作者: @shao__meng (meng shao)
时间: Fri Mar 13 06:59:52 +0000 2026
链接: https://x.com/shao__meng/status/2032350918214398138

@lit10050528 @badlogicgames 在我置顶帖子哈 🔝

评论 点赞 1

作者: @Drli89 (Dr Lee)
时间: Fri Mar 13 05:59:12 +0000 2026
链接: https://x.com/Drli89/status/2032335651115581862

@shao__meng @badlogicgames 感谢~必须得 star

评论 点赞 1

作者: @settinghead (xc)
时间: Fri Mar 13 00:47:55 +0000 2026
链接: https://x.com/settinghead/status/2032257312195326227

@shao__meng @badlogicgames 当准备开始用Pi时,就会发现裸call API的价格是subscription价格的10倍不止,就被迫先搁置了。

评论 点赞 7

作者: @justinforfun (Justin否饭)
时间: Fri Mar 13 00:54:30 +0000 2026
链接: https://x.com/justinforfun/status/2032258968165503282

@shao__meng @badlogicgames 说起来,之前还有个 个人 ai 助手也叫 Pi 😂,不过好像很久没更新动态了

https://t.co/zMhBCY70d0

评论 点赞 8

作者: @shao__meng (meng shao)
时间: Fri Mar 13 01:01:13 +0000 2026
链接: https://x.com/shao__meng/status/2032260659648610363

@justinforfun @badlogicgames 是呢,很早很早之前关注过 Pi,当时它提出的不同性格的 AI 伙伴还挺有想法的,有情绪有温度,不过后来很快创始人就被微软挖走,成为 Microsoft AI CEO。Pi 也就慢慢淡出视野了。

评论 点赞 9

作者: @lit10050528 (robin zhang)
时间: Fri Mar 13 05:24:28 +0000 2026
链接: https://x.com/lit10050528/status/2032326910542561382

@shao__meng @badlogicgames 配图也是生成的么,可以分享一下 prompt 么?

评论 点赞 10

作者: @Drli89 (Dr Lee)
时间: Fri Mar 13 02:14:00 +0000 2026
链接: https://x.com/Drli89/status/2032278974437691489

@shao__meng @badlogicgames 这个可视化图还是用之前的提示词吗?还是说已经整合成 skills 了?

评论 点赞 11

作者: @shao__meng (meng shao)
时间: Fri Mar 13 02:42:59 +0000 2026
链接: https://x.com/shao__meng/status/2032286271104766093

@Drli89 @badlogicgames 我自己是把它做成了本地的 Skills,除了提示词外,主要是 HTML -> PNG 这步通过 Skills 的脚本自动化了;设计布局本身,还是之前的提示词。

评论 点赞 12

作者: @Drli89 (Dr Lee)
时间: Fri Mar 13 03:54:20 +0000 2026
链接: https://x.com/Drli89/status/2032304224638546196

@shao__meng @badlogicgames 能否分享这个 skills 学习一下呀😃

评论 点赞 13

作者: @cheuk_baby (Jason傑森 🇭🇰 | 🛠️)
时间: Fri Mar 13 02:54:00 +0000 2026
链接: https://x.com/cheuk_baby/status/2032289042642190338

@shao__meng @badlogicgames 这思路还真值得细看下

评论 点赞 14

作者: @andrewsongx (Andrew)
时间: Fri Mar 13 07:09:04 +0000 2026
链接: https://x.com/andrewsongx/status/2032353232882974921

@shao__meng @badlogicgames 对比 vercel 的 aI sdk,vercel ai sdk的比pi差在哪些地方了,是不是pi能做的aI sdk也都能做?@shao__meng

评论 点赞 15

作者: @imjszhang (JS)
时间: Fri Mar 13 06:16:05 +0000 2026
链接: https://x.com/imjszhang/status/2032339900285301203

@shao__meng @badlogicgames 「精妙」是认知税。真正优雅的系统不会让你感叹设计者的聪明——你会忘记设计的存在,就像忘记呼吸。

Capture Diagnostics

{
  "mode": "thread",
  "started_at": "2026-03-13T20:49:13.119Z",
  "ended_at": "2026-03-13T20:50:23.458Z",
  "rounds_executed": 23,
  "expand_clicks": 2,
  "last_visible_expand_buttons": 0,
  "termination_reason": "stable_idle",
  "incomplete": false,
  "likely_incomplete": false,
  "error_code": null,
  "resumed_from_cache": false,
  "imported_tweets": 0,
  "imported_users": 0,
  "cache_path": null,
  "cache_age_ms": null,
  "cache_prior_likely_incomplete": false,
  "cache_expired": false,
  "newly_captured_tweets": 4,
  "instruction_response_count": 3,
  "instruction_tweet_count": 16,
  "instruction_conversation_module_count": 10,
  "instruction_related_module_count": 0,
  "instruction_cursor_count": 2,
  "instruction_show_more_cursor_count": 2,
  "last_expand_button_texts": [],
  "clicked_expand_button_texts": [
    "显示回复 显示回复"
  ]
}