# AgentMesh **Repository Path**: wds-sync/agentmesh ## Basic Information - **Project Name**: AgentMesh - **Description**: AgentMesh中间件框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WeChat Claude Bot 一个基于微信 iLink API 的多账号 Claude Code 中继机器人,支持定时任务、会话管理和 Web 管理界面。 ## 功能概览 - **消息中继**:接收微信消息,转发给 Claude Code 执行,将结果回复给用户 - **多账号管理**:支持最多 10 个微信账号,每个账号独立会话和任务队列 - **定时任务**:基于 cron 表达式的自动化任务,支持 Claude Code 和 Python 两种执行器 - **工作目录管理**:按类别(生活/教育/工作/编程/研究/创作/财务/健康)管理工作目录 - **Web 管理界面**:iOS 风格的管理 UI,支持账号绑定、会话切换、任务调度、日志查看 - **MCP 集成**:暴露 MCP 工具,让 Claude Code 可以自主管理定时任务 ## 架构 ``` src/ ├── index.ts # 入口 ├── config.ts # 配置(环境变量) ├── logger.ts # 统一日志 ├── account/ # 账号绑定与管理 ├── ilink/ # 微信 iLink API 客户端(轮询、发消息) ├── session/ # Claude Code 会话生命周期 ├── message/ # 消息路由(命令 vs 中继) ├── scheduler/ # 定时任务(cron 调度、多执行器) ├── workdir/ # 工作目录管理 ├── db/ # SQLite 数据库(schema、迁移) ├── mcp/ # MCP Server(供 Claude Code 调用) └── web/ # Express 管理界面 ├── routes/ # REST API └── public/ # 前端页面 ``` ## 快速开始 ### 前置条件 - Node.js 18+ - [Claude Code CLI](https://docs.anthropic.com/claude-code) 已安装并可在 PATH 中访问 - 微信 iLink API 访问权限 ### 安装 ```bash npm install ``` ### 配置 复制并编辑环境变量: ```bash cp .env.example .env ``` 主要配置项: | 变量 | 默认值 | 说明 | |------|--------|------| | `PORT` | `3000` | Web 服务端口 | | `DB_PATH` | `data/bot.db` | SQLite 数据库路径 | | `ILINK_BASE_URL` | `https://ilinkai.weixin.qq.com` | iLink API 地址 | | `CLAUDE_BIN` | `claude` | Claude Code 可执行文件路径 | | `CLAUDE_TIMEOUT_MS` | `900000` | Claude 执行超时(毫秒) | | `MAX_ACCOUNTS` | `10` | 最大账号数 | | `MAX_STREAM_SEGMENT` | `800` | 消息分段长度(字符) | | `LOG_LEVEL` | `info` | 日志级别(debug/info/warn/error) | | `ALLOWED_WORK_DIRS` | `.` | 允许访问的工作目录(逗号分隔) | | `WORK_PARENT_DIR` | `..` | 新建工作目录的父目录 | ### 运行 **开发模式**(热重载): ```bash npm run dev ``` **生产模式**: ```bash npm run build npm start ``` 启动后访问 `http://localhost:3000` 打开管理界面。 ## 使用说明 ### 绑定微信账号 1. 打开管理界面 → 账号管理 2. 点击「绑定账号」,扫描二维码完成授权 3. 绑定成功后账号状态变为「已启用」 ### 发送消息 - **普通消息**:直接发送文本,机器人转发给 Claude Code 并回复结果 - **命令**:以 `/` 开头的消息作为命令处理(如 `/help`、`/session`) ### 定时任务 在管理界面 → 定时任务中创建任务: - **执行器类型**:`claude_code`(调用 Claude)或 `python`(执行 Python 脚本) - **Cron 表达式**:标准 5 字段格式,如 `0 9 * * 1-5`(工作日早 9 点) - **推送结果**:可选择将执行结果推送回指定微信账号 ### MCP 工具 启动时自动注册 MCP Server,Claude Code 可通过以下工具管理任务: - `list_tasks` / `get_task` — 查询任务 - `create_task` / `update_task` / `delete_task` — 增删改任务 - `enable_task` / `disable_task` — 启用/禁用 - `trigger_task` — 手动触发 - `get_task_history` — 查看执行历史 ## 开发 ### 测试 ```bash npm test # 单元测试(Jest + SWC) npm run test:e2e # E2E 测试(Playwright) ``` ### 代码规范 详见 [CLAUDE.md](./CLAUDE.md),核心要求: - 所有后端代码使用 `src/logger.ts` 的 `log` 对象,禁止 `console.*` - 前端遵循 iOS 简约风格设计系统(CSS 变量、毛玻璃导航、圆角卡片) - E2E 测试必须覆盖:页面渲染、空状态、数据加载、弹窗开关、表单预填充、成功/失败路径 ## 技术栈 - **运行时**:Node.js + TypeScript - **Web 框架**:Express.js - **数据库**:SQLite(better-sqlite3) - **前端**:原生 HTML/CSS/JS(iOS 风格) - **测试**:Jest(单元)+ Playwright(E2E) - **Claude 集成**:Claude Code CLI(子进程)+ MCP SDK