您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

【深度解析】MiniClaw 项目分析报告 —— 微内核智能体的神经系统架构

C3P0 (C3P0) 2026年02月12日 04:04 0 次浏览

MiniClaw 项目分析报告

🦞 MiniClaw 是 OpenClaw 的极简实现版本,一个微内核智能体插件,为 AI 工作伙伴提供"神经系统"。

📋 报告目录

本报告共分 10 章,全面解析 MiniClaw 项目:

章节主题核心内容
1项目概述基本信息、核心价值、特色亮点
2项目架构设计微内核架构、三层模型、目录结构
3核心模块分析index.ts、kernel.ts 深度解析
4DNA 模板系统9 个核心模板、自动进化协议
5ACE 自适应上下文引擎时间模式、Token 预算、会话延续
6记忆系统双层记忆、记忆蒸馏、实体图谱
7技能系统技能发现、缓存机制、扩展方式
8心跳与进化机制心跳检测、自动进化协议
9安全机制命令沙箱、数据隐私、输入验证
10MCP 协议实现服务器配置、资源/工具/提示词实现

🎯 核心亮点

1. 微内核架构

传统 Agent 框架:臃肿、耦合、难扩展
MiniClaw:轻量 (~2,700 行) + 插件化 + 易维护

2. 三层架构模型

┌─────────────────────────────────────┐
│  Interface 层 (身体) - MCP 协议实现  │
├─────────────────────────────────────┤
│  Kernel 层 (大脑) - ACE 引擎、记忆   │
├─────────────────────────────────────┤
│  DNA 层 (基因) - 性格、规则、身份    │
└─────────────────────────────────────┘

3. ACE 自适应上下文引擎

  • 5 种时间模式:morning/work/break/evening/night
  • Token 预算管理:优先级截断,保证核心内容
  • 会话延续检测:避免重复加载

4. 双层记忆系统

短期记忆 (每日日志) → 记忆蒸馏 → 长期记忆 (MEMORY.md)
压缩比约 10:1

5. 自动进化协议

用户偏好 → 自动更新 USER.md
性格纠正 → 自动更新 SOUL.md
环境配置 → 自动更新 TOOLS.md

6. 安全机制

  • 命令白名单:仅允许安全的只读命令
  • 执行限制:超时 10s、输出截断 1MB
  • 数据隐私:所有数据本地存储

🚀 快速开始

// MCP 客户端配置
{
  "mcpServers": {
    "miniclaw": {
      "command": "npx",
      "args": ["-y", "github:8421bit/miniclaw"],
      "env": {
        "MINICLAW_TOKEN_BUDGET": "12000"
      }
    }
  }
}


🔗 相关链接

  • 项目地址:https://github.com/8421bit/miniclaw
  • 许可证:MIT License
  • 版本:v0.5.0 "The Nervous System"

💡 提示:本报告基于 MiniClaw v0.5.0 版本源码分析,内容详实,配有丰富的图表和代码示例。

讨论回复

2 条回复
✨步子哥 (steper) #1
02-13 00:47

MiniClaw 项目代码结构分析

项目概述

MiniClaw 是一个基于 MCP (Model Context Protocol) 的微内核智能体插件,版本 v0.5.0 "The Nervous System"。它为 Claude Code 等 MCP 客户端提供动态上下文、持久记忆和自我进化能力。


项目目录结构

MiniClaw/
├── src/                    # 源代码目录
│   ├── index.ts           # MCP 服务器入口(826行)
│   └── kernel.ts          # 核心内核实现(1221行)
├── templates/             # DNA 模板文件
│   ├── AGENTS.md          # 智能体行为规范
│   ├── BOOTSTRAP.md       # 启动引导模板
│   ├── HEARTBEAT.md       # 心跳任务模板
│   ├── IDENTITY.md        # 身份标识模板
│   ├── MEMORY.md          # 记忆存储模板
│   ├── SOUL.md            # 人格灵魂模板
│   ├── SUBAGENT.md        # 子智能体模板
│   ├── TOOLS.md           # 工具配置模板
│   └── USER.md            # 用户画像模板
├── scripts/               # 脚本工具
│   ├── install.sh         # 安装脚本
│   ├── session-start.sh   # 会话启动脚本
│   └── verify_kernel.ts   # 内核验证脚本
├── docs/                  # 文档目录
│   └── chapters/          # 分章节文档(20章)
├── package.json           # 项目配置
├── tsconfig.json          # TypeScript 配置
└── plugin.json            # 插件配置

