# 项目缘起对话

> 本文记录 Intent Petri 从“显示 Pi 当前状态”转向“显示 Agent 总体意图与行动地图”的对话过程。

## 1. 从 Pi context 与运行状态开始

**用户：**

> pi 中，超过 context 之后，会自动压缩吗？

**结论：** Pi 默认启用自动 compaction，接近 context limit 时主动压缩；溢出后可压缩并重试。

**用户：**

> 有没有插件，实时显示 pi 在做什么，选择的进度等？

**结论：** Pi extension API 可以监听 agent、turn、message、tool、compaction、model 等事件，并通过 footer、widget、overlay 和自定义 TUI 展示状态；但不能显示隐藏 reasoning 或不存在的真实百分比。

## 2. 最初的多界面观察器设想

**用户：**

> 请设计这样的工具。当我不知道应该现在在哪儿。其一 pi 窗口里边；其二，skill herer 显示在一个新开的 pane 中；其三，显示到文件中，然后 tail -f；其四制作一个 macos 应用显示它，还可以做 codex pet 那样的交互。

最初方案把同一份 Pi 运行事件输出到四种界面：

1. Pi 底栏、widget 和 overlay；
2. Herdr 详细观察 pane；
3. NDJSON、snapshot 和 `tail -f` 文本；
4. macOS Pet 环境式呈现。

**用户：**

> 你先说一下你要做什么？再行动。我需要知道。

由此确认工作方式：先说明要做什么、明确不会做什么，再执行文件、pane、插件或应用层面的动作。

**用户：**

> 继续。

随后形成了 Trace for Pi 多呈现观察器设计。该设计真实展示 Pi lifecycle、tool、context、compaction 和 structured plan，但本质仍是对 extension 可见信息的组装。

## 3. 问题被重新定义

**用户：**

> 先将本方案存档到md。然后开个新的设计，你的方案看起来完全把pi coding agent 插件能拿到的信息组装为显示。
>
> 而我真实的疑问是 ai coding agent 在持续运行，连续 call 了很多次，连续 tool 了很多次，处理了报错很多次。我不知道总体要干什么。
>
> 往这个方向设计 -> 可视化的佩特里图，显示意图，工作流 - 越近的要行动应该约清楚，越远的可以越模糊。
>
> 所以，这应该是一个详细程度可动态变化的佩特里网，服务于人类的注意力，不服务于代码可视化。
>
> 而实现上，一个方式是通过后处理的方式，将 session 的每个log，传输给外部的llm用来判别，绘制佩特里图；另一个方式，是ai行动本身，要及时更新自己的行动路径（这可能是一个侵入式的设计，但也可能是个工作范式的革新；比如，现在的 LLM 端点，都是集中到一个出口，而这种行动路径，有一定的多头输出的需求）。
>
> 请根据我这个思路，设计个可行方案。

这段话形成了项目真正的产品边界：

- 不再以 tool、文件和日志为主图；
- 以意图、条件、行动、证据、分支和恢复路径为主图；
- 采用动态 Action Horizon：Near 清晰，Mid 阶段化，Far 抽象；
- 采用双通道：Agent declared path + observed execution；
- 使用确定性 reconciler 保留来源和分歧；
- 未来探索 User Head、Action Head、Path Head 三头输出；
- 当前先用 `update_action_path` 本地工具验证工作范式。

## 4. 设计完成并进入制作

新的设计经过多轮独立读者测试，补全了：

- Workflow Net Core 与 Attention View 的分离；
- Place、Transition、Execution Token 的严格边界；
- Near/Mid/Far refinement 生命周期；
- revisioned、atomic GraphPatch；
- Place state、Gate state、token reservation 和 firing 语义；
- deterministic alignment reducer；
- Observer LLM 的权限边界；
- 日志进入主图的准入规则；
- 单 Agent Phase 1 vertical slice。

**用户：**

> 按你说的做，开始制作这个 pi 扩展吧。你可能需要准备好 pi extension doc；你需要新创建个项目做这件事情 /skills:init-project

项目最初拟名 `wayfinder-pi`。

**用户：**

> 换个名字吧，有个出名的skill叫wayfinder，当前是为了显示行动地图。

候选名称为：

- `agent-action-map`
- `intent-petri`
- `praxis-map`

**用户选择：**

> intent-petri

随后确认创建：

- 本地目录：`/Users/larysong/repo/projects/intent-petri`
- GitHub 私有仓库：`songlairui/intent-petri`
- 描述：面向人类注意力的 Pi coding-agent 动态意图与行动佩特里网扩展

本项目由此正式启动。
