# mike

> 来源：[GitHub](https://github.com/willchen96/mike) · ⭐ 1684 stars

# Mike：开源 AI 法律平台的技术解构与实战指南

## 项目简介

在法律科技（LegalTech）领域，AI 技术的应用正从概念验证走向生产落地，但一个结构性矛盾始终存在：法律服务的专业壁垒与开源社区的技术开放之间难以调和。Mike 项目正是在这一背景下诞生的创新型解决方案——一个以 TypeScript 为核心构建的开源 AI 法律平台，目前在 GitHub 已获得 1684 个 Star，显示出开发者社区对其技术路径的高度认可。

Mike 的命名源自法律英语中的通用占位符"Michael"，象征着平台作为"通用法律基础设施"的定位。与市面上多数闭源的法律 SaaS 产品不同，Mike 选择全栈开源策略，将合同审查、法规检索、合规检查等核心能力模块化封装，使中小企业和独立开发者能够以极低成本接入企业级法律 AI 能力。其核心价值在于**将法律知识的结构化表达与大语言模型的推理能力深度耦合**，而非简单地将通用 LLM 包装成"法律助手"。

## 核心特性

- **法律知识图谱驱动**：内置可扩展的法律实体关系网络，支持民法典、合同法等核心法规的结构化解析，AI 推理过程可追溯至具体法条依据

- **多模型编排架构**：抽象 LLM 调用层，支持 OpenAI、Claude、本地模型（如 Llama 系列）的混合调度，根据任务复杂度自动选择成本最优的推理路径

- **合同智能审查流水线**：提供从文档解析（PDF/Word）、条款提取、风险识别到修订建议的完整工作流，支持自定义审查规则模板

- **合规性沙箱环境**：隔离的测试空间用于验证 AI 生成法律文本的边界情况，内置对抗性测试用例库防止"幻觉"导致的法律风险

- **TypeScript 全类型安全**：从数据层到 API 层的端到端类型推导，确保法律逻辑在编译期即完成一致性校验

## 技术实现

Mike 的技术架构体现了对法律领域特殊性的深度理解。其采用**分层领域驱动设计（DDD）**，将系统划分为知识层、推理层和应用层三个核心维度。

在知识层，项目使用自定义的 DSL（领域特定语言）描述法律规范的结构化语义。以合同条款为例，Mike 并非简单存储文本，而是将其解析为带有逻辑约束的 AST（抽象语法树）节点：

```typescript
interface ContractClause {
  clauseId: string;
  clauseType: 'obligation' | 'liability' | 'termination';
  parties: PartyReference[];
  conditions: LogicalExpression;  // 可计算的条件表达式
  legalBasis: Citation[];         // 关联的法规引用
  riskProfile: RiskAssessment;    // 预计算的风险向量
}
```

这种设计使得法律推理从"文本相似度匹配"升级为"逻辑可满足性求解"。当用户上传一份租赁合同时，系统会构建 SMT（可满足性模理论）约束模型，自动检测条款间的逻辑冲突——例如"免租期"与"提前终止违约金"的计算基数是否一致。

推理层采用**Retrieval-Augmented Generation（RAG）的增强变体**。与传统 RAG 仅做向量检索不同，Mike 实现了"双轨检索"：语义向量负责召回候选法条，而符号推理引擎（基于 Z3 solver）负责验证法条与当前案情的逻辑适配性。这种神经-符号混合架构显著降低了 LLM 在法律推理中的幻觉率。

TypeScript 的全栈应用也是值得关注的工程决策。服务端使用 NestJS 构建领域服务，配合 Prisma ORM 实现类型安全的数据持久化；客户端采用 Next.js 14 的 Server Actions 处理同步的法律文档渲染与 AI 流式响应。整个代码库通过 Zod 运行时校验与 TypeScript 静态类型的双重保障，确保法律数据的完整性约束在传输、存储、处理全链路不被破坏。

## 快速上手

Mike 提供 Docker Compose 一键启动完整环境：

```bash
git clone https://github.com/willchen96/mike.git
cd mike
cp .env.example .env
# 配置 LLM API 密钥后
docker-compose up -d
```

核心 SDK 的使用简洁直观。以下示例展示如何创建自定义的合同审查管道：

```typescript
import { MikeClient, ContractReviewPipeline } from '@mikeai/sdk';

const client = new MikeClient({ apiKey: process.env.MIKE_API_KEY });

const pipeline = new ContractReviewPipeline()
  .loadDocument('./nda-template.pdf')
  .applyRuleSet('confidentiality-agreement')  // 加载保密协议规则集
  .setModelPreference('claude-3-opus')        // 复杂推理任务指定高性能模型
  .enableCitationTracking();                  // 开启法条引用溯源

const result = await pipeline.execute();

// 结构化输出审查结果
for (const finding of result.findings) {
  console.log(`[${finding.severity}] ${finding.description}`);
  console.log(`  关联法条: ${finding.legalBasis.map(c => c.article).join(', ')}`);
  console.log(`  建议修订: ${finding.suggestedRevision}`);
}
```

对于需要深度定制的场景，可直接扩展知识图谱：

```typescript
import { LegalKnowledgeBase, EntityType } from '@mikeai/core';

const kb = new LegalKnowledgeBase();

// 注入地方性法规作为领域扩展
await kb.ingestRegulation({
  jurisdiction: 'CN-SH',  // 上海市地方法规
  sourceUrl: 'https://...',
  entityExtractor: (paragraph) => {
    // 自定义实体抽取逻辑
    return paragraph.match(/第[一二三四五六七八九十]+条\s+(.+)/g) || [];
  }
});
```

## 应用场景

**中小企业法务自动化**：一家 50 人规模的 SaaS 公司每月需处理 20-30 份供应商合同。使用 Mike 部署私有化审查规则后，法务负责人将 NDAs 和云服务协议的初审时间从每份 2 小时压缩至 15 分钟，且标准条款的遗漏率从 12% 降至接近零。

**法律科技创业公司的基础设施**：某诉讼预测产品团队无需从零构建法规检索系统，直接基于 Mike 的知识图谱层进行二次开发，将 MVP 开发周期从 6 个月缩短至 8 周，同时继承了项目持续更新的法规库维护能力。

**合规审计的可解释 AI**：金融机构在反洗钱（AML）规则更新时，利用 Mike 的符号推理层生成规则变更的影响面报告，向监管机构证明 AI 决策的每一步均有明确的法规依据，满足《算法推荐管理规定》的可解释性要求。

## 总结

Mike 项目的真正价值不在于提供"又一个法律 ChatGPT 封装"，而是构建了一套**可验证、可扩展、可审计的法律 AI 工程框架**。其 TypeScript 全栈选型降低了前端开发者的接入门槛，而神经-符号混合架构则为法律科技领域提供了经得起专业审视的技术方案。对于正在探索垂直领域 AI 应用的开发者、寻求降本增效的法务团队，以及关注 AI 合规产品创业的技术人员，Mike 都是一个值得深入研究的标杆项目——它证明了开源社区完全有能力在高度专业化的领域，构建出超越商业闭源产品的技术深度。