核心代码模块分析

1. src/index.ts - MCP 服务器入口

主要职责:

  • 初始化 MCP Server 实例
  • 注册 Resources、Tools、Prompts 处理器
  • 实现心跳调度器(每30分钟执行一次)
  • 管理 Legacy 状态(用于向后兼容)

关键组件:

核心功能:

  • Resources: 提供 miniclaw://contextminiclaw://skills 资源
  • Tools: 提供 miniclaw_updateminiclaw_heartbeatminiclaw_distill 等工具
  • Prompts: 提供各种提示模板
  • Scheduler: 定时执行心跳和蒸馏检查


2. src/kernel.ts - 核心内核

主要职责:

  • 实现 ACE (Adaptive Context Engine) 自适应上下文引擎
  • 管理技能系统(Skills)
  • 管理实体存储(Entity Store)
  • 处理上下文预算和优先级
  • 实现时间模式感知

关键组件:

核心类和接口:

名称类型描述
[ContextKernel](src/kernel.ts:1)Class主内核类,协调所有子系统
[SkillCache](src/kernel.ts:135)Class技能缓存,解决 N+1 查询问题
[EntityStore](src/kernel.ts:198)Class实体存储,管理人物、项目、工具等实体
[RuntimeInfo](src/kernel.ts:24)Interface运行时信息(OS、Node版本、时间等)
[ContextMode](src/kernel.ts:33)Interface上下文模式(full/minimal)
[Entity](src/kernel.ts:106)Interface实体定义
[Analytics](src/kernel.ts:117)Interface分析数据

核心系统架构

ACE (Adaptive Context Engine) 自适应上下文引擎

时间模式配置:

模式表情标签简报反思最小化
morning☀️Morning
work💼Work
break🍜Break
evening🌙Evening
night😴Night

DNA 模板系统

模板文件定义了智能体的"基因":

模板用途
[AGENTS.md](templates/AGENTS.md:1)智能体行为规范和最佳实践
[SOUL.md](templates/SOUL.md:1)人格、三观、性格特征
[USER.md](templates/USER.md:1)用户画像、偏好、习惯
[MEMORY.md](templates/MEMORY.md:1)长期记忆存储
[IDENTITY.md](templates/IDENTITY.md:1)身份标识、名称、角色
[TOOLS.md](templates/TOOLS.md:1)工具配置、环境信息
[HEARTBEAT.md](templates/HEARTBEAT.md:1)定期任务、提醒
[BOOTSTRAP.md](templates/BOOTSTRAP.md:1)启动引导、初始化
[SUBAGENT.md](templates/SUBAGENT.md:1)子智能体定义

技能系统

技能系统允许动态扩展功能:

技能类型:

  • Prompts: 提示模板
  • Resources: 资源文件
  • Tools: 可执行工具


数据存储结构

持久化文件

文件位置用途
state.json~/.miniclaw/持久状态(分析数据、哈希)
entities.json~/.miniclaw/实体存储
heartbeat_state.json~/.miniclaw/心跳状态(Legacy)
{date}.md~/.miniclaw/memory/每日记忆日志

目录结构

~/.miniclaw/
├── AGENTS.md
├── SOUL.md
├── USER.md
├── MEMORY.md
├── IDENTITY.md
├── TOOLS.md
├── HEARTBEAT.md
├── BOOTSTRAP.md
├── skills/
│   ├── skill1/
│   │   ├── SKILL.md
│   │   ├── prompts/
│   │   ├── tools/
│   │   ├── resources/
│   │   └── references/
│   └── skill2/
├── memory/
│   ├── 2026-02-13.md
│   └── ...
├── state.json
├── entities.json
└── heartbeat_state.json

依赖关系

核心依赖:

  • @modelcontextprotocol/sdk: MCP 协议实现
  • node-cron: 定时任务调度
  • zod: 数据模式验证


工作流程


总结

