2.Pi Agent
环境准备
为什么选Pi?除了Pi Agent只提供最小核心,Harness交给用户。Pi的系统上下文精简,在对话占用的上下文少(比起某些agent动辄2k上下文)。
- 选合适的方式安装
https://pi.dev/
安装后在当前shell会话加载配置: source ~/.bashrc
- 配置模型
接入自定义模型,可通过pi-model-manager该TUI拓展接入/管理模型。
pi install npm:pi-model-manager
workbuddy反代部署指南
https://github.com/ithtelab/workbuddy-manager/blob/main/deploy/README.md
- 选装插件
开箱即用的pi agent: https://github.com/orionpax1997/kickstart.pi
补充
# 查看系统架构: amd64 或 arm64
$env:PROCESSOR_ARCHITECTURE
垂直智能体: 只干一个领域/场景里的活,并且要把这个场景的闭环跑通的 Agent
ReAct
基于大模型,思考、输出、观察(结果),当输出需要调用工具时,进入下一轮循环;否则运行结束。
Q: 为什么无需调用工具时,就循环结束并输出结果?
A: 在模型的对齐训练阶段,要么调用工具,要么给最终答复。两者都不满足时,在这轮对齐只能得到得分。
因此久而久之,模型就学会了以上的循环。当然,完成任务不仅包括给最终回复,信息不足时回答不知道不瞎编,也是一种类型。
基本骨架
Session, 二开时直接操作的层级。整个生命周期反复的三个方法:
- prompt(消息): 给 Agent 发消息(用户提示词),触发处理
- subscribe(回调): 订阅事件,Agent 处理时的每一步(吐字、调工具、结束)进行监听
- dispose(): 任务结束或异常终端,释放资源
Runtime, createAgentSession 启动时加载的四个组件:
- ModelRuntime: 调用的大模型配置
- ResourceLoader: 加载资源,包括系统提示词、扩展、skills、AGENTS.md
- SessionManager: 对话存哪、怎么存(默认存本地)
- SettingsManager: 全局配置,包括重试次数、上下文压缩、默认模型等
Tool工具层,读写文件、查数据库等,工具来源包括:
- 内置默认: read/bash/edit/write, 另有 grep/find/ls 内置但不默认启用
- customTools: createAgentSession({ customTools: [...] })
- 扩展注册: 在扩展里 pi.registerTool 注册
事件监听
- pi.on(eventName, handler): 写在扩展里。能听到全部事件,而且能动手干预(拦截、改数据)。
- session.subscribe(handler): 写在外部宿主(你的脚本、路由)里。能听到大部分事件,但只能看,不能改。
{todo}
Agent封装为服务
{todo}