
## 它主要是用什么语言写的

从官方仓库看，**核心就是 Node.js / TypeScript 生态**：仓库根目录有 `package.json`、`tsconfig.json`，官方开发命令也是 `npm install`、`npm run build`、`npm run check`，并且包结构里主要是 `pi-ai`、`pi-agent-core`、`pi-coding-agent`、`pi-tui`、`pi-web-ui` 这些 npm 包。([GitHub](https://github.com/badlogic/pi-mono "GitHub - badlogic/pi-mono: AI agent toolkit: coding agent CLI, unified LLM API, TUI & web UI libraries, Slack bot, vLLM pods · GitHub"))

另外，官方文档明确写了：

- **Extensions 是 TypeScript modules**
    
- 你可以用它们来注册工具、命令、UI、事件钩子
    
- 还能把扩展打成 **Pi Packages** 通过 npm 或 git 复用。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md "pi-mono/packages/coding-agent/README.md at main · badlogic/pi-mono · GitHub"))
    

所以你可以把它理解成：

> **“一个以 TypeScript 为核心的 Agent 框架 / 终端 agent harness”**。([GitHub](https://github.com/badlogic/pi-mono "GitHub - badlogic/pi-mono: AI agent toolkit: coding agent CLI, unified LLM API, TUI & web UI libraries, Slack bot, vLLM pods · GitHub"))

---

## 能不能基于它魔改成不同专用 Agent

**完全可以，而且比很多现成 Agent 更适合“专用化”。**  
官方 README 直接说 Pi 的思路就是：

> **适配你的工作流，而不是让你去适配它。**  
> 你可以通过 **TypeScript Extensions、Skills、Prompt Templates、Themes** 来扩展，而不必 fork 后硬改内部。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md "pi-mono/packages/coding-agent/README.md at main · badlogic/pi-mono · GitHub"))

官方扩展文档也明确给了这些能力：

- 注册 **自定义工具** 给 LLM 调用
    
- 拦截或修改工具调用
    
- 增加 **自定义命令**
    
- 做 **自定义 TUI 交互**
    
- 做 **会话持久化状态**
    
- 接 webhook、CI、外部系统。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md "pi-mono/packages/coding-agent/docs/extensions.md at main · badlogic/pi-mono · GitHub"))
    

所以从工程角度讲，你有两条路：

### 方案 A：不 fork，做“专用化配置 + 扩展”

这是最推荐的。

适合做：

- 运维工程师 Agent
    
- 全栈开发 Agent
    
- 后端 Agent
    
- Linux 学习 / 排障 Agent
    
- 游戏服务端 Agent
    

做法一般是：

- 换 system prompt / prompt template
    
- 加 skills
    
- 加一批 TypeScript extensions
    
- 注册专属工具
    
- 限制某些高危操作
    
- 定制命令和 UI。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md "pi-mono/packages/coding-agent/README.md at main · badlogic/pi-mono · GitHub"))
    

### 方案 B：直接 fork pi-mono 深度魔改

也能做，尤其当你想改这些底层东西时：

- agent loop
    
- session 格式
    
- provider 接入层
    
- TUI 行为
    
- 默认工具策略
    
- 多 agent 编排方式
    

因为它本身就是 monorepo，包分层很清楚：`pi-ai` 负责模型抽象，`pi-agent-core` 负责 agent runtime，`pi-coding-agent` 是 CLI，`pi-tui` 是终端 UI。([GitHub](https://github.com/badlogic/pi-mono "GitHub - badlogic/pi-mono: AI agent toolkit: coding agent CLI, unified LLM API, TUI & web UI libraries, Slack bot, vLLM pods · GitHub"))

---

## 你举的两个例子，理论上都很适合

### 1. 运维工程师 Agent

这个特别适合 Pi。

因为扩展系统能做：

- 命令白名单 / 黑名单
    
- `sudo`、`rm -rf`、`kubectl delete` 前确认
    
- 自动读取日志
    
- 封装 `ssh`、`docker`、`systemctl`、`journalctl`
    
- 接 Prometheus / Grafana / Webhook / CI
    
- 保留排障状态和上下文。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md "pi-mono/packages/coding-agent/docs/extensions.md at main · badlogic/pi-mono · GitHub"))
    

你可以做成这种能力组合：

- `/diag`：自动诊断 CPU、内存、磁盘、systemd 状态
    
- `/k8s`：读取 Pod、Events、Logs
    
- `/nginx`：分析配置和报错
    
- `/rollback`：帮你执行回滚步骤，但要人工确认
    
- `/safe-shell`：高危命令前二次确认
    

Pi 文档里甚至专门提到过这类扩展场景：

- 权限门禁
    
- 路径保护
    
- 外部集成
    
- 有状态工具。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md "pi-mono/packages/coding-agent/docs/extensions.md at main · badlogic/pi-mono · GitHub"))
    

---

### 2. 全栈开发 Agent

这个也很适合，而且比“纯运维 agent”更贴近 Pi 目前主定位。

你可以给它加：

- 前端工具：读页面结构、跑构建、跑测试
    
- 后端工具：生成接口、迁移、测试、lint
    
- 数据库工具：封装 migration / schema diff
    
- Git 工具：自动提交、分支管理、PR 辅助
    
- 项目模板 skill：Next.js、NestJS、Go、Spring、Node API 等
    

README 明确说 Pi 支持：

- interactive mode
    
