v0.2.2
发布日期: 2026-03-03
知识库系统与架构重构版本。
新增功能
知识库系统
实现完整的知识库管理能力,支持用户上传文档进行 RAG 检索。
- KnowledgeBaseManager - 知识库管理器,管理
~/.micro-agent/knowledge/目录下的文档 - 文档扫描器 - 检测文件变更、管理文档生命周期
- 索引构建器 - 文档分块和向量索引构建,支持后台闲时构建
- 内容提取器 - 支持 Markdown、Text、PDF、Word、Excel、CSV 格式解析
- 文件监控器 - 实时监控文件变更,自动更新索引
引用溯源
实现 RAG 级别的溯源能力,回答时自动标注文档来源。
- CitationGenerator - 从检索结果生成带引用的响应
- 支持三种引用格式:
numbered、bracket、footnote - 自动过滤低置信度引用
- 提供文档标题、页码、章节等来源信息
日志系统
全新的结构化日志系统,支持调用链追踪。
- JSON Lines 格式 - 结构化日志输出
- 调用链追踪 - 工具调用、LLM 调用的详细记录
- 小时批次分割 - 日志文件按小时分割(格式:
YYYY-MM-DD-HH-<batch>.log) - 敏感字段脱敏 - 自动脱敏 API Key 等敏感信息
记忆分类
自动识别记忆内容类型,提供更精准的记忆检索。
- 8 种记忆类型 -
preference、fact、decision、entity、document、conversation、summary、other - 双模式分类 - 规则分类 + LLM 辅助分类
- 类型描述 - 提供每种类型的图标和描述
意图识别管道
分阶段意图识别,优化记忆检索和模型选择。
- 预处理阶段 - 决定是否检索记忆、需要哪些类型
- 模型选择阶段 - 根据任务特征选择合适的模型
- 上下文重试 - 自动注入历史上下文进行二次识别
- 依赖倒置 - 意图识别类型从
providers提升到types
架构重构
执行器模块化
原单文件 695 行拆分为 8 个子模块:
| 模块 | 职责 |
|---|---|
executor-core.ts | 执行器核心,Function Calling 模式处理 |
context-manager.ts | 会话历史管理、上下文创建 |
tool-executor.ts | 工具定义获取和执行 |
loop-handler.ts | 循环检测和结果构建 |
memory-manager.ts | 记忆检索和存储 |
message-builder.ts | LLM 消息构建、图片处理 |
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 /、dd、mkfs、shutdown等) - 命令注入检测(命令替换
$()、管道链接等) - 环境变量白名单
- 最大超时限制 5 分钟
Web 工具
- SSRF 防护,禁止访问:
- localhost 和内网 IP(10.x、172.16-31.x、192.168.x)
- 云元数据服务(
metadata.google.internal、metadata.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 命令 - 移除交互式对话命令
依赖更新
| 包 | 旧版本 | 新版本 |
|---|---|---|
ai | 6.0.92 | 6.0.106 |
@logtape/logtape | 2.0.2 | 2.0.4 |
@logtape/pretty | 2.0.2 | 2.0.4 |
pdf-parse | 1.x | 2.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/
