从源码开始
欢迎使用 PurrCat!本篇文档将引导您从零开始,通过源代码在本地部署并配置 PurrCat 私人 Agent 框架。
1. 准备工作
PurrCat 的运行需要以下依赖:uv(Python 包管理器)、Node.js(提供 npx)和 Docker(或 Podman,沙盒环境)。您可以尝试使用我们提供的命令行进行安装,以下命令均会自动配置系统环境变量。
uv(Python 包管理器)
用于安装 PurrCat 的所有 Python 依赖。
- Linux / macOS:bash
curl -LsSf https://astral.sh/uv/install.sh | sh - Windows(PowerShell):powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Node.js
提供 npx 命令,用于运行 MCP 扩展工具和 WebUI 前端。
- Windows:powershell
winget install OpenJS.NodeJS - macOS:bash
brew install node - Linux(Ubuntu/Debian 为例):bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs
Docker 或 Podman
用于构建和运行 PurrCat 专属的本地沙盒环境,保障 Agent 文件操作的安全性。系统会自动检测并优先使用 Docker。
- Windows:
winget install Docker.DockerDesktop - macOS:
brew install --cask docker - Linux:
curl -fsSL https://get.docker.com | sh
注意:
- 以上工具安装完成后,请务必重启您的命令行终端,以确保自动配置的环境变量生效。
- 运行 PurrCat 前,请确认 Docker 或 Podman 的后台服务已处于运行状态。
验证安装
重启终端后,执行以下命令确认各工具安装成功:
# 验证 uv
uv --version
# 验证 Node.js 和 npx
node --version
npx --version
# 验证 Docker
docker --version
docker info所有命令均正常输出版本号即表示安装成功。
2. 获取源代码
请先将 PurrCat 的源代码仓库克隆到您的本地机器,并进入项目根目录:
git clone https://github.com/PurrPod/purrcat.git
cd purrcat或者,直接在本网页下载压缩包(见导航栏)并正确解压和重命名。
3. 一键部署(推荐)
PurrCat 提供了统一的 CLI 入口 purrcat,一键完成环境初始化:
# 一键部署(沙盒构建 + Python 依赖安装 + 嵌入模型下载)
purrcat setup⚠️
purrcat setup是交互式的,运行过程中会依次提问以下选项,请根据提示做出选择:
执行过程中会依次提问(详见第 4 节拆解说明):
- 自动检测容器引擎(支持 Docker / Podman)
- 选择沙盒镜像版本(完整版或轻量版)
- 选择镜像来源(推荐从 ghcr.io 拉取,也可本地构建)
- 如选择本地构建,再选 APT 镜像源
- 获取沙盒镜像(拉取或构建)
- 自动解析并安装 Python 依赖(
uv sync) - 下载 Embedding 向量化模型
- 可选安装 WebUI 前端依赖(npm install)
整个流程取决于网络状况,首次拉取基础镜像可能需要 5~15 分钟,请耐心等待。引擎偏好保存至
~/.purrcat/settings.json。
4. 脚本拆解与手动分步
如果一键部署中途失败,您可以根据下面的拆解说明逐步执行,便于定位问题。
4.1 Docker 沙盒镜像获取
purrcat setup 提供两种方式获取沙盒镜像:
方式一:从 ghcr.io 拉取(推荐)
# 轻量版
docker pull ghcr.io/purrpod/purrcat-sandbox:light
docker tag ghcr.io/purrpod/purrcat-sandbox:light my_agent_env:latest
# 完整版(包含 Chromium、ffmpeg 等)
docker pull ghcr.io/purrpod/purrcat-sandbox:full
docker tag ghcr.io/purrpod/purrcat-sandbox:full my_agent_env:latest预构建镜像由 CI 自动维护,省去本地构建时间,网络通畅时秒级完成。
方式二:本地构建(备选)
# 可选:配置 APT 镜像源(优先选官方源,阿里云镜像备选)
# 阿里云镜像
docker build -t my_agent_env:latest --build-arg APT_MIRROR="mirrors.aliyun.com" .
# 或使用官方源
docker build -t my_agent_env:latest --build-arg APT_MIRROR="deb.debian.org" .构建过程简述:
- 基于
python:3.10-slim基础镜像 - 安装系统依赖:curl、git、vim、ffmpeg、jq 等
- 安装 Node.js 20.x(用于沙盒内的工具链)
- 配置 PyPI 国内镜像(阿里云) + 安装 uv
- 设置工作目录为
/agent_vm
常见失败原因:
| 问题 | 解决方案 |
|---|---|
| Docker 未安装或未启动 | 启动 Docker Desktop,确认 docker info 能正常执行 |
| 镜像拉取/构建超时 | 切换到 ghcr.io 拉取方式,或配置 Docker 镜像加速器 |
| 磁盘空间不足 | 清理 Docker 无用的镜像/容器:docker system prune -a |
| Docker Hub 匿名拉取限额 | 登录 Docker Hub 账号,或等待限额重置 |
4.2 Python 依赖安装
# 使用 uv 一键解析并安装所有依赖
uv sync
uv sync会根据pyproject.toml自动创建虚拟环境(.venv)并安装所有依赖。一键完成,无需手动 activate。
环境包含的核心依赖:
- Python 3.10 + OpenAI SDK + MCP 协议
- Sentence-Transformers + ChromaDB(向量检索与记忆系统)
- Textual(TUI 界面)
- Docker SDK + Playwright(沙盒与自动化)
- Lark SDK(飞书通讯)+ Feedparser(RSS 订阅)
- FastAPI + Uvicorn(Web 后端)
常见失败原因:
| 问题 | 解决方案 |
|---|---|
| uv 命令找不到 | Linux/Mac: `curl -LsSf https://astral.sh/uv/install.sh |
| 包下载超时 | 配置 uv 镜像源:uv config set index-url https://mirrors.aliyun.com/pypi/simple/ |
| Python 版本不满足 | 确保 Python >= 3.10,或使用 uv python install 3.10 自动安装 |
| PyTorch 下载慢 | uv 已自动配置 CPU-only PyTorch 镜像,若仍慢可手动设置 UV_INDEX_PYTORCH_CPU |
4.3 嵌入模型下载
uv run python scripts/setup_emb.py该脚本会自动下载 Embedding 模型(默认 sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2),用于 RAG 检索与记忆系统的向量化。
常见失败原因:
| 问题 | 解决方案 |
|---|---|
| HuggingFace 连接超时 | 配置 HuggingFace 镜像源:export HF_ENDPOINT=https://hf-mirror.com |
| 磁盘空间不足 | 模型约 100MB,确保有足够空间 |
5. 必要配置
一键部署完成后,需要配置模型 API 密钥等核心参数。
5.1 生成配置文件
# 交互式生成 .purrcat/ 配置目录(逐个确认)
purrcat init
# 如需覆盖已有配置
purrcat init --force该命令会在项目根目录生成 .purrcat/ 文件夹,包含以下文件:
| 文件 | 用途 |
|---|---|
.purrcat/model.json | 模型 API Key、Base URL、速率限制配置 |
.purrcat/activate_sensor.json | 传感器(飞书/RSS/时钟/语音)配置 |
.purrcat/file.json | 文件系统白名单与沙盒挂载配置 |
.purrcat/mcp_config.json | MCP 服务器扩展配置 |
.purrcat/memory.json | 记忆系统配置 |
.purrcat/note.json | 笔记工具偏好配置 |
.purrcat/core/cron.json | 定时任务列表 |
.purrcat/core/MEMORY.md | 系统级记忆档案 |
.purrcat/core/SOUL.md | Agent 人格定义 |
.purrcat/core/SOLO.md | 自主巡查规约 |
5.2 配置模型密钥
编辑 .purrcat/model.json,替换 API Key 占位符:
{
"embedding": "embedding",
"main": {
"openai:deepseek-v4-flash": {
"api_keys": ["sk-your-first-api-key-here"],
"base_url": "https://api.deepseek.com",
"description": "LLM worker",
"rpm": 60,
"tpm": 1000000,
"concurrency": 3,
"max_token": 500000
}
},
"task": {},
"vision": {}
}注意事项:
- 目前 PurrCat 仅支持可通过 OpenAI SDK 调用的模型
main段配置全局 Agent 使用的模型task段配置后台子任务使用的模型(多 Agent 协作时必填,且不能用与 main 相同的 API Key)vision段配置多模态视觉模型(可选,给不支持多模态的大模型配专属视觉顾问)- 支持为同一模型配置多个 API Key,系统会自动负载均衡
5.3 查看环境变量参考
purrcat env注意:当前版本不支持环境变量覆盖配置,请直接编辑
.purrcat/目录下的文件。
6. 启动服务
6.1 标准启动(TUI 界面)
purrcat start6.2 启动 WebUI
purrcat start --webui启动后系统会自动完成:
- 初始化 MCP 连接并拉取工具 Schema
- 启动 Agent 主循环
- 自动发现并启动已配置的 Sensor(飞书、RSS 等)
- 加载 TUI 界面(--webui 模式跳过,仅启动 API + 前端)
关闭服务:在终端按下 Ctrl+C 即可安全终止所有进程。