Skip to content

libaze/LLBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLBot

基于 LangChain + QQ SDK 构建的远程 AI 助手

简易版 OpenClaw 实现,具备 Wiki 知识库、三层记忆系统和技能扩展能力

Python 3.11+ License: MIT


✨ 核心特性

特性 说明
🧠 三层记忆系统 短期会话 → 中期摘要 → 长期知识,自动整合与深度加工
📚 Wiki 知识库 LLM 驱动的个人 Wiki,支持文档摄入、智能查询、知识图谱可视化
🔧 技能扩展 通过 SKILL.md 定义能力,支持自定义脚本和提示词
🤖 多 Agent 协作 Main Agent + Subagent 架构,支持异步并行任务
💬 QQ 平台接入 对接 QQ 官方 API,支持指数退避重连

🖼️ 效果展示

多步任务处理

多步任务处理

定时任务处理

定时任务处理

知识库管理

知识库管理

知识图谱可视化

知识图谱可视化

🚀 快速开始

环境要求

  • Python 3.11+
  • uv 包管理器

安装

git clone https://github.com/your-repo/LLBot.git
cd LLBot
uv sync

配置

cp .env.example .env

编辑 .env 文件:

BAILIAN_API_KEY=your-bailian-api-key
QQ_APP_ID=your-qq-app-id
QQ_SECRET=your-qq-secret

启动

uv run python -m src.main

🧠 记忆系统

三层记忆架构

