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

【MiniClaw 深度解析】第十三章:技术栈分析

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

第十三章:技术栈分析

📚 本章详细分析 MiniClaw 使用的技术栈和依赖。

13.1 核心依赖

13.1.1 @modelcontextprotocol/sdk(MCP SDK)

┌─────────────────────────────────────────────────────────────────────┐
│                    MCP SDK 分析                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  包名:@modelcontextprotocol/sdk                                   │
│  版本:^1.0.0                                                       │
│  来源:Anthropic 官方                                               │
│                                                                     │
│  核心组件:                                                         │
│  ├── Server                 // MCP 服务器类                         │
│  ├── StdioServerTransport   // 标准输入输出传输层                   │
│  ├── ListResourcesRequestSchema                                     │
│  ├── ReadResourceRequestSchema                                      │
│  ├── ListToolsRequestSchema                                         │
│  ├── CallToolRequestSchema                                          │
│  ├── ListPromptsRequestSchema                                       │
│  └── GetPromptRequestSchema                                         │
│                                                                     │
│  使用场景:实现 MCP 协议,与 Claude Code 等客户端通信               │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

13.1.2 node-cron(调度器)

┌─────────────────────────────────────────────────────────────────────┐
│                    node-cron 分析                                    │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  包名:node-cron                                                    │
│  版本:^3.0.0                                                       │
│  功能:基于 cron 表达式的任务调度                                   │
│                                                                     │
│  MiniClaw 使用场景:                                                │
│  • 心跳检测调度(每 30 分钟)                                       │
│  • 日志检查                                                         │
│  • 蒸馏评估                                                         │
│                                                                     │
│  使用示例:                                                         │
│  import cron from 'node-cron';                                      │
│  cron.schedule('*/30 * * * *', async () => {                        │
│    await executeHeartbeat();                                        │
│  });                                                                │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

13.1.3 zod(参数验证)

┌─────────────────────────────────────────────────────────────────────┐
│                    zod 分析                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  包名:zod                                                          │
│  版本:^3.22.0                                                      │
│  功能:TypeScript 优先的 schema 声明和验证库                        │
│                                                                     │
│  MiniClaw 使用场景:                                                │
│  • 工具参数验证                                                     │
│  • 类型安全                                                         │
│  • 错误提示                                                         │
│                                                                     │
│  使用示例:                                                         │
│  import { z } from 'zod';                                           │
│  const UpdateSchema = z.object({                                    │
│    file: z.enum(['AGENTS.md', 'SOUL.md', 'USER.md']),               │
│    content: z.string().max(50000),                                  │
│  });                                                                │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

13.2 Node.js API 使用

13.2.1 文件系统 API

┌─────────────────────────────────────────────────────────────────────┐
│                    文件系统 API 使用                                 │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  使用的 API:                                                       │
│  • fs.readFile()      - 读取文件                                    │
│  • fs.writeFile()     - 写入文件                                    │
│  • fs.appendFile()    - 追加内容                                    │
│  • fs.readdir()       - 读取目录                                    │
│  • fs.stat()          - 获取文件信息                                │
│  • fs.mkdir()         - 创建目录                                    │
│  • fs.access()        - 检查文件是否存在                            │
│                                                                     │
│  使用方式:                                                         │
│  import { promises as fs } from 'fs';                               │
│  const content = await fs.readFile('file.md', 'utf-8');             │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

13.2.2 路径处理 API

┌─────────────────────────────────────────────────────────────────────┐
│                    路径处理 API 使用                                 │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  使用的 API:                                                       │
│  • path.join()        - 拼接路径                                    │
│  • path.resolve()     - 解析绝对路径                                │
│  • path.dirname()     - 获取目录名                                  │
│  • path.basename()    - 获取文件名                                  │
│  • path.extname()     - 获取扩展名                                  │
│  • path.sep           - 路径分隔符                                  │
│                                                                     │
│  使用方式:                                                         │
│  import path from 'path';                                           │
│  import os from 'os';                                               │
│  const homeDir = os.homedir();                                      │
│  const miniclawDir = path.join(homeDir, '.miniclaw');               │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

13.3 技术选型理由

13.3.1 为什么选择这些技术?

┌─────────────────────────────────────────────────────────────────────┐
│                    技术选型理由                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  TypeScript                                                         │
│  ✅ 类型安全,减少运行时错误                                        │
│  ✅ 更好的 IDE 支持                                                 │
│  ✅ 代码可读性和可维护性                                            │
│                                                                     │
│  ES Module                                                          │
│  ✅ 现代 JavaScript 标准                                            │
│  ✅ 更好的 tree-shaking                                             │
│  ✅ 与 Node.js 原生支持一致                                         │
│                                                                     │
│  MCP SDK                                                            │
│  ✅ 官方支持,稳定可靠                                              │
│  ✅ 标准化协议,兼容性好                                            │
│  ✅ 活跃的社区                                                      │
│                                                                     │
│  零运行时依赖(除 MCP SDK)                                         │
│  ✅ 减少依赖风险                                                    │
│  ✅ 更快的安装速度                                                  │
│  ✅ 更小的包体积                                                    │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本章小结

┌─────────────────────────────────────────────────────────────────────┐
│                     第十三章 核心要点                                │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  📦 核心依赖                                                        │
│     • @modelcontextprotocol/sdk                                     │
│     • node-cron                                                     │
│     • zod                                                           │
│                                                                     │
│  🔧 Node.js API                                                     │
│     • fs (文件系统)                                                 │
│     • path (路径处理)                                               │
│     • os (操作系统)                                                 │
│     • crypto (加密)                                                 │
│                                                                     │
│  🎯 技术选型                                                        │
│     • TypeScript - 类型安全                                         │
│     • ES Module - 现代标准                                          │
│     • 零依赖 - 轻量级                                               │
│                                                                     │
│  💡 设计原则                                                        │
│     • 最小依赖                                                      │
│     • 原生 API 优先                                                 │
│     • 性能优先                                                      │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本文档是《MiniClaw 深度解析》系列的第十三章,下一章将详细介绍代码质量分析。

讨论回复

0 条回复

还没有人回复