# PP-Claw **Repository Path**: dengledb/PP-Claw ## Basic Information - **Project Name**: PP-Claw - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-31 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

🦐 皮皮虾 · PP-Claw

Go 语言编写的全能个人 AI 助手 Agent

Go License Based on nanobot

18 个 LLM Provider · 12 个消息渠道 · MCP 工具扩展 · 长期记忆 · 子代理 · 定时任务

--- ## 🦐 简介 **PP-Claw(皮皮虾)** 是一个简洁、高效的个人 AI 助手 Agent,基于 [Eino ADK](https://github.com/cloudwego/eino) 构建。本项目参考 Python 版 [nanobot](https://github.com/pinkpiglet/nanobot) 的架构与功能设计,使用 Go 语言完整重新实现,在保持功能对齐的同时充分利用 Go 的并发性能和静态编译优势。 支持接入飞书、Telegram、Discord、Slack、企业微信、个人微信、Matrix 等 12 个渠道,对接 OpenAI、Anthropic、DeepSeek、Gemini 等 18 个 LLM Provider,并可通过 MCP 协议无限扩展工具能力。 --- ## ✨ 特性一览 | 模块 | 能力 | |---|---| | 🤖 **LLM Provider** | OpenAI / Anthropic / DeepSeek / Gemini / Groq / OpenRouter / Azure OpenAI / 智谱 / 通义千问 / Moonshot / MiniMax / SiliconFlow / 火山引擎 / vLLM 等 **18+** | | 💬 **消息渠道** | Telegram / Discord / Slack / 飞书 / 钉钉 / WhatsApp / Email / QQ / MoChat / 企业微信 / 个人微信 / Matrix **共 12 个** | | 🔧 **内置工具** | 文件读写编辑 / Shell 执行 / Web 搜索+抓取 / 消息发送(含媒体) / 子代理 / 定时任务 / 飞书知识库+文档+Aily | | 🔌 **MCP 协议** | Stdio / SSE / Streamable HTTP 三种传输,自动发现注册工具 | | 🧠 **智能记忆** | LLM 驱动双层记忆(MEMORY.md 长期事实 + HISTORY.md 事件日志),Token 级自动整合 | | 🤝 **子代理** | 后台独立 LLM 循环,拥有文件/Shell/Web 工具,`/stop` 一键取消 | | 📦 **技能系统** | 8 个内置技能 + workspace 自定义技能,always-load 自动加载 | | ⏰ **定时任务** | Cron 表达式 / 固定间隔 / 一次性,结果自动路由回原渠道 | | 💓 **心跳检查** | 定期执行 HEARTBEAT.md 待办任务,智能评估是否通知 | | 🛡️ **安全防护** | SSRF 拦截 / Shell 危险命令阻断 / 路径遍历检测 / workspace 沙箱 | | 📡 **实时进度** | 工具调用时向渠道推送进度提示 | | 🚀 **Prompt Caching** | Anthropic 自动注入 caching header | --- ## 🚀 快速开始 ### 环境要求 - Go 1.21+ - 至少一个 LLM Provider 的 API Key(建议 claude 目前只试了这个) ### 编译安装 ```bash git clone https://github.com/yangkun19921001/PP-Claw.git cd PP-Claw go build -o pp-claw . ``` ### 初始化配置 ```bash ./pp-claw onboard ``` 按照引导输入 API Key 和模型名称,配置文件保存在 `~/.pp-claw/pp-claw.yaml`。 ### 运行 ```bash # 交互式对话 ./pp-claw agent # 单次对话 ./pp-claw agent -m "你好" # 启动完整服务(Agent + 渠道 + 心跳 + 定时任务) ./pp-claw gateway ``` --- ## 🐳 Docker 部署 ```bash # 启动 Gateway 服务 docker compose up -d gateway # 交互式 CLI docker compose run --rm cli # 查看日志 docker compose logs -f gateway ``` 容器通过挂载 `~/.pp-claw` 目录读取配置: ``` ~/.pp-claw/ ├── pp-claw.yaml # 主配置(必须提前创建) ├── workspace/ │ ├── memory/ # 记忆文件 │ └── skills/ # 自定义技能 └── sessions/ # 会话持久化 ``` --- ## 🤖 支持的 Provider > 模型名原样传递给 API,Provider 通过关键词/前缀自动匹配。
展开全部 18 个 Provider 配置示例 ### DeepSeek ```yaml agents: defaults: model: "deepseek-chat" providers: deepseek: api_key: "sk-your-key" ``` ### Anthropic(自动启用 Prompt Caching) ```yaml agents: defaults: model: "claude-sonnet-4-20250514" providers: anthropic: api_key: "sk-ant-..." ``` ### OpenAI ```yaml agents: defaults: model: "gpt-4o" providers: openai: api_key: "sk-..." ``` ### Azure OpenAI ```yaml agents: defaults: model: "gpt-4o" providers: azure_openai: api_key: "your-azure-key" api_base: "https://your-resource.openai.azure.com" api_version: "2024-10-21" ``` ### Gemini ```yaml agents: defaults: model: "gemini-2.0-flash" providers: gemini: api_key: "AIza..." ``` ### OpenRouter ```yaml agents: defaults: model: "anthropic/claude-sonnet-4" providers: openrouter: api_key: "sk-or-..." ``` ### 其他 支持 Groq / 智谱 / 通义千问 / Moonshot / MiniMax / SiliconFlow / 火山引擎 / vLLM / AiHubMix / OpenAI Codex / GitHub Copilot,配置格式相同: ```yaml providers: : api_key: "your-key" base_url: "https://..." # 可选 model: "override-model" # 可选 extra_headers: # 可选 X-Custom: "value" ```
--- ## 💬 支持的渠道 | 渠道 | 连接方式 | 特色功能 | |---|---|---| | **飞书** | SDK WebSocket 长连接 | 引用回复 / 表情反应 / 智能格式(text/post/card) / 知识库+文档工具 / 图片音频文件收发 | | **Telegram** | Long Polling | 代理支持 / 引用回复 / 多媒体收发 | | **Discord** | Gateway WebSocket | Intents 配置 | | **Slack** | Socket Mode | Thread 回复 / 表情反应 / 群聊策略(open/mention/allowlist) / DM 策略 | | **企业微信** | WebSocket | 欢迎消息 / 流式回复 / 去重 | | **个人微信** | ClawBot HTTP JSON API | Gateway 托管登录 / 多账号同时在线 / context token 回复 / CDN 媒体收发 | | **Matrix** | Sync 长轮询 | E2EE 端到端加密 / Thread 支持 / Typing 指示器 / Markdown→HTML | | **钉钉** | SDK | Client ID/Secret 认证 | | **WhatsApp** | Bridge WebSocket | Matrix Bridge 模式 | | **Email** | IMAP/SMTP | 自动收发 / 轮询间隔 / 主题前缀 | | **QQ** | SDK | App ID/Secret 认证 | | **MoChat** | HTTP | Base URL 配置 |
飞书配置示例 ```yaml channels: feishu: enabled: true app_id: "cli_xxxxx" app_secret: "your-app-secret" encrypt_key: "" # 可选 verification_token: "" # 可选 group_policy: "mention" # "open" 或 "mention" react_emoji: "THINKING" # 收到消息时的表情反应 reply_to_message: true # 引用回复 wiki_enabled: true # 启用飞书知识库工具 docs_enabled: true # 启用飞书文档工具 ```
Telegram 配置示例 ```yaml channels: telegram: enabled: true token: "123456:ABC-DEF..." allow_from: [] # 空=不限制 proxy: "socks5://127.0.0.1:1080" # 可选 ```
企业微信配置示例 ```yaml channels: wecom: enabled: true bot_id: "your-bot-id" secret: "your-secret" welcome_message: "你好!我是皮皮虾 🦐" ```
个人微信配置示例 ```yaml channels: wechat_personal: enabled: true base_url: "https://ilinkai.weixin.qq.com" cdn_base_url: "https://novac2c.cdn.weixin.qq.com/c2c" bot_type: "3" login_timeout_s: 480 accounts: wx1: enabled: true ``` 首次登录: ```bash # 1. 先启动 gateway pp-claw gateway # 2. 在另一个终端执行登录命令 pp-claw channels wechat login --account wx1 ``` 命令会优先在终端直接渲染二维码,同时也会打印二维码链接。用手机微信扫码并确认后,账号会自动保存到本地,后续重启 gateway 会自动接入。
Matrix 配置示例 ```yaml channels: matrix: enabled: true homeserver: "https://matrix.org" access_token: "syt_..." user_id: "@bot:matrix.org" device_id: "DEVICEID" e2ee_enabled: true group_policy: "mention" # "open"/"mention"/"allowlist" ```
--- ## 🔧 工具系统 ### 内置工具 | 工具 | 说明 | |---|---| | `read_file` / `write_file` / `edit_file` / `list_directory` | 文件操作,edit 支持模糊匹配提示 | | `execute` | Shell 命令执行,危险命令阻断,超时控制 | | `web_search` | Brave Search API 搜索 | | `web_fetch` | 网页抓取,HTML→文本,SSRF 防护 | | `message` | 消息发送,支持文本+媒体附件(图片/音频/视频/文档) | | `spawn` | 后台子代理,独立 LLM 循环 | | `cron` | 定时任务管理(add/list/remove) | | `feishu_wiki` | 飞书知识库:空间列表/节点浏览/文档搜索 | | `feishu_docs` | 飞书文档:读取/信息/块列表 | | `feishu_knowledge` | 飞书 Aily 数据知识问答 | ### MCP 扩展 通过 MCP 协议连接外部工具服务器,支持 **Stdio**、**SSE**、**Streamable HTTP** 三种传输: ```yaml tools: mcp_servers: # 本地 stdio filesystem: command: "npx" args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] # 远程 HTTP web-search: url: "https://mcp.example.com/search" headers: Authorization: "Bearer token" ``` --- ## ⏰ 定时任务 默认时区 **Asia/Shanghai**,支持 Cron 表达式 / 固定间隔 / 一次性定时。 ```bash # 每天 9:00 执行 pp-claw cron add -n "daily" -m "生成报告" --cron "0 9 * * *" # 每 60 秒执行 pp-claw cron add -n "check" -m "检查状态" --every 60 # 一次性定时 pp-claw cron add -n "remind" -m "会议提醒" --at "2026-06-01T09:00:00" # 管理 pp-claw cron list pp-claw cron remove --id pp-claw cron run --id ``` 也可以在对话中用自然语言创建,结果自动路由回原渠道。 --- ## 📦 技能系统 在 `~/.pp-claw/workspace/skills/` 下创建自定义技能: ```markdown --- name: my-skill description: My custom skill always: false --- Instructions for the agent... ``` `always: true` 的技能自动加载到系统提示词。 内置技能:`clawhub` / `cron` / `github` / `memory` / `skill-creator` / `summarize` / `tmux` / `weather` --- ## 🧠 记忆系统 双层记忆,LLM 驱动自动整合: - **MEMORY.md** — 长期事实和决策 - **HISTORY.md** — 可搜索的事件日志 消息数超过 `memory_window` 或 Token 超过 `context_window_tokens/2` 时自动触发整合,最多 5 轮迭代。连续 3 次 LLM 整合失败自动降级为原始归档。 --- ## ⚙️ 完整配置模板 ```yaml # ~/.pp-claw/pp-claw.yaml agents: defaults: workspace: "~/.pp-claw/workspace" model: "deepseek-chat" max_tokens: 8192 temperature: 0.1 max_tool_iterations: 40 memory_window: 100 context_window_tokens: 65536 providers: deepseek: api_key: "sk-your-key" gateway: host: "0.0.0.0" port: 18790 heartbeat: enabled: true interval_s: 1800 channels: send_progress: true send_tool_hints: true tools: restrict_to_workspace: false exec: timeout: 60 web: search: api_key: "" max_results: 5 mcp_servers: {} ``` --- ## 📝 CLI 命令 | 命令 | 说明 | |---|---| | `pp-claw onboard` | 交互式初始化配置 | | `pp-claw gateway` | 启动完整服务 | | `pp-claw agent` | 交互模式 | | `pp-claw agent -m "..."` | 单次对话 | | `pp-claw status` | 运行状态 | | `pp-claw channels status` | 渠道状态 | | `pp-claw channels wechat login --account wx1` | 通过 gateway 发起个人微信扫码登录 | | `pp-claw channels wechat status` | 查看个人微信运行状态 | | `pp-claw cron list/add/remove/run/enable` | 定时任务管理 | | `pp-claw version` | 版本信息 | 交互模式命令:`/new`(新会话)、`/stop`(取消任务)、`/help`(帮助)、`exit`(退出) --- ## 📁 项目结构 ``` PP-Claw/ ├── main.go # 入口 ├── cli/ │ ├── commands.go # CLI 命令 (Cobra) │ ├── wizard.go # 交互式引导向导 │ └── tui/ # Bubble Tea 交互界面 ├── agent/ │ ├── loop.go # Agent 核心循环 (Eino ADK) │ ├── context.go # 上下文构建 │ ├── memory.go # 双层记忆系统 │ ├── memory_consolidator.go # Token 级记忆整合 │ ├── skills.go # 技能加载器 │ ├── subagent.go # 子代理管理器 │ └── tools/ # 13+ 内置工具 ├── bus/ # 消息总线 ├── channels/ # 12 个渠道实现 ├── config/ # 配置 Schema + YAML 加载 ├── providers/ # 18 Provider + Azure OpenAI ├── session/ # 会话管理 (JSONL 持久化) ├── security/ # SSRF 防护 ├── cron/ # 定时任务服务 ├── heartbeat/ # 心跳服务 ├── skills/ # 8 个内置技能 ├── utils/ # LRU 缓存 / 通知评估器 └── templates/ # Workspace 模板 ``` --- ## 🛠️ 技术栈 | 组件 | 技术 | |---|---| | Agent 框架 | [Eino ADK](https://github.com/cloudwego/eino) | | MCP 客户端 | [mcp-go](https://github.com/mark3labs/mcp-go) | | CLI | [Cobra](https://github.com/spf13/cobra) | | TUI | [Bubble Tea](https://github.com/charmbracelet/bubbletea) | | 日志 | [Zap](https://go.uber.org/zap) | | 飞书 SDK | [oapi-sdk-go](https://github.com/larksuite/oapi-sdk-go) | | Matrix SDK | [mautrix-go](https://github.com/mautrix/go) | --- ## 🏗️ 跨平台构建 ```bash make build # 当前平台 make build-all # 全部平台 ``` | 平台 | 架构 | |---|---| | linux | amd64 / arm64 / mips64le | | darwin | amd64 / arm64 (Apple Silicon) | | windows | amd64 | | android | arm64 | 全部静态编译(CGO_ENABLED=0),无外部依赖。 --- ## 📄 License MIT