层级 存储位置 容量限制 生命周期
短期记忆 workspace/sessions/ 100 条消息 / 65536 tokens 会话期间
中期记忆 workspace/memory/history.jsonl 无限制 持久化
长期记忆 workspace/*.md 无限制 持久化

记忆流转

对话消息 ──► Session (短期)
                │
                │ 上下文 > 60%
                ▼
          Consolidator ──► history.jsonl (中期)
                                │
                                │ 每 2 小时
                                ▼
                          Dream ──► 知识文件 (长期)

知识文件

文件 用途
SOUL.md 机器人人格、沟通风格
USER.md 用户档案、偏好特征
MEMORY.md 核心事实、重要决策

📚 知识库管理

LLM 驱动的个人 Wiki 系统,知识随每次添加而积累增长。

核心理念

不同于传统的 RAG 检索,LLBot 构建的是一个持久化、可积累的知识库

  • 传统 RAG: 每次查询都从原始文档重新检索,无积累
  • LLBot Wiki: LLM 持续维护结构化的 Wiki,交叉引用、矛盾标记、知识合成

三层架构

┌─────────────────────────────────────────────────────────────┐
│  Raw Sources (knowledge/raw/)                               │
│  - 不可变的原始文档                                          │
│  - 永不修改                                                  │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│  Wiki (knowledge/wiki/)                                     │
│  - LLM 生成的 Markdown 文件                                  │
│  - 摘要、实体、概念、综合分析                                 │
│  - Agent 完全管理此层                                        │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│  Graph (knowledge/graph/)                                   │
│  - 自动生成的知识图谱                                        │
│  - 可视化实体关系                                            │
└─────────────────────────────────────────────────────────────┘

主要功能

操作 触发词 说明
文档摄入 ingest <file> 将文档转化为 Wiki 页面,提取实体和概念
智能查询 query: <问题> 基于 Wiki 回答问题,带 [[WikiLink]] 引用
健康检查 lint 检查孤立页面、断链、矛盾信息
图谱可视化 build graph 生成交互式知识图谱

目录结构

knowledge/
├── raw/           # 原始文档(不可修改)
├── wiki/          # Wiki 内容
│   ├── index.md    # 页面目录
│   ├── log.md      # 操作日志
│   ├── overview.md # 知识综述
│   ├── sources/    # 文档摘要
│   ├── entities/   # 实体页面(人物、组织、项目)
│   ├── concepts/   # 概念页面(想法、框架、方法)
│   └── syntheses/  # 保存的查询答案
└── graph/         # 知识图谱(自动生成)

使用示例

用户: ingest knowledge/raw/attention-is-all-you-need.md

Agent:
1. 读取原始文档
2. 创建 sources/attention-is-all-you-need.md 摘要页
3. 创建 entities/Transformer.md 实体页
4. 创建 concepts/Self-Attention.md 概念页
5. 更新 index.md 和 overview.md
6. 建立 [[WikiLinks]] 交叉引用

用户: query: BERT 和 GPT 有什么区别?

Agent:
基于 [[BERT]] 和 [[GPT]] 页面回答...
(带 WikiLink 引用)

🤖 多 Agent 架构

┌─────────────────────────────────────────────────────────────┐
│                    Agent 层                                  │
│  ┌─────────────────────────────────────────────────────┐    │
│  │ AgentLoop: SessionManager + ContextBuilder + LLM    │    │
│  └─────────────────────────────────────────────────────┘    │
│         │                    │                    │          │
│    Main Agent           Subagent 1           Subagent N     │
│    (完整工具集)          (精简工具集)          (精简工具集)   │
└─────────────────────────────────────────────────────────────┘
Agent 类型 工具集 职责
Main Agent 完整 12 个工具 任务规划、决策、协调
Subagent 精简工具集 专注执行子任务

🔧 内置工具

工具 功能 安全特性
terminal 执行终端命令 黑名单过滤、超时 60s
python_repl 执行 Python 代码 超时 30s
fetch_url 获取网页内容 HTML→Markdown、超时 30s
read_file 读取文件内容 路径安全检查
spawn 创建子代理 timeout 300s
message 发送消息 多渠道支持
cron 定时任务管理 -
glob 文件模式匹配 -
grep 文件内容搜索 正则支持
list_dir 列出目录 -
write_file 写入文件 路径安全检查
edit_file 编辑文件 路径安全检查

📁 项目结构

LLBot/
├── config/
│   ├── config.yaml         # 主配置文件
│   └── prompts/            # 提示词模板
│
├── knowledge/              # 知识库
│   ├── raw/                # 原始文档
│   ├── wiki/               # Wiki 内容
│   └── graph/              # 知识图谱
│
├── skills/                 # 技能定义
│   ├── memory/             # 记忆技能
│   ├── cron/               # 定时任务技能
│   ├── llm-wiki/           # 知识库技能
│   └── skill-creator/      # 技能创建工具
│
├── src/
│   ├── main.py             # 主入口
│   ├── agent/              # Agent 核心
│   ├── gateway/            # QQ 网关层
│   ├── llm/                # LLM 客户端
│   ├── memory/             # 记忆系统
│   └── processing/         # 记忆加工
│
└── workspace/              # 工作空间
    ├── SOUL.md             # 机器人人格
    ├── USER.md             # 用户档案
    ├── MEMORY.md           # 长期记忆
    └── sessions/           # 会话存储

⚙️ 配置说明

agent:
  main:
    max_iterations: 50
  subagent:
    timeout: 300

tools:
  command_blacklist:
    - "rm -rf /"
    - "mkfs"
    - "dd"
    - "shutdown"
  timeout:
    terminal: 60
    python_repl: 30

memory:
  session:
    max_messages: 100
    context_window: 65536

dream:
  schedule: "0 */2 * * *"
  enabled: true

📦 技能开发

创建新技能

skills/my_skill/
├── SKILL.md    # 技能定义(必需)
└── scripts/    # 脚本文件(可选)

SKILL.md 格式

---
name: my_skill
description: 技能描述
always: false
---

# 技能名称

使用说明...

❓ 常见问题

Q: 环境变量读取不到?

使用 .env 文件方式,项目会自动加载:

cp .env.example .env
Q: QQ Bot 连接断开如何重连?

已内置指数退避重连:1s → 2s → 4s → ... 最大 60s

Q: 如何查看历史记忆?
grep(pattern="关键词", path="memory/history.jsonl")
Q: 知识库和记忆系统有什么区别?
  • 记忆系统: 存储对话历史、用户偏好、重要事件,由 Dream 自动整理
  • 知识库: 存储文档摘要、实体概念、知识关联,需要主动摄入文档

🛠️ 技术栈

类别 技术
Agent 框架 LangChain
QQ SDK qq-botpy
LLM 服务 百炼平台
包管理 uv

📄 许可证

MIT License


如果这个项目对你有帮助,请给一个 ⭐️ Star

About

LLBot是一款基于 LangChain + QQ SDK 构建的远程 AI 助手(简易版 OpenClaw 实现),具备 Wiki 知识库、三层记忆系统和技能扩展能力

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors