DeepSeek Harness发布,网络上无论是吹是黑,热度都空前。

但是看到DSH框架中的插件逻辑,首先想到的还是 Pi Agent。

想到自己还没写过Pi Agent的逻辑 ,就先来写上一篇吧。

01 极简的Pi

我最开始拆 Pi 的时候,其实一直有点不适应。

按照现在理解一个 Agent 的习惯,很自然就会去找:

MCP 在哪?

Sub-agent 在哪?

Plan Mode 又是怎么做的?

结果找了一圈,最后翻到 Pi 自己的 README,发现人家写得比我想象中直接多了。

默认给模型的工具就四个:

read / write / edit / bash

再往下看 Philosophy:

No MCP.

No sub-agents.

No plan mode.

连 permission popups、built-in to-dos、background bash 这些东西也没有。

需要怎么办?

自己用 Extension 长。

我看到这里才反应过来:

可能不是 Pi 少做了东西,而是我一开始就在错误的地方找它们。

因为 Pi 压根没觉得,这些能力都应该属于 Core。

02 为什么会有Pi

后来再去看作者 Mario Zechner 自己讲为什么做 Pi,这件事就更好理解了。

他一开始其实挺喜欢 Claude Code。后来真正让他越来越不舒服的,是随着 Harness 不断变化,他开始越来越搞不清楚模型到底看到了什么。

System Prompt 在变。

Tool Definition 在变。

背后塞进去的 Context 也在变。

他甚至专门做了一个叫 cchistory 的工具,用来追踪 Claude Code 不同版本里 System Prompt 和 Tool 的变化。

Mario 后来讲过一句我很喜欢的话:

My context wasn't my context.

我的 Context,已经不是我的 Context 了。

所以 Pi 的“简单”,可能从来不只是一种工程审美。

Mario 介意的是:

Harness 开始替自己做越来越多看不见、也不好改的决定。

这也解释了为什么 Pi 一边把 Core 做得很小,一边又把 Extension 留得很开放。

README 里有一句话说得很直接:

Adapt pi to your workflows, not the other way around.

不是让我去适应 Harness。

而是让 Harness 适应我的工作方式。

03 Extension 哲学

以前我容易把 Extension 理解成:

Pi 的插件系统很强。

现在再看,我觉得这还是太功能化了。

Extension 真正重要的地方,是它给 Core 划了一条边界。

今天 Agent 领域变化实在太快了。

MCP、Sub-agent、Skills……

一个个能力冒出来,很快又会变成:

“Agent 是不是应该标配这个?”

最自然的做法当然是,有用,那就加。

但一个东西写进 Core,和支持一个 Feature,其实不是一回事。

一旦进入 Core,框架其实就在替所有人回答:Agent 应该怎么工作。

而这个行业现在很多问题,可能根本还没有标准答案。

Pi 官方的说法是,它之所以保持高度可扩展,就是不想让框架去规定你的工作流。

但放到今天这个 Agent 还远没有定型的阶段,我自己会再往前推一步:

没想清楚,就先别焊死。

先放在 Extension。

可以用,可以试,可以推翻,也可以换一种实现。

Core 不急着替所有人宣布标准答案。

Pi 没有消灭复杂度。

它只是没有替你提前把这些选择都做掉。

04 像乌龟一样审视这个行业

这时候再看 Mario 分享里的那只乌龟,就挺有意思了。

这是Mario的一篇博客的一个配图。

下面还有一句:

The turtle's face is me looking at our industry.

这只乌龟当然不只是在讲 Pi。

Mario 后来对于 Agent 把软件开发速度拉得越来越快这件事,一直挺警惕。

因为当“做出来”的成本越来越低之后,人很容易形成一种新的惯性:

能做,那就做。

有了,那就加。

别人支持,那我也支持。

但“能不能很快做出来”和“这件东西应不应该长期留下来”,本来就是两个问题。

放回 Harness 也是一样。

今天 MCP 很重要。

Sub-agent 也很重要。

明天还会出现新的东西。

但它们究竟应该以什么形式存在,应该被 Harness 管到什么程度,可能都还值得继续试。

Pi 选择把很多答案先留在 Core 外面。

这不一定是最终答案。

但至少在这个阶段,这种克制极其难得。

Agent 还远没有定型。

Harness 当然也还会继续长。

但接下来再看一个 Harness,除了会看它又增加了什么,也可以多看一眼:

有哪些东西,它选择没有加进去。