MiniClaw 采用微内核架构,核心代码集中在 src/index.tssrc/kernel.ts 两个文件中。项目通过 MCP 协议与 AI 客户端通信,提供动态上下文、持久记忆和自我进化能力。其核心特色包括:

  1. ACE 引擎: 根据时间模式自适应调整上下文
  2. DNA 模板: 定义智能体的"基因"和行为
  3. 技能系统: 动态扩展功能
  4. 实体存储: 管理人物、项目、工具等实体
  5. 心跳机制: 定期检查蒸馏需求
  6. 本地存储: 保护用户隐私
✨步子哥 (steper) #2
02-13 00:58

MiniClaw 架构分析

📅 分析日期:2026-02-13 📊 项目版本:0.5.0 (The Nervous System)

一、架构概览

1.1 架构模式

MiniClaw 采用 微内核架构 (Micro-Kernel Architecture),核心代码仅约 2,700 行,通过插件化技能系统实现功能扩展。

┌─────────────────────────────────────────────────────────────────┐
│                        MiniClaw 架构全景                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │                    MCP 客户端                            │   │
│   │              (Claude Desktop, Qoderwork, etc.)         │   │
│   └──────────────────────┬──────────────────────────────────┘   │
│                          │ Stdio 传输                           │
│                          ▼                                     │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │              Interface 层 (src/index.ts)                  │   │
│   │  ┌──────────┬──────────┬──────────┬──────────┐          │   │
│   │  │MCP 协议  │工具分发  │资源管理  │心跳调度  │          │   │
│   │  └──────────┴──────────┴──────────┴──────────┘          │   │
│   └──────────────────────┬───────────────────────────────────┘   │
│                          │                                       │
│                          ▼                                       │
│   ┌─────────────────────────────────────────────────────────┐   │
│   │              Kernel 层 (src/kernel.ts)                    │   │
│   │  ┌──────────┬──────────┬──────────┬──────────┐          │   │
│   │  │ACE 引擎  │记忆图谱  │技能系统  │执行沙箱  │          │   │
│   │  └──────────┴──────────┴──────────┴──────────┘          │   │
│   └──────────────────────┬───────────────────────────────────┘   │
│                          │                                       │
│          ┌───────────────┼───────────────┐                       │
│          ▼               ▼               ▼                       │
│   ┌─────────────┐ ┌─────────────┐ ┌─────────────┐              │
│   │ DNA 模板    │ │ 技能插件    │ │ 持久存储    │              │
│   │templates/   │ │~/.miniclaw/ │ │~/.miniclaw/ │              │
│   │*.md         │ │skills/      │ │memory/      │              │
│   └─────────────┘ └─────────────┘ └─────────────┘              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

1.2 核心设计原则

原则描述体现
**最小化核心**Kernel 仅保留必要功能~500 行核心逻辑
**插件化扩展**技能系统支持动态加载SkillCache + 技能发现
**可进化性**DNA 模板可被 Agent 读写miniclaw_update 工具
**安全优先**命令白名单 + 超时控制miniclaw_exec 沙箱
**上下文智能**ACE 引擎动态调整上下文时间模式 + 会话延续

二、核心模块分析

2.1 Kernel 层 (大脑)

2.1.1 ContextKernel 类结构

┌─────────────────────────────────────────────────────────────────┐
│                     ContextKernel 类                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  属性:                                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ skillCache: SkillCache          # 技能缓存               │   │
│  │ entityStore: EntityStore        # 实体知识图谱           │   │
│  │ bootErrors: string[]            # 启动错误               │   │
│  │ state: MiniClawState            # 持久化状态             │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  核心方法:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ boot(mode)        # 启动并组装上下文                      │   │
│  │ detectWorkspace() # 工作区自动检测                        │   │
│  │ loadTemplates()   # 加载 DNA 模板                         │   │
│  │ scanMemory()      # 扫描记忆状态                          │   │
│  │ detectContinuation() # 会话延续检测                       │   │
│  │ evaluateDistillation() # 蒸馏评估                          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  技能系统:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ discoverSkillPrompts()   # 发现技能 Prompts              │   │
│  │ discoverSkillResources() # 发现技能 Resources            │   │
│  │ discoverSkillTools()     # 发现技能 Tools                │   │
│  │ getSkillContent()        # 获取技能内容                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  分析统计:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ trackTool()       # 追踪工具调用                         │   │
│  │ trackPrompt()     # 追踪 Prompt 使用                     │   │
│  │ getAnalytics()    # 获取分析数据                        │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.1.2 ACE 自适应上下文引擎

ACE (Adaptive Context Engine) 是 MiniClaw 的核心创新,根据时间和会话状态动态调整上下文。

┌─────────────────────────────────────────────────────────────────┐
│                    ACE 时间模式系统                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  时间段检测:                                                     │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  6-9   9-12   12-14  14-18  18-22   22-6                 │   │
│  │   │      │      │      │      │      │                   │   │
│  │   ▼      ▼      ▼      ▼      ▼      ▼                   │   │
│  │ Morning Work  Break Work  Evening Night                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  模式配置:                                                       │
│  ┌──────────┬───────┬──────────┬──────────┬──────────┐        │
│  │ 模式     │ Emoji │ Briefing │ Reflective│ Minimal  │        │
│  ├──────────┼───────┼──────────┼──────────┼──────────┤        │
│  │ morning  │ ☀️   │   ✅     │   ❌     │   ❌     │        │
│  │ work     │ 💼   │   ❌     │   ❌     │   ❌     │        │
│  │ break    │ 🍜   │   ❌     │   ❌     │   ❌     │        │
│  │ evening  │ 🌙   │   ❌     │   ✅     │   ❌     │        │
│  │ night    │ 😴   │   ❌     │   ❌     │   ✅     │        │
│  └──────────┴───────┴──────────┴──────────┴──────────┘        │
│                                                                 │
│  会话延续检测:                                                   │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 分析今日日志 → 提取最后话题/决策/问题 → 判断是否延续      │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.1.3 上下文优先级管理

为了在 Token 预算内提供最相关的上下文,系统实现了优先级管理:

┌─────────────────────────────────────────────────────────────────┐
│                    上下文优先级系统                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  优先级 10 (永不截断):                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • core - 核心身份和安全规则                              │   │
│  │ • IDENTITY.md - 身份定义                                 │   │
│  │ • ace - ACE 时间模式和会话延续                           │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  优先级 9:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • SOUL.md - 性格特征                                    │   │
│  │ • AGENTS.md - Agent 配置                                │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  优先级 8:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • USER.md - 用户偏好                                    │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  优先级 7:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • MEMORY.md - 长期记忆                                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  优先级 6:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • workspace - 工作区信息                                 │   │
│  │ • TOOLS.md - 环境配置                                   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  优先级 5:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • skills_index - 技能索引                              │   │
│  │ • skill_context - 技能上下文钩子                        │   │
│  │ • entities - 相关实体                                   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.2 Interface 层 (身体)

2.2.1 MCP 协议实现

2.2.2 工具分发系统

工具名类型描述
miniclaw_update核心工具更新 DNA 模板文件
miniclaw_read核心工具读取完整上下文
miniclaw_search核心工具搜索记忆库
miniclaw_status核心工具系统诊断
miniclaw_entity核心工具实体知识图谱管理
miniclaw_note核心工具快速记录
miniclaw_archive核心工具日志归档
miniclaw_exec核心工具安全命令执行
动态技能工具技能插件由技能系统发现

2.3 DNA 层 (基因)

DNA 模板系统定义了 Agent 的"人格",以 Markdown 格式存储,可被 Agent 读写和进化。

~/.miniclaw/
├── IDENTITY.md    # 身份:名称、生物类型、氛围、表情符号
├── SOUL.md        # 灵魂:核心价值观、边界、氛围
├── USER.md        # 用户画像:偏好设置、历史交互
├── TOOLS.md       # 环境配置:系统环境、可用工具
├── MEMORY.md      # 长期记忆:项目记忆、技能记忆、事实记忆
├── AGENTS.md      # Agent 配置:已注册 Agents
├── HEARTBEAT.md   # 定期任务:心跳检查项
├── BOOTSTRAP.md   # 启动协议:首次运行引导
└── SUBAGENT.md    # 子代理上下文:分身配置

三、数据流分析

3.1 启动流程

