# lemonPCRM **lemonAI 出品**。一个 Local-First 的 AI 驱动个人人脉管理系统(Personal CRM),以人为中心、以对话为链接,将微信、LinkedIn、X 等平台的社交关系统一管理,并通过知识图谱将每个人节点与其社媒动态、会议纪要、文件、照片全面关联。 AI 对话层由本地 Claude CLI 进程驱动(ACP 协议),无需云端 API,数据完全本地化。 ## 产品定位 | 维度 | 说明 | |------|------| | **数据主权** | 全部数据存储在本地,不依赖任何云服务 | | **关系图谱** | Palantir 式本体论设计:Person / Organization / Project / Event / Asset 节点互联 | | **AI 驱动** | 通过自然语言对话驱动图谱更新、实体提取、路径分析 | | **多源整合** | 微信聊天记录、X/LinkedIn 动态、会议纪要(Whisper 转写)、本地照片 | ## 架构 ``` 前端 (HTML/Graph Canvas) ↕ SSE / WebSocket server/ routes/ HTTP API — /api/master (SSE 对话)、/api/config src/core/ 编排引擎 — Orchestrator、MasterSession、AgentManager、SessionPool src/engine/ 进程层 — CommandQueue、ProcessGuard、RunRegistry src/tools/ Master 工具 — call-agent、tool-registry services/ 会话日志、文件解析(docx/pdf)、Agent 记忆 packages/ acp-core/ ACP 协议层 — Protocol / Transport / Launcher 抽象 agent-core/ Agent 运行时 — 目录驱动的 Agent、AgentBus、Registry ``` ## 快速启动 ```bash npm run setup # 首次:cp .env.example .env + npm install npm run dev # 开发模式(热重载,端口 3010) npm start # 生产模式 ``` ## API | 端点 | 方法 | 说明 | |------|------|------| | `/api/master/chat` | POST | Master Agent 多轮对话(SSE 流式) | | `/api/master/upload` | POST | 文件上传(注入对话上下文,支持 .docx / .pdf) | | `/api/master/sessions` | GET | 列出活跃 session | | `/api/master/sessions/:id` | DELETE | 关闭 session | | `/api/config/items/:key` | GET / PUT | 读写配置文件 | | `/api/health` | GET | 健康检查 | ### 对话示例 ```bash # 写入 payload 文件再发送(避免 shell JSON 转义问题) cat > /tmp/payload.json <<'EOF' {"message": "分析张三和李四之间的关系链路", "sessionId": "crm-session"} EOF curl -X POST http://localhost:3010/api/master/chat \ -H "Content-Type: application/json" \ -d @/tmp/payload.json \ --no-buffer ``` SSE 事件类型:`session` | `progress` | `agent_output` | `tool_call` | `result` | `error` ## 配置 **`server/config/backends.json`** — ACP Launcher 定义: ```json { "launchers": { "claude-local": { "command": "claude", "args": ["--dangerously-skip-permissions"], "protocol": "claude-cli" } } } ``` **`server/config/agents.json`**(可选)— 静态 Agent 定义: ```json { "crm-analyst": { "type": "executor", "client": "claude-local", "description": "分析人脉关系、提取实体、更新图谱" } } ``` **`.env`** — 端口与 CORS: ``` PORT=3010 CORS_ORIGINS=http://localhost:5173 ``` ## 编程调用 ```js const { runMasterSession, runOrchestration, runSingleAgent } = require('./server/src/standalone-entry'); // 单次 Master 会话(对话驱动图谱更新) const result = await runMasterSession('把今天和张三的会议纪要导入,关联到他的人脉节点'); // 多 Agent 编排 const result = await runOrchestration('分析本月新增联系人并生成关系报告', { workDir: '/my/project' }); // 单个 Agent const result = await runSingleAgent('crm-analyst', '提取以下文本中的人名和组织'); ``` ## License MIT · lemonAI