基于 Python 重构的、轻量级且高度透明的 AI Agent 系统,旨在复刻并优化 OpenClaw(原名 Moltbot/Clawdbot)的核心体验。
- 文件即记忆 (File-first Memory):摒弃不透明的向量数据库,回归最原始、最通用的 Markdown/JSON 文件系统。
- 技能即插件 (Skills as Plugins):遵循 Anthropic 的 Agent Skills 范式,通过文件夹结构管理能力。
- 透明可控:所有的 System Prompt 拼接逻辑、工具调用过程、记忆读写操作对开发者完全透明。
- 多用户支持:实现了用户注册、登录和会话管理功能,支持多用户使用。
- PostgreSQL 存储:使用 PostgreSQL 存储会话信息,确保数据持久化。
- Redis 缓存:使用 Redis 存储用户令牌,提升认证性能。
- 语言:Python 3.10+
- 框架:FastAPI
- Agent 编排:LangChain 1.x + LangGraph
- RAG 检索:LlamaIndex
- 数据库:PostgreSQL
- 缓存:Redis
- 模型接口:兼容 OpenAI API 格式
- 框架:Next.js 14+ (App Router)
- 语言:TypeScript
- UI:Tailwind CSS、Lucide Icons
- 编辑器:Monaco Editor
mini-openclaw/
├── PRD/ # 产品需求文档
├── backend/ # FastAPI + LangChain/LangGraph
│ ├── api/ # API 路由
│ │ ├── login.py # 登录相关接口
│ │ └── user.py # 用户管理接口
│ ├── memory/ # 记忆存储
│ │ ├── logs/ # Daily logs
│ │ └── MEMORY.md # Core memory
│ ├── sessions/ # 会话记录
│ ├── skills/ # Agent Skills 文件夹
│ │ ├── docker-desktop_windows_operation_guide/ # Docker 操作技能
│ │ ├── get_weather/ # 天气查询技能
│ │ └── summarization_skill/ # 文本摘要技能
│ ├── tools/ # Core Tools 实现
│ ├── utils/ # 工具函数
│ │ ├── config.py # 配置管理
│ │ ├── db_init.py # 数据库初始化
│ │ ├── logger.py # 日志管理
│ │ └── middleware.py # 认证中间件
│ ├── workspace/ # System Prompts
│ │ ├── AGENTS.md # 行为准则
│ │ ├── IDENTITY.md # 自我认知
│ │ ├── SOUL.md # 核心设定
│ │ └── USER.md # 用户画像
│ ├── app.py # 入口文件 (invoke式,AI/USER消息)
│ ├── app_t.py # 入口文件2 (流式,AI/USER/TOOL消息)
│ ├── requirements.txt # 依赖管理
│ └── SKILLS_SNAPSHOT.md # 技能快照
├── frontend/ # Next.js 14+
│ ├── src/
│ │ ├── app/ # 应用入口
│ │ └── components/ # 组件
│ │ ├── AppContent.tsx # 主应用组件
│ │ ├── LoginForm.tsx # 登录表单
│ │ └── UserSettings.tsx # 用户设置
│ ├── package.json # 前端依赖
│ └── tailwind.config.js # Tailwind 配置
├── .env.example # 环境变量示例
└── README.md # 项目说明
- 命令行操作工具 (terminal):执行 Shell 命令
- Python 代码解释器 (python_repl):运行 Python 代码
- 网络信息获取 (fetch_url):获取网页内容并转换为 Markdown
- 文件读取工具 (read_file):读取本地文件
- RAG 检索工具 (search_knowledge_base):检索知识库信息
Mini-OpenClaw 的 Agent Skills 遵循 "Instruction-following" (指令遵循) 范式,技能以文件夹形式存在于 backend/skills/ 目录下。
- Agent 在 System Prompt 中看到 available_skills 列表
- 当用户请求匹配某个技能时,Agent 使用
read_file工具读取技能的 Markdown 文件 - Agent 理解操作步骤,然后调用 Core Tools 来完成任务
所有记忆文件(Markdown/JSON)均存储在本地文件系统,确保完全的数据主权和可解释性。
- SKILLS_SNAPSHOT.md (能力列表)
- SOUL.md (核心设定)
- IDENTITY.md (自我认知)
- USER.md (用户画像)
- AGENTS.md (行为准则 & 记忆操作指南)
- MEMORY.md (长期记忆)
- POST /api/login:用户登录
- POST /api/user/register:用户注册
- DELETE /api/logout:用户登出
- POST /api/user/update-username:修改用户名
- POST /api/user/update-password:修改密码
- GET /api/user/info:获取用户信息
- Endpoint:POST /api/chat
- 功能:发送用户消息,获取 Agent 回复
- 支持 SSE 流式输出:实时推送 Agent 的思考过程和最终回复
- GET /api/files:读取指定文件的内容
- POST /api/files:保存对 Memory 或 Skill 文件的修改
- GET /api/sessions:获取用户的会话列表
- POST /api/sessions:创建新会话
- DELETE /api/sessions/{session_id}:删除指定会话
- POST /api/sessions/{session_id}/rename:重命名指定会话
- GET /api/history/{session_id}:获取指定会话的历史消息
- GET /api/skills/list:列出所有可用技能
前端采用 IDE(集成开发环境)风格,三栏式布局:
- 左侧 (Sidebar):导航 (Chat/Memory/Skills) + 会话列表
- 中间 (Stage):对话流 + 思考链可视化
- 右侧 (Inspector):Monaco Editor,用于实时查看/编辑正在使用的 SKILL.md 或 MEMORY.md
- 登录/注册:用户认证系统
- 用户设置:修改用户名和密码
- 会话管理:创建、删除、重命名会话
- 安装 PostgreSQL 数据库
- 安装 Redis 服务
- 配置环境变量(参考 .env.example 文件)
- 进入 backend 目录
- 安装依赖:
pip install -r requirements.txt - 启动服务:
python app_t.py
- 进入 frontend 目录
- 安装依赖:
npm install - 启动开发服务器:
npm run dev
- 前端:http://localhost:3000
- 后端 API:http://localhost:8002
MODEL:模型名称BASE_URL:模型接口的基础 URLAPI_KEY:模型接口的 API Key
DATABASE_URL:PostgreSQL 数据库连接 URLREDIS_HOST:Redis 服务器地址REDIS_PORT:Redis 服务器端口
- PostgreSQL 数据库需要创建相应的表结构
- 系统启动时会自动初始化数据库表结构
- 默认会创建两个测试用户:
- 用户名:admin,密码:1234
- 用户名:user1,密码:654321
- 在
backend/skills/目录下创建新的技能文件夹 - 在文件夹中创建
SKILL.md文件,包含技能的描述、步骤和示例 - 重启后端服务,技能会自动加载到系统中
- 本项目使用本地文件系统存储数据,请确保有足够的权限
- 核心工具中的终端操作有沙箱限制,只能在指定目录内操作
- 首次启动时会自动生成必要的配置文件和目录结构
- RAG 检索功能需要先在
knowledge/目录下添加文档
- 使用 Gunicorn + Uvicorn 作为 WSGI 服务器
- 配置 Nginx 作为反向代理
- 使用 Supervisor 管理进程
- 执行
npm run build构建生产版本 - 使用 Nginx 部署静态文件
- 配置 Nginx 反向代理到后端 API
- 数据库连接失败:检查 PostgreSQL 服务是否运行,连接字符串是否正确
- Redis 连接失败:检查 Redis 服务是否运行,配置是否正确
- 模型接口错误:检查 API Key 和 Base URL 是否正确
- 前端无法访问后端:检查 CORS 配置,确保前端域名在允许列表中
- 后端日志位于
backend/logs/目录 - 前端日志可在浏览器控制台查看
- 支持更多模型接口
- 增强技能系统,支持更复杂的任务
- 优化前端界面,提升用户体验
- 添加更多核心工具和示例技能
- 实现更高级的记忆管理策略
- 支持多语言
- 添加更多用户管理功能
- 实现数据备份和恢复功能