产品概述

这是一款支持 WebSocket 双向流式通信、持久记忆、技能扩展、自我迭代的智能体平台。

该项目为某大型上市公司打造,旨在提供具有"人格"的 AI 智能助理——不仅能回答问题,还能记住用户、学习成长、主动思考。


核心特性

1. 有记忆的智能体

不同于传统的对话机器人,该产品具备四层记忆架构:

记忆层级存储方式功能说明
工作记忆内存当前对话完整记录
短期记忆内存压缩后的对话摘要
长期记忆LanceDB 向量数据库语义检索的持久记忆,永不遗忘
结构化记忆Obsidian 双链笔记可人工查阅编辑的知识笔记

每次对话结束后,智能体自动进行反思,提取有价值的信息存入长期记忆,真正做到"不会忘事"。

2. 知识库系统

支持公共知识库和私有知识库双轨检索:

  • 公共知识库:放入 data/public-kb/ 目录的文件自动索引,支持 PDF、DOCX、XLSX、CSV、JSON、HTML、TXT、MD 等格式
  • 私有知识库:基于 Obsidian Vault 的双链笔记系统,支持 [[]] 语法和反向链接图
  • 智能检索:优先使用 Sirchmunk 语义检索引擎,不可用时自动降级为内置 BM25 关键词检索

3. 可扩展技能系统

遵循 agentskills.io 标准(SKILL.md 格式),支持:

  • 动态安装/卸载技能
  • 自定义技能创建
  • 技能组合与编排

内置技能包括:

  • find-skills:发现和搜索新技能
  • skill-creator:创建新技能文件
  • self-improving-agent:对话后自我反思改进
  • proactive-agent:空闲时主动维护优化

4. 自我迭代能力

智能体具备自我进化能力:

  • 反思机制:每次对话后评估回答质量,存储经验教训
  • 主动思考:空闲时自动整理记忆、清理过时信息、优化工作流程
  • 学习固化:从用户交互中学习新工作流程并固化为技能

5. 多模型支持

灵活的 LLM 路由系统,支持多种大语言模型:

提供者配置方式说明
OpenAI CompatibleOPENAI_COMPATIBLE_BASE_URL兼容 vLLM、Ollama 等自部署模型
AnthropicANTHROPIC_API_KEYClaude 系列
OpenAIOPENAI_API_KEYGPT 系列


技术架构

┌──────────────────────────────────────────────────────┐
│                   客户端 (Client)                   │
│              WebSocket 双向流式通信                      │
└──────────────────────┬───────────────────────────────┘
                       │ ws://
┌──────────────────────▼───────────────────────────────┐
│                  Gateway (HTTP + WS)                  │
│           /monitor 监控  │  WS 消息路由                   │
├──────────────────────────────────────────────────────┤
│                   AgentLoop 核心                      │
│  ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐ │
│  │ LLM路由  │ │ 技能系统 │ │ 知识检索   │ │ 自我迭代  │ │
│  │(多模型)  │ │(SKILL.md)│ │(公+私+记忆)│ │(反思+优化)│ │
│  └─────────┘ └─────────┘ └──────────┘ └──────────┘ │
├──────────────────────────────────────────────────────┤
│  ┌──────────┐  ┌───────────┐  ┌───────────────────┐ │
│  │ Workspace │  │ 四层记忆    │  │ 公共知识库          │ │
│  │ SOUL/     │  │ 工作/短期/  │  │ Sirchmunk检索      │ │
│  │ IDENTITY/ │  │ 长期/结构化 │  │ + 内置文件转换      │ │
│  │ USER/..  │  │ (LanceDB)  │  │ + 内存BM25兜底     │ │
│  └──────────┘  └───────────┘  └───────────────────┘ │
└──────────────────────────────────────────────────────┘


WebSocket 通信协议

连接地址

ws(s)://<host>:<port>/ws

消息格式

客户端发送:

{ "type": "prompt", "id": "uuid", "content": "你好" }
{ "type": "interrupt", "id": "uuid" }
{ "type": "skill_action", "id": "uuid", "action": "install", "source": "find-skills" }

服务端返回:

{ "type": "token", "id": "uuid", "content": "你" }
{ "type": "thinking", "id": "uuid", "content": "用户在问好..." }
{ "type": "tool_call", "id": "uuid", "content": "search_knowledge" }
{ "type": "done", "id": "uuid", "content": "" }

流式输出确保对话体验流畅自然。


Workspace 配置

智能体的"灵魂"通过 Workspace 目录下的 Markdown 文件定义:

文件作用
SOUL.md核心价值观和行为准则
IDENTITY.md身份信息(名称、角色、归属)
USER.md用户画像
AGENTS.md行为配置和约束
TOOLS.md工具和技能清单

智能体自身和开发人员都可以编辑这些文件,修改后下次对话生效。


部署方式

方式一:一键启动(推荐)

./scripts/start-all.sh    # 启动所有服务
./scripts/stop-all.sh     # 停止所有服务

方式二:PM2 生产部署

pm2 start ecosystem.config.cjs --env production
pm2 logs human-agent-server

方式三:Docker 部署

cd docker
docker-compose up -d

方式四:开发模式

npm run dev    # 热重载开发
npm run prod   # 生产运行


应用场景

  1. 企业数字员工:为企业提供有记忆、会成长的智能助手
  2. 知识问答系统:结合知识库提供专业领域问答服务
  3. 智能客服:记住用户偏好,提供个性化服务
  4. 个人助理:长期记忆用户信息,越用越懂你


技术栈

  • 运行环境:Node.js 22+、Python3.10+
  • 语言:TypeScript、Python
  • 向量数据库:LanceDB
  • 知识检索:Sirchmunk / BM25
  • 笔记系统:Obsidian Vault
  • 通信协议:WebSocket
  • LLM SDK:Vercel AI SDK