Skip to content

v0.2.2

发布日期: 2026-03-03

知识库系统与架构重构版本。

新增功能

知识库系统

实现完整的知识库管理能力,支持用户上传文档进行 RAG 检索。

  • KnowledgeBaseManager - 知识库管理器,管理 ~/.micro-agent/knowledge/ 目录下的文档
  • 文档扫描器 - 检测文件变更、管理文档生命周期
  • 索引构建器 - 文档分块和向量索引构建,支持后台闲时构建
  • 内容提取器 - 支持 Markdown、Text、PDF、Word、Excel、CSV 格式解析
  • 文件监控器 - 实时监控文件变更,自动更新索引

引用溯源

实现 RAG 级别的溯源能力,回答时自动标注文档来源。

  • CitationGenerator - 从检索结果生成带引用的响应
  • 支持三种引用格式:numberedbracketfootnote
  • 自动过滤低置信度引用
  • 提供文档标题、页码、章节等来源信息

日志系统

全新的结构化日志系统,支持调用链追踪。

  • JSON Lines 格式 - 结构化日志输出
  • 调用链追踪 - 工具调用、LLM 调用的详细记录
  • 小时批次分割 - 日志文件按小时分割(格式:YYYY-MM-DD-HH-<batch>.log
  • 敏感字段脱敏 - 自动脱敏 API Key 等敏感信息

记忆分类

自动识别记忆内容类型,提供更精准的记忆检索。

  • 8 种记忆类型 - preferencefactdecisionentitydocumentconversationsummaryother
  • 双模式分类 - 规则分类 + LLM 辅助分类
  • 类型描述 - 提供每种类型的图标和描述

意图识别管道

分阶段意图识别,优化记忆检索和模型选择。

  • 预处理阶段 - 决定是否检索记忆、需要哪些类型
  • 模型选择阶段 - 根据任务特征选择合适的模型
  • 上下文重试 - 自动注入历史上下文进行二次识别
  • 依赖倒置 - 意图识别类型从 providers 提升到 types

架构重构

执行器模块化

原单文件 695 行拆分为 8 个子模块:

模块职责
executor-core.ts执行器核心,Function Calling 模式处理
context-manager.ts会话历史管理、上下文创建
tool-executor.ts工具定义获取和执行
loop-handler.ts循环检测和结果构建
memory-manager.ts记忆检索和存储
message-builder.tsLLM 消息构建、图片处理
types.ts类型定义
utils.ts辅助工具

记忆系统模块化

拆分为 6 个子模块:

模块职责
core.ts核心存储功能,LanceDB 初始化
classifier.ts记忆分类器
document-manager.ts文档分块管理
migration.ts嵌入迁移
vector-manager.ts向量管理
search/搜索子模块(全文、向量、混合)

CLI 应用模块化

app.ts 拆分为 6 个独立模块:

  • memory-init.ts - 记忆系统初始化
  • providers-init.ts - Provider 初始化
  • channels-init.ts - 通道初始化
  • startup-info.ts - 启动信息显示
  • system-prompt.ts - 系统提示词加载

提示词系统分阶段

  • preflight.md - 预处理阶段提示词
  • routing.md - 模型选择阶段提示词

存储迁移

SessionStore: JSONL → SQLite

会话存储从文件格式迁移到 SQLite 数据库。

数据库结构

sql
-- 会话元数据表
CREATE TABLE sessions (
  key TEXT PRIMARY KEY,
  channel TEXT NOT NULL,
  chat_id TEXT NOT NULL,
  created_at INTEGER NOT NULL,
  updated_at INTEGER NOT NULL
);

-- 消息表
CREATE TABLE messages (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  session_key TEXT NOT NULL,
  seq_num INTEGER NOT NULL,
  message_json TEXT NOT NULL,
  timestamp INTEGER NOT NULL
);

新增方法

  • trimOldMessages() - 裁剪旧消息
  • getRecentSessions() - 获取最近活跃会话
  • cleanup() - 清理过期会话

数据目录变更~/.micro-agent/sessions/~/.micro-agent/data/

安全增强

文件系统工具

  • 路径遍历攻击检测
  • 禁止访问 node_modules 目录
  • 支持 ~ 路径语法(如 ~/.micro-agent/USER.md
  • 可访问目录:工作区 + ~/.micro-agent/

Shell 工具

  • 危险命令黑名单(rm -rf /ddmkfsshutdown 等)
  • 命令注入检测(命令替换 $()、管道链接等)
  • 环境变量白名单
  • 最大超时限制 5 分钟

Web 工具

  • SSRF 防护,禁止访问:
    • localhost 和内网 IP(10.x、172.16-31.x、192.168.x)
    • 云元数据服务(metadata.google.internalmetadata.azure
  • 协议限制:仅允许 HTTP/HTTPS
  • 请求超时限制 30 秒

类型系统优化

事件类型常量化

typescript
export const EVENT_TYPES = [
  'pre:inbound', 'post:inbound', 'pre:outbound', ...
] as const;
export type EventType = typeof EVENT_TYPES[number];

// 新增类型守卫
export function isValidEventType(type: string): type is EventType;

扩展类型常量化

typescript
export const EXTENSION_TYPES = ['tool', 'channel', 'skill', ...] as const;
export function isValidExtensionType(type: string): type is ExtensionType;
export function getExtensionTypeDir(type: ExtensionType): string;

ChannelType 改为 branded string

支持动态扩展通道类型:

typescript
// 旧版本:硬编码联合类型
export type ChannelType = 'feishu' | 'email' | 'system' | 'cli';

// 新版本:branded string
export type ChannelType = string & { readonly __brand: unique symbol };
export function createChannelType(name: string): ChannelType;

配置新增

知识库配置

yaml
knowledgeBase:
  enabled: true                    # 默认启用
  basePath: ~/.micro-agent/knowledge
  chunkSize: 1000                  # 分块大小
  chunkOverlap: 200                # 分块重叠
  maxSearchResults: 5              # 最大搜索结果
  minSimilarityScore: 0.5          # 最小相似度阈值
  buildInterval: 5000              # 索引构建间隔
  embedModel: null                 # 可选嵌入模型

多嵌入模型配置

yaml
memory:
  multiEmbed:
    enabled: true
    maxModels: 3
    autoMigrate: true
    batchSize: 50
    migrateInterval: 0             # 自适应

CLI 变更

新增选项

  • -q, --quiet - 静默模式(仅显示警告和错误)

移除功能

  • CLI Channel - 移除 extensions/channel/cli/,CLI 现在仅作为服务启动器
  • chat 命令 - 移除交互式对话命令

依赖更新

旧版本新版本
ai6.0.926.0.106
@logtape/logtape2.0.22.0.4
@logtape/pretty2.0.22.0.4
pdf-parse1.x2.4.5
mammoth-1.11.0 (新增)
xlsx-0.18.5 (新增)

源码位置

  • 知识库: packages/runtime/src/knowledge/
  • 引用溯源: packages/runtime/src/citation/
  • 日志系统: packages/runtime/src/logging/
  • 记忆分类: packages/runtime/src/memory/classifier.ts
  • 执行器重构: packages/runtime/src/executor/
  • 意图识别管道: packages/providers/src/intent-pipeline.ts
  • 会话存储: packages/storage/src/session/store.ts
  • 安全增强: extensions/tool/

基于 MIT 许可证开源