P
pixelphone – README.md

README.md

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

快速启动

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 健康检查

对话示例

# 写入 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 定义:

{
  "launchers": {
    "claude-local": {
      "command": "claude",
      "args": ["--dangerously-skip-permissions"],
      "protocol": "claude-cli"
    }
  }
}

server/config/agents.json(可选)— 静态 Agent 定义:

{
  "crm-analyst": {
    "type": "executor",
    "client": "claude-local",
    "description": "分析人脉关系、提取实体、更新图谱"
  }
}

.env — 端口与 CORS:

PORT=3010
CORS_ORIGINS=http://localhost:5173

编程调用

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