1. 项目概述与核心价值
Poco是一个云原生AI代理执行平台,灵感来自Anthropic的Coworker概念。它通过 orchestrate Claude AI agents 在分布式云环境中执行超越编码的自主任务,包括文件整理、文档编写、数据分析等。平台采用微服务架构,包含Next.js前端、FastAPI后端、执行器管理器和执行器容器四个核心组件,通过Docker Compose编排。所有任务在隔离的Docker容器中运行,确保主机环境安全。数据持久化使用PostgreSQL存储元数据,S3兼容存储(支持本地RustFS或云R2)存储文件和工作区,可选Mem0提供向量记忆能力。技术栈明确包括:Python 3.12+、Next.js 16、FastAPI 0.115+、Docker。
2. 解决的核心问题
1. **安全性问题**:传统AI代理直接在主机执行命令存在安全风险,Poco通过容器沙盒隔离所有任务,允许安装依赖、修改文件、执行命令而不影响主机,并支持本地目录挂载(仅自托管)让代理操作真实项目文件。
2. **易用性问题**:OpenClaw等工具界面不够友好,Poco提供更美观的Web UI,支持明暗模式、多格式工件预览(HTML/PDF/Markdown/图片/视频/Xmind等)、命令执行回放查看。
3. **协作效率问题**:缺乏项目级配置管理和持久化记忆,Poco支持项目预设、本地目录挂载、GitHub集成,并由mem0驱动智能记忆,记住用户偏好和项目上下文。
4. **可访问性问题**:传统方案只能在桌面使用,Poco集成钉钉、飞书、Telegram即时通讯,支持移动端控制和推送通知,实现随时随地管理代理任务,且支持后台执行和定时触发。
3. 主要应用场景
1. **自主代码开发**:AI代理可独立完成代码编写、调试、测试全流程,支持GitHub仓库集成和代码搜索编辑,提供原生Claude Code体验(Slash Commands、Plan Mode、AskQuestion)。
2. **文档与数据分析**:自动整理文件、生成文档、分析数据,支持多种文件格式预览和上传,可渲染HTML、PDF、Markdown、图片、视频、Xmind、Excalidraw、Drawio等格式。
3. **团队协作自动化**:通过项目管理功能组织跨任务和上下文的工作,设置项目级默认模型、预设、Git仓库和本地挂载,支持对话队列和会话终止。
4. **Web研究与浏览器自动化**:内置浏览器支持自主网络研究,可执行网页交互和数据抓取,回放浏览器会话记录。
5. **远程任务管理**:通过即时通讯工具接收推送通知、订阅事件、远程控制代理执行,支持后台执行和定时触发,即使关闭浏览器任务仍可在云端继续运行。
4. 安装部署指南
Poco支持本地自托管和云部署,推荐使用交互式脚本进行首次安装:
**前提条件**:
- Docker和Docker Compose已安装
- 拥有Anthropic API密钥(或兼容端点服务密钥)
- Python 3.12+(仅开发环境需要)
**安装步骤(基于quickstart.sh脚本)**:
1. 克隆仓库:`git clone https://github.com/poco-ai/poco-claw.git`(注:README链接指向poco-ai/poco-agent,仓库名可能存在差异)
2. 进入项目目录:`cd poco-claw`
3. 运行快速启动脚本:`./scripts/quickstart.sh`
- 脚本会交互式询问部署模式(local或cloud)并写入DEPLOYMENT_MODE
- 提示输入Anthropic API密钥(保存为ANTHROPIC_API_KEY)
- 自动创建oss_data/和tmp_workspace/目录,尝试chown oss_data/为10001:10001(RustFS用户)
- 拉取executor镜像并启动所有服务
4. 访问Web控制台:`http://localhost:3000`
**非交互模式**:
bash
./scripts/quickstart.sh --non-interactive --llm-api-key=your_key --llm-base-url=https://api.anthropic.com --model=claude-sonnet-4-20250514
常用标志:--no-pull-executor(跳过拉取镜像)、--no-start(仅准备环境)、--no-init-bucket(跳过桶创建)、--no-chown-rustfs(跳过权限设置)。
**手动配置**:
如脚本未覆盖,可手动复制`.env.example`为`.env`并编辑以下关键变量(来自.env.example和backend配置文档):
- `ANTHROPIC_API_KEY`:模型API密钥(必填)
- `DATABASE_URL`:PostgreSQL连接字符串(如postgresql://postgres:postgres@postgres:5432/poco)
- `S3_ENDPOINT`、`S3_ACCESS_KEY`、`S3_SECRET_KEY`、`S3_BUCKET`:对象存储配置(本地rustfs为http://rustfs:9000)
- `BACKEND_SECRET_KEY`、`INTERNAL_API_TOKEN`、`CALLBACK_TOKEN`:服务间通信令牌(生产环境必须修改)
- `DEFAULT_MODEL`:默认模型ID(如claude-sonnet-4-20250514)
- `MODEL_LIST`:允许的模型列表(JSON数组)
**服务端口**:
- 前端:3000
- 后端:8000
- 执行器管理器:8001
- PostgreSQL:5432
- S3:9000(控制台9001)
5. 基本使用说明
**Web界面操作**:
1. 访问`http://localhost:3000`进入控制台
2. 创建新项目,配置项目级默认设置:
- 选择预设(Preset)并可视自定义
- 挂载本地目录(仅自托管模式可用)
- 连接GitHub仓库进行代码搜索和编辑
- 设置知识库
3. 在项目中开始对话,支持两种模式:
- **计划模式(Plan Mode)**:让代理先制定计划再执行
- **对话模式**:直接交互式对话,支持对话队列和终止
4. 上传文件(支持多种格式),代理可处理和分析
5. 查看工件预览、命令执行回放、浏览器会话记录、Skills/MCP工具调用记录
**即时通讯集成**:
- 在项目设置中配置钉钉/飞书/Telegram机器人
- 通过IM消息远程触发任务
- 接收任务状态推送通知和事件订阅
**高级功能**:
- 使用MCP(Model Context Protocol)和Skills扩展能力,支持插件导入
- 配置子代理处理特定任务
- 设置定时任务和后台执行(任务可在云端持续运行)
- 通过mem0记忆系统获得个性化帮助(需启用)
**注意事项**:
- 首次使用需确保`.env`中`ANTHROPIC_API_KEY`已正确配置
- 本地目录挂载功能仅在自托管模式下可用
- 云订阅功能即将推出,当前为免费自托管版本
- 详细文档见:https://docs.poco-ai.com/
- 仓库中未明确给出前端独立启动命令,建议使用docker-compose统一启动
6. 技术架构与数据流
Poco采用微服务架构,各组件职责明确:
**backend(FastAPI后端)**:
- 提供REST API接口(/api/v1),通过同源代理与前端通信
- 处理会话管理、文件操作、记忆系统API
- 连接PostgreSQL存储元数据和S3存储文件
- 包含models(数据模型)、repositories(数据访问)、schemas(序列化)、services(业务逻辑)等模块
- 关键模型包括:Project、Preset、Session、AgentMessage、ToolExecution、IM、MCP等
**executor_manager(执行器管理器)**:
- 从后端拉取任务队列,分配租约
- 启动和管理executor容器
- 协调executor回调
- 管理工作区清理与归档策略(可配置时区、路径、并发数)
**executor(执行器容器)**:
- 运行Claude Agent SDK
- 在沙盒中执行具体任务(代码、文件操作、浏览器自动化)
- 通过S3读写工作区
- 必须配置模型API密钥、默认模型ID和工作区路径
**frontend(Next.js前端)**:
- 提供项目创建、任务监控、文件浏览、设置管理界面
- 通过BACKEND_URL配置代理地址
- 支持移动端响应式设计
**数据流**:用户通过Web UI创建项目 → 后端存储项目配置到PostgreSQL → executor_manager分配executor容器 → executor从S3加载工作区 → 执行任务并回写结果 → 前端展示工件和回放。所有服务间通信使用INTERNAL_API_TOKEN和CALLBACK_TOKEN认证。