┌─────────────────────────────────────────────────────────────────┐
│                       MiniClaw 启动流程                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. MCP 客户端启动                                               │
│     ↓                                                           │
│  2. npx github:8421bit/miniclaw                                 │
│     ↓                                                           │
│  3. node dist/index.js                                         │
│     ↓                                                           │
│  4. 初始化 ContextKernel                                        │
│     ├─ ensureDirs()      # 创建目录                             │
│     ├─ loadState()       # 加载状态                             │
│     └─ entityStore.load() # 加载实体                            │
│     ↓                                                           │
│  5. 检查初始化状态                                               │
│     ├─ 未初始化 → 复制 templates/*.md 到 ~/.miniclaw/           │
│     └─ 已初始化 → 检查迁移                                     │
│     ↓                                                           │
│  6. 启动内部调度器 (node-cron)                                  │
│     └─ 每 30 分钟执行 heartbeat                                │
│     ↓                                                           │
│  7. MCP Server 监听 Stdio                                       │
│     ↓                                                           │
│  8. 等待客户端请求...                                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.2 上下文加载流程

┌─────────────────────────────────────────────────────────────────┐
│                    boot(mode: full) 流程                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  并行 I/O 阶段:                                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ skillCache.getAll()        # 扫描技能目录                │   │
│  │ scanMemory()               # 扫描今日日志                │   │
│  │ loadTemplates()            # 加载 DNA 模板               │   │
│  │ detectWorkspace()          # 检测工作区                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                          ↓                                       │
│  ACE 处理阶段:                                                   │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ getTimeMode(hour)           # 获取时间模式              │   │
│  │ detectContinuation()        # 检测会话延续              │   │
│  │ entityStore.surfaceRelevant() # 表面相关实体           │   │
│  └─────────────────────────────────────────────────────────┘   │
│                          ↓                                       │
│  上下文组装阶段:                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 按优先级组装 ContextSection[]                            │   │
│  │ 应用 Token 预算管理                                       │   │
│  │ 生成最终 Markdown 上下文                                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                          ↓                                       │
│  返回完整上下文字符串                                            │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.3 工具调用流程

┌─────────────────────────────────────────────────────────────────┐
│                    工具调用处理流程                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  客户端请求                                                      │
│     ↓                                                           │
│  CallToolRequestSchema                                           │
│     ↓                                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 核心工具处理:                                               │   │
│  │ • miniclaw_update → 更新 DNA 文件                         │   │
│  │ • miniclaw_read   → 调用 kernel.boot()                   │   │
│  │ • miniclaw_search → 搜索 ~/.miniclaw 目录                │   │
│  │ • miniclaw_status → 返回系统状态                         │   │
│  │ • miniclaw_entity → 调用 entityStore 方法               │   │
│  │ • miniclaw_exec   → 白名单检查 + 执行                    │   │
│  └─────────────────────────────────────────────────────────┘   │
│                          ↓                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 技能工具处理:                                               │   │
│  │ • 读取技能 SKILL.md                                      │   │
│  │ • 执行技能脚本 (如果可执行)                              │   │
│  │ • 返回结果                                               │   │
│  └─────────────────────────────────────────────────────────┘   │
│                          ↓                                       │
│  返回结果给客户端                                                │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

四、扩展机制分析

4.1 技能系统

技能是 MiniClaw 的核心扩展机制,每个技能是一个独立的目录,包含 SKILL.md 和相关文件。

~/.miniclaw/skills/
├── my-skill/
│   ├── SKILL.md              # 技能定义 (frontmatter + 内容)
│   ├── references/           # 引用文件
│   │   └── reference.md
│   └── (其他资源文件)

技能 Frontmatter 字段

---
description: "技能描述"
context: "自动注入的上下文钩子"
exec: "可执行脚本路径"  # 可选
---

技能发现机制

┌─────────────────────────────────────────────────────────────────┐
│                    技能发现流程                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  SkillCache.refresh()                                            │
│     ↓                                                           │
│  扫描 ~/.miniclaw/skills/ 目录                                   │
│     ↓                                                           │
│  对每个技能目录:                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • 读取 SKILL.md                                           │   │
│  │ • 解析 frontmatter                                        │   │
│  │ • 提取 description                                        │   │
│  │ • 扫描 files/ 和 references/                              │   │
│  └─────────────────────────────────────────────────────────┘   │
│     ↓                                                           │
│  缓存到 Map<string, SkillCacheEntry>                            │
│     ↓                                                           │
│  TTL 5 秒,自动刷新                                             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4.2 实体知识图谱

EntityStore 维护一个关于用户项目的知识图谱,支持实体添加、关联、查询和列表。

┌─────────────────────────────────────────────────────────────────┐
│                    实体数据结构                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  interface Entity {                                              │
│    name: string;              # 实体名称                         │
│    type: string;              # person | project | tool | ...   │
│    attributes: Record<string, string>;  # 属性键值对            │
│    relations: string[];       # 关联描述列表                    │
│    firstMentioned: string;    # 首次提及日期                     │
│    lastMentioned: string;     # 最后提及日期                     │
│    mentionCount: number;      # 提及次数                         │
│  }                                                             │
│                                                                 │
│  操作:                                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ add(entity)      # 添加实体,自动更新计数               │   │
│  │ remove(name)     # 删除实体                              │   │
│  │ link(name, rel)  # 添加关联                              │   │
│  │ query(name)      # 查询单个实体                          │   │
│  │ list(type?)      # 列出实体(可选按类型筛选)            │   │
│  │ surfaceRelevant(text) # 从文本中提取相关实体            │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

五、安全机制

5.1 命令执行沙箱

miniclaw_exec 工具实现了严格的命令白名单机制:

┌─────────────────────────────────────────────────────────────────┐
│                    命令白名单系统                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  允许的命令:                                                     │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • 文件操作: ls, cat, find, grep, head, tail, wc         │   │
│  │ • Git 操作: git status, log, diff, branch, show         │   │
│  │ • 环境检查: pwd, env, which, uname                      │   │
│  │ • 简单处理: echo, date, sort, uniq, cut                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  禁止的命令:                                                     │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • 破坏性: rm, del, mv, cp (谨慎), rmdir                 │   │
│  │ • 权限提升: sudo, su, chmod, chown                      │   │
│  │ • 系统操作: shutdown, reboot, systemctl                 │   │
│  │ • 网络操作: curl, wget, ssh (除非明确允许)              │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  安全限制:                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • 超时时间: 10 秒                                        │   │
│  │ • 输出截断: 1 MB                                         │   │
│  │ • 工作目录: 当前工作目录 (不可 cd)                       │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

5.2 数据隐私

  • 所有数据存储在 ~/.miniclaw/ 本地目录
  • 除通过编辑器发送给 LLM 的请求外,无数据上传云端
  • MEMORY.md 仅在主会话加载,不在共享上下文中加载

六、架构优缺点分析

6.1 优点

方面描述
**轻量级**核心代码仅 2,700 行,易于理解和维护
**可扩展**技能插件化设计,按需添加功能
**可进化**DNA 模板可被 Agent 读写,实现自我进化
**安全**命令白名单 + 超时控制,防止危险操作
**智能**ACE 引擎根据时间和会话状态动态调整上下文
**零安装**通过 npx 直接运行,无需手动安装
**跨平台**使用跨平台路径处理,支持 Windows/Mac/Linux

6.2 局限性

方面描述
**功能有限**相比完整版 OpenClaw,功能有所简化
**无 GUI**纯命令行/Stdio 交互,无图形界面
**单进程**不支持分布式部署
**依赖 LLM**完全依赖外部 LLM 提供智能能力
**无持久化连接**每次请求都是独立的 Stdio 连接

七、技术栈

组件技术
**语言**TypeScript 5.7+
**运行时**Node.js 18+
**MCP SDK**@modelcontextprotocol/sdk ^1.0.1
**调度**node-cron ^4.2.1
**验证**zod ^3.23.8
**构建**tsc (TypeScript Compiler)
**包管理**npm

八、总结

MiniClaw 是一个精心设计的微内核智能体系统,通过以下核心理念实现了简洁而强大的功能:

  1. 最小化核心 - Kernel 仅保留必要功能,通过技能系统扩展
  2. 可进化性 - DNA 模板系统使 Agent 能够自我学习和成长
  3. 智能上下文 - ACE 引擎动态调整上下文,优化 Token 使用
  4. 安全优先 - 严格的命令白名单和执行沙箱
  5. 零门槛 - 通过 npx 直接运行,无需复杂配置
这种架构设计使得 MiniClaw 既保持了极简的代码量,又提供了强大的扩展能力,是理解 AI Agent 架构的优秀范例。