大家好,我是小木头。给 Pi Agent 装了插件,加了 Skill 和项目规则以后,你知道模型收到的系统提示词和工具说明是什么样的吗?哪些内容会直接加入、哪些要读取文件以后才进入上下文呢?本期视频我们介绍一款非常流行的插件 Pi Context View。我们一起来了解一下怎样在 Pi Agent 里查看这些内容,检查它们的配置。特别是对于经常调整插件 skill 或者自己开发扩展的朋友,可以用它来查看模型收到的指令和工具,验证这些数据是否如预期工作。

插件有两个入口:Usage 展示上下文的分类和估算占用情况;Injections 可以展开系统提示词、工具定义以及部分扩展加入的内容。其中有些变化只发生在发给模型的请求里,平时聊天时并看不到。比如你想确认某个工具提供了哪些参数、项目规则是否出现在系统提示词中,或者一段指令来自哪里,就可以展开相应的内容。它所提供的是输入侧的检查依据,非常方便你来配置和调试 Agent。

假设你已经安装了 Pi,在终端输入画面上的安装命令,回车后等待完成。本次演示使用 0.8.0 版本,需要 Pi 1.3 或更新的版本。看到安装成功后,启动 Pi。在输入框里输入 /context,回车打开上下文视图。如果 Pi 会话原本已经开着,那么安装后先执行 /reload,重新加载扩展,再打开 /context。

现在看看上下文组成的图表:系统指令和项目规则告诉 Agent 怎样工作、遵守什么要求;工具定义说明有哪些工具能做什么、接收什么样的参数。任务进行中对话、工具调用和返回结果,会持续地加入上下文。读取文件,会带入正文;搜索代码,会带入匹配结果;运行测试呢,会带入测试结果或者日志。部分历史也可能被整理成摘要供后续工作继续使用。

聊天窗口能看到其中一部分,但系统提示词、工具说明和扩展临时加入的内容通常呢需要另外检查。插件 Pi Context View 就提供了这样的查看入口。咱们以一个增加指令和工具的插件为例,新增系统指令归入到系统提示词;新增工具的名称、说明和参数则归入工具定义。图中同类内容呢保持同色,方便大家理解。

标着新增部分的仍然属于原来的分类。如果你想检查某个插件安装前后,各开一个新会话,保持 Pi 版本、模型、项目和原有工具一致,再展开系统提示词和工具定义,查看它增加了什么。这能帮助你确认插件提供的指令和工具像本期 Pi Context View 这样的界面插件,自身不主动增加模型的上下文。

我们再来看 Skill。在本次的样本里,模型先收到了名称、描述和路径,知道有哪些 Skill、文件放在哪里。右边的文件仍在本地,正文还没有被读取。Agent 用 read 工具呢读取文件,正文作为工具返回的内容加入到左侧的上下文列表保留。下面多出了读到的文字,所以检查 Skill 时需要分别看列表和已经读取的正文。

仅看到名称还不能说明整份文件已经读进来了。项目规则也可以这样检查,先展开系统提示词找到项目规则对应的内容,再搜索一句你写过的要求或者需求,确认它是否出现在当前可查看的提示词里。如果要查看读文件、搜索或测试等操作在上下文中增加了什么内容,就在 Usage 中展开 Tool Output。

这里是工具返回的内容,这和说明工具怎么用的工具定义是不同的部分。检查这两处可以分别确认规则和工具结果是否进入了上下文,以及如何影响到上下文。上下文内容多的时候还可以直接搜索。在 Injections 里按照名称筛选 read,打开工具定义再搜索 limit,就能查看限制读取行数的参数说明。

知道名称时还可以按照名称搜索;只记得某句指令或参数时可以切换到基于内容的搜索。这样可以从较长的工具和 Skill 列表里找到具体的项目。搜索帮助你查看内容,它并不会改变模型已经收到的上下文。

查看之后你也可以据此进行调整。调整什么呢?对应的工具调用。比如只需要从 600 行配置样本中找到 2 个值,完整读取返回 36,000 多个字符。先搜索位置再读取相关区域,合计返回 397 个字符,2 个目标值仍然都在。

通过插件我们发现这次读取返回了整份文件。只需要查 2 个配置值时,可以让 Agent 先搜索位置再读取附近的内容。这样呢返回的文字更少,2 个配置值也都保留了。这样可以有效地节省上下文窗口。

具体怎样读取仍然需要你告诉 Agent。Pi 本身支持自动压缩历史或者上下文,也可以手动执行 /compact。正常工作时你可以继续使用原生的压缩。想了解压缩以后模型还能看到什么,再打开 Compacted Data 和保留的消息。

比如任务目标、限制条件已验证结果和待办是否保留呢?想知道压缩后保留了什么就展开这个 Compacted Data,查看摘要的内容。分类数字主要根据字符数等方法来估算,适合比较组成和查找内容;实际费用则要看服务的用量记录。

另外扩展的加载顺序会影响部分变化是否可见。检查到某条指令只能确认它出现在可观察的内容中,不能单凭它解释模型为什么做出某个决定。你可以先选一个具体问题:项目规则有没有加入、工具有哪些参数或者某个 Skill 的正文有没有读入。

找到对应的分类,搜索并展开内容再决定是否调整配置。Pi Context View 的价值,就是让这些平时不容易看见的输入变得可以检查,为配置和调试 Agent 提供依据。如果这期内容对你有帮助,欢迎大家继续关注咱们的频道,也欢迎点赞投币收藏吧!我是小木头,我们下期见。