- JSON / print mode
    
- RPC 模式
    
- SDK embedding  
    也就是说它不只是命令行聊天壳子，还能嵌进你自己的应用里。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md "pi-mono/packages/coding-agent/README.md at main · badlogic/pi-mono · GitHub"))
    

---

## 真正适合它的“专用 Agent”长什么样

Pi 更适合做这种：

> **“在一个专业领域里，有固定流程、有固定工具、有可控权限”的 agent**

比如：

### 很适合

- 运维排障 agent
    
- 全栈开发 agent
    
- 代码审查 agent
    
- 测试生成 agent
    
- 游戏后端开发 agent
    
- Linux 学习陪练 agent
    
- K8s 诊断 agent
    

### 不算最适合

- 那种强依赖图形浏览器自动操作的网站 agent
    
- 一上来就想做超级复杂多 agent 调度平台
    
- 完全零代码、零配置、即装即用型产品
    

因为 Pi 的核心哲学还是 **极简 + 自己扩展**，不是“开箱自带一切”。([Mario Zechner](https://mariozechner.at/posts/2025-11-30-pi-coding-agent/?utm_source=chatgpt.com "What I learned building an opinionated and minimal coding ..."))

---

## 做专用 Agent 时，推荐怎么改

我建议你按这 4 层去改，而不是一上来 fork 全仓库：

### 第 1 层：Prompt / Skills

定义角色：

- 运维工程师 agent
    
- 全栈开发 agent
    
- Go 后端 agent
    
- Linux 导师 agent
    

这一层决定它“说话方式”和“解题策略”。Pi 官方把 Skills、Prompt Templates 当成正式定制方式之一。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md "pi-mono/packages/coding-agent/README.md at main · badlogic/pi-mono · GitHub"))

### 第 2 层：Extensions

这是最关键的一层。

你可以在扩展里做：

- 注册自定义工具
    
- 注册命令
    
- 拦截危险调用
    
- 加状态存储
    
- 做外部系统集成。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md "pi-mono/packages/coding-agent/docs/extensions.md at main · badlogic/pi-mono · GitHub"))
    

### 第 3 层：Tools

把专用能力封成工具给模型调用，比如：

运维 agent：

- `check_system_health`
    
- `read_nginx_conf`
    
- `tail_service_logs`
    
- `kubectl_get_pods`
    
- `restart_service_safe`
    

全栈 agent：

- `run_frontend_test`
    
- `generate_api_route`
    
- `db_migration_status`
    
- `git_commit_changes`
    
- `scan_project_structure`
    

### 第 4 层：底层 fork

当你想改 runtime、session、provider、TUI，再 fork。

---

## 你要注意的现实问题

### 1. 它不是“写个 prompt 就完事”

真正好用的专用 agent，核心不在 prompt，而在：

- 工具设计
    
- 权限控制
    
- 上下文组织
    
- 输出格式约束
    

Pi 很适合做这些，但也意味着你得自己设计。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md "pi-mono/packages/coding-agent/docs/extensions.md at main · badlogic/pi-mono · GitHub"))

### 2. 运维 agent 一定要做权限隔离

比如：

- 禁止直接删生产资源
    
- 高危命令必须确认
    
- 只允许白名单主机
    
- 日志可读，写操作有限制
    

Pi 扩展机制支持做这类 guard rail。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md "pi-mono/packages/coding-agent/docs/extensions.md at main · badlogic/pi-mono · GitHub"))

### 3. 全栈 agent 最好按栈拆 skill

不要做一个“万能全栈神 agent”，更实用的是拆成：

- React / Vue 前端 skill
    
- Node / Go 后端 skill
    
- PostgreSQL / Mongo 工具
    
- Docker / CI skill
    

这样更稳。

---

## 直接回答你的问题

### 他是用什么语言编写的？

**主要是 TypeScript / Node.js 生态。** 官方仓库和文档都明确显示它是 npm monorepo，并且扩展是 TypeScript modules。([GitHub](https://github.com/badlogic/pi-mono "GitHub - badlogic/pi-mono: AI agent toolkit: coding agent CLI, unified LLM API, TUI & web UI libraries, Slack bot, vLLM pods · GitHub"))

### 可不可以基于他魔改做不同专用 agent？

**可以，而且非常适合。**  
最推荐的方式不是先 fork，而是：

> **Pi 本体 + Prompt Templates + Skills + TypeScript Extensions + 自定义 Tools**

这样就能做出：

- 运维工程师 agent
    
- 全栈开发 agent
    
- 后端开发 agent
    
- Linux 排障 agent。([GitHub](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md "pi-mono/packages/coding-agent/README.md at main · badlogic/pi-mono · GitHub"))
    

### 要不要 fork？

- **轻中度专用化：不用 fork**
    
- **深度改 agent runtime / UI / provider / session：再 fork**。([GitHub](https://github.com/badlogic/pi-mono "GitHub - badlogic/pi-mono: AI agent toolkit: coding agent CLI, unified LLM API, TUI & web UI libraries, Slack bot, vLLM pods · GitHub"))
    

---

按你的背景，其实最适合你的是这两种：

1. **Linux / 运维排障 Agent**
    
2. **游戏后端开发 Agent**（尤其适合你那个“萌芽农场”服务端）
    

我可以下一条直接给你画一套  
**“基于 Pi 改造成运维工程师 Agent 的完整架构图 + 模块清单 + 目录结构”**。