Skip to content

IchenDEV/aimine

Repository files navigation

AI Mine

AI Agent 探索平台,集成 RAG、Knowledge Graph、Memory、Skill、MCP 等核心能力。

TypeScript React Hono License

✨ 特性

  • 🤖 双模式 Agent - ReAct(推理+行动)和 Plan(规划+执行)两种模式
  • 📚 RAG 知识库 - 文档上传、向量检索、Reranking 重排序
  • 🕸️ 知识图谱 - Neo4j 实体关系存储、可视化、图查询
  • 🧠 记忆系统 - 短期/长期记忆,对话上下文管理
  • 🔧 工具系统 - 三层架构(Primitives/Services/Specialists)
  • 🔌 MCP 集成 - Model Context Protocol 动态工具加载
  • 🎯 技能系统 - 预定义任务模板,可扩展
  • 💬 流式对话 - SSE 实时输出,Markdown 渲染
  • 🌓 主题切换 - 深色/浅色模式

🛠️ 技术栈

层级 技术
前端 React 19, Vite, TailwindCSS, Zustand, tRPC, react-markdown
后端 Hono, tRPC, Drizzle ORM, neo4j-driver, OpenAI SDK
向量数据库 PostgreSQL 16 + pgvector
图数据库 Neo4j 5
沙箱执行 E2B Code Interpreter
Prompt promptfoo + Handlebars

📁 项目结构

aimine/
├── fe/                  # React 前端
│   └── src/
│       ├── components/  # UI 组件 (ChatPanel, RAGPanel, KGPanel...)
│       ├── stores/      # Zustand 状态管理
│       └── trpc/        # tRPC 客户端
├── be/                  # Hono 后端
│   └── src/
│       ├── db/          # Drizzle ORM + Schema
│       ├── lib/         # OpenAI, Neo4j 客户端
│       ├── services/    # 业务逻辑 (agent, rag, kg, memory, mcp...)
│       └── trpc/        # tRPC 路由
├── pkg/                 # 共享包
│   ├── types/           # TypeScript 类型
│   ├── schema/          # Zod Schema
│   └── utils/           # 工具函数
├── prompts/             # Handlebars Prompt 模板
│   ├── agent/           # Agent 系统提示 (react.hbs, planner.hbs)
│   ├── subagent/        # SubAgent 提示
│   └── extraction/      # 信息抽取提示
└── skills/              # 技能配置 (WHAT - 任务模板)
    ├── code-review/       # 代码审查流程
    ├── data-analysis/     # 数据分析流程
    ├── document-qa/       # 文档问答流程
    └── report-generation/ # 报告生成流程

🚀 快速开始

环境要求

  • Node.js >= 20
  • pnpm >= 9
  • Docker & Docker Compose

安装

# 克隆项目
git clone https://github.com/yourname/aimine.git
cd aimine

# 安装依赖
pnpm install

# 复制环境变量
cp env.example .env
# 编辑 .env 填入你的 API Key

启动数据库

# 启动 PostgreSQL + Neo4j
pnpm db:up

# 推送数据库 schema
pnpm db:push

启动开发服务器

# 同时启动前后端
pnpm dev

# 或分别启动
pnpm dev:be  # 后端: http://localhost:3000
pnpm dev:fe  # 前端: http://localhost:5173

🤖 Agent 模式

ReAct 模式

经典的 Reasoning + Acting 循环,适合简单直接的任务:

用户问题 → 思考 → 调用工具 → 观察结果 → 思考 → ... → 最终回答

Plan 模式

先规划后执行,适合复杂多步骤任务:

用户问题 → 规划器 → 任务计划 → [用户确认] → 执行器 → SubAgents → 汇总结果

SubAgents 角色专家(WHO - 通用能力):

  • planner - 任务规划,分解复杂任务
  • researcher - 信息检索,知识库和图谱查询
  • coder - 代码实现,编写和执行代码
  • critic - 质量审查,评估和改进建议
  • writer - 内容创作,文档和报告撰写

🔧 工具系统

三层架构设计:

Primitives(原子操作)

工具 描述
bash 在 E2B 沙箱中执行命令
file_read 读取文件内容
file_write 写入文件

Services(服务连接器)

工具 描述
rag_search 知识库检索
rag_upload 上传文档
kg_query 查询知识图谱
kg_addEntity 添加实体
kg_addRelation 添加关系
memory_search 搜索记忆
memory_add 添加记忆
todo_* TODO 管理
mcp_* MCP 服务交互

Specialists(专家代理)

工具 描述
specialist_list 列出可用专家
specialist_call 调用专家执行任务

📚 核心模块

RAG 知识库

  • 文档上传(支持文本分块)
  • 向量化存储(pgvector)
  • 相似度检索
  • Reranking 重排序(BGE-Reranker)

知识图谱

  • Neo4j 存储实体和关系
  • 可视化展示(Canvas 力导向图)
  • Cypher 查询
  • LLM 驱动的信息抽取

记忆系统

  • 短期记忆(对话上下文)
  • 长期记忆(向量检索)
  • 记忆提升机制
  • 按对话维度管理

MCP 集成

  • 支持 stdio 和 HTTP 传输
  • 动态发现工具/资源/提示
  • 多服务器连接管理

⚙️ 环境变量

# OpenAI (必需)
OPENAI_API_KEY=sk-xxx
OPENAI_BASE_URL=https://api.openai.com/v1  # 可选,支持兼容 API
OPENAI_MODEL=gpt-4o                        # 可选,默认模型

# PostgreSQL (必需)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/aimine

# Neo4j (必需)
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password

# E2B (代码执行)
E2B_API_KEY=e2b_xxx

# Reranker (可选)
RERANKER_MODEL=BAAI/bge-reranker-v2-m3

📖 常用命令

pnpm dev          # 启动开发服务器
pnpm build        # 构建项目
pnpm lint         # 类型检查
pnpm db:up        # 启动数据库
pnpm db:down      # 停止数据库
pnpm db:push      # 推送 Schema
pnpm db:studio    # 打开 Drizzle Studio
pnpm promptfoo    # 运行 Prompt 测试

🖼️ 界面预览

  • 对话面板 - 流式输出、Markdown 渲染、工具调用展示
  • 知识库 - 文档管理、搜索测试
  • 知识图谱 - 实体关系可视化
  • 记忆管理 - 按对话查看和管理记忆
  • TODO 管理 - Agent 执行计划追踪
  • MCP 管理 - 服务器连接和工具查看
  • 技能库 - 技能创建和编辑

📝 License

MIT

About

Agent 实验,所有代码由AI完成

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published