PAI Vibe 项目

轻量级 LLM Agent Harness(Go 语言)

项目简介

PAI(GitHub: Carudy/pai)是由独立开发者 Carudy 用 Go 语言编写的轻量级 LLM Agent Harness,核心理念是"极简但功能完整"——帮助用户快速熟悉 LLM Harness 完整流程,同时提供一个可日常使用的终端定制化 Agent。开发初衷是解决开发者管理多台机器时的日常操作需求,如执行 Shell 命令、回答技术问题、多步 DevOps 工作流自动化等。开发者偏好 Go 语言生态(认为心理负担最低),因此项目完全基于 Go 实现,不依赖 JS/TS 生态。项目本身是开源的 PoC,目前以极简形态运行,作者正在学习 Zed Agent 的思路以提升 Coding 场景效率。

核心功能

  • 终端自然语言交互:直接用自然语言描述任务,PAI 解析并执行对应 Shell 命令
  • 多角色系统:内置 DevOps(默认)、Coder 等角色,通过 -r 参数切换
  • 交互式会话:-i 参数启动底部输入条,滚动输出,实时交互;支持 Ctrl+G 实时转向、Ctrl+C 中断
  • 多步 DevOps 工作流:一句指令完成磁盘检查、目录分析、Kubernetes 查询等多步骤操作
  • Web 搜索增强:通过 Tavily API 在 DevOps 场景中获取最新信息并综合回答
  • 会话管理:支持命名会话保存、恢复、压缩上下文窗口
  • 配置文件管理:pai config 支持查看/编辑 config.toml,增删改查均保留注释,支持密钥展示与脱敏
  • 命令别名体系:每个子命令均有短别名,支持 pai session ls、pai config set default_role coder 等链式操作

技术实现

PAI 的架构围绕"角色 + 会话 + 工具调用"三层设计:

角色层:内置角色以独立配置存在,定义该角色可调用的工具集(如 DevOps 角色含 Shell 执行和 Tavily 搜索,Coder 含文件系统操作和代码补全建议),切换角色即切换工具边界。

会话层:每次运行默认创建持久化会话,会话内容存储在本地,支持命名保存;/compact 命令可压缩旧对话以控制上下文长度,避免超出模型限制。

工具层:通过结构化输出让模型决定调用哪个子命令(Shell / 搜索 / 文件操作),所有操作结果以流式方式回显。工具调用需用户确认(y/n 交互),防止误操作。

技术栈:Go 1.26 以上,无前端依赖,单二进制文件,构建产物 pai 可直接放 ~/.local/bin/ 使用。配置文件采用 TOML 格式,密钥支持 trusted_cmds / trusted_paths 白名单机制。

快速上手

  1. 安装:git clone https://github.com/Carudy/pai.git && cd pai && go build -o pai ./cmd/pai && mv ./pai ~/.local/bin/
  2. 配置 API Key:编辑 ~/.config/pai/config.toml,填入至少一个 LLM Provider 的 API Key
  3. 启动 DevOps 会话:pai "check disk usage, find top 5 largest directories in /var/log"
  4. 切换 Coder 角色:pai -r coder "add a --verbose flag to the CLI"
  5. 交互式会话:pai -i,在交互界面中用 /help /role /new 等命令管理会话

适用人群

  • 对 LLM Agent 原理感兴趣的爱好者与研究人员(通过源码理解 Harness 设计)
  • Go 语言偏好者,希望在终端用极简工具完成日常轻量任务
  • 多机器管理者的运维助手(多步巡检、批量操作)
  • 追求轻量、不依赖 Electron 类重型 AI IDE 的开发者
  • Zed 编辑器用户,想结合本地 Agent 做轻量代码任务

官方链接

GitHub:https://github.com/Carudy/pai

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论