# 数据管理API

<cite>
**本文引用的文件**
- [src/app/api/data/clear/route.ts](file://src/app/api/data/clear/route.ts)
- [src/app/api/data/export/route.ts](file://src/app/api/data/export/route.ts)
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts)
- [src/app/api/sessions/route.ts](file://src/app/api/sessions/route.ts)
- [src/lib/db.ts](file://src/lib/db.ts)
- [src/lib/forge-data.ts](file://src/lib/forge-data.ts)
- [src/lib/memory-flush.ts](file://src/lib/memory-flush.ts)
- [src/lib/session-cleanup.ts](file://src/lib/session-cleanup.ts)
- [src/lib/types.ts](file://src/lib/types.ts)
- [src/components/views/settings-view.tsx](file://src/components/views/settings-view.tsx)
</cite>

## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构总览](#架构总览)
5. [详细组件分析](#详细组件分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考量](#性能考量)
8. [故障排查指南](#故障排查指南)
9. [结论](#结论)
10. [附录](#附录)

## 简介
本文件为 Forge 数据管理API的权威参考文档，覆盖以下主题：
- 数据清理与导出：包括全量数据清理、按工作区导出、按会话导出，以及会话级清理与压缩。
- 历史数据归档与数据库维护：通过会话保留策略与数据库迁移/维护逻辑实现。
- 批量数据操作：支持按会话删除消息、按会话压缩为摘要等。
- 导出格式、压缩选项与完整性校验：导出数据结构、前端下载行为与一致性保障。
- 内存管理API：后台记忆刷新、会话清理与内存优化。
- 数据迁移、备份恢复与数据同步：数据目录迁移、数据库文件与上传目录迁移、自动同步外部配置。
- 数据安全、隐私保护与合规：权限绕过模式、工具授权策略与安全检查。

## 项目结构
本节聚焦与数据管理直接相关的后端路由与核心库模块，展示其组织方式与职责边界。

```mermaid
graph TB
subgraph "API 路由"
DClear["/api/data/clear<br/>POST 清理所有用户数据"]
DExport["/api/data/export<br/>GET 导出全部会话+消息"]
SList["/api/sessions<br/>GET/POST 会话列表与创建"]
SClear["/api/sessions/:id/clear<br/>POST 删除会话内消息"]
SCompact["/api/sessions/:id/compact<br/>POST 压缩会话为摘要"]
SExport["/api/sessions/:id/export<br/>GET 导出会话+消息"]
end
subgraph "核心库"
DB["db.ts<br/>数据库初始化/迁移/索引"]
FD["forge-data.ts<br/>数据目录/迁移"]
MF["memory-flush.ts<br/>后台记忆刷新"]
SC["session-cleanup.ts<br/>会话自动清理"]
TYPES["types.ts<br/>类型定义"]
end
DClear --> DB
DExport --> DB
SList --> DB
SClear --> DB
SCompact --> DB
SExport --> DB
DB --> FD
MF --> DB
SC --> DB
SList --> SC
SList --> MF
DExport --> TYPES
SExport --> TYPES
```

**图表来源**
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/route.ts:1-34](file://src/app/api/sessions/route.ts#L1-L34)
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L1-L19)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts#L1-L34)
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)
- [src/lib/forge-data.ts:1-104](file://src/lib/forge-data.ts#L1-L104)
- [src/lib/memory-flush.ts:1-105](file://src/lib/memory-flush.ts#L1-L105)
- [src/lib/session-cleanup.ts:1-40](file://src/lib/session-cleanup.ts#L1-L40)
- [src/lib/types.ts:1-221](file://src/lib/types.ts#L1-L221)

**章节来源**
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/route.ts:1-34](file://src/app/api/sessions/route.ts#L1-L34)
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L1-L19)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts#L1-L34)
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)
- [src/lib/forge-data.ts:1-104](file://src/lib/forge-data.ts#L1-L104)
- [src/lib/memory-flush.ts:1-105](file://src/lib/memory-flush.ts#L1-L105)
- [src/lib/session-cleanup.ts:1-40](file://src/lib/session-cleanup.ts#L1-L40)
- [src/lib/types.ts:1-221](file://src/lib/types.ts#L1-L221)

## 核心组件
- 数据清理与导出
  - 全量清理：POST /api/data/clear（需确认参数）清空会话、消息、任务执行、定时任务、IM通道、MCP服务器、钩子、代理技能、代理与技能表。
  - 全量导出：GET /api/data/export 支持可选查询参数 workspace 过滤；返回导出元信息与每个会话的消息数组（assistant 消息为块数组，user 消息为文本）。
  - 会话级清理：POST /api/sessions/:id/clear 删除指定会话的所有消息。
  - 会话级导出：GET /api/sessions/:id/export 返回单个会话及其消息（assistant 消息为块数组，user 消息为文本）。
  - 会话压缩：POST /api/sessions/:id/compact 将会话多轮对话压缩为一条摘要消息，保留话题提示，用于内存优化。
- 数据库与目录
  - 数据库初始化与迁移：首次访问触发旧目录迁移，创建/迁移表结构，维护外键与索引，自动同步外部MCP配置。
  - 数据目录：统一在用户主目录下 ~/.forge/，支持环境变量覆盖；自动创建目录；迁移旧 .forge-data/ 到新位置。
- 内存管理
  - 后台记忆刷新：每 N 条消息触发一次后台轻量查询，决定是否写入长期记忆或更新 MEMORY.md。
  - 会话自动清理：根据设置项 session_retention 自动删除过期会话及对应消息（每进程最多每小时执行一次）。
- 类型与前端集成
  - 统一类型定义，确保导出数据结构一致。
  - 设置页前端调用 /api/data/clear 并触发页面刷新。

**章节来源**
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L1-L19)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts#L1-L34)
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)
- [src/lib/forge-data.ts:1-104](file://src/lib/forge-data.ts#L1-L104)
- [src/lib/memory-flush.ts:1-105](file://src/lib/memory-flush.ts#L1-L105)
- [src/lib/session-cleanup.ts:1-40](file://src/lib/session-cleanup.ts#L1-L40)
- [src/lib/types.ts:1-221](file://src/lib/types.ts#L1-L221)
- [src/components/views/settings-view.tsx:76-113](file://src/components/views/settings-view.tsx#L76-L113)

## 架构总览
下图展示数据管理API的关键交互路径与数据流。

```mermaid
sequenceDiagram
participant Client as "客户端"
participant API as "Next.js 路由处理器"
participant DB as "数据库层(db.ts)"
participant FS as "文件系统(数据目录)"
Client->>API : "POST /api/data/clear"
API->>API : "解析请求体并校验确认参数"
API->>DB : "删除会话/消息/任务/通道/服务器/钩子/代理技能/代理/技能"
DB-->>API : "OK"
API-->>Client : "{ ok : true, cleared : true }"
Client->>API : "GET /api/data/export?workspace=..."
API->>DB : "查询会话列表可过滤"
loop 遍历会话
API->>DB : "查询该会话消息"
DB-->>API : "消息列表"
end
API-->>Client : "导出JSON含版本/时间/范围/数据"
Client->>API : "POST /api/sessions/ : id/compact"
API->>DB : "读取消息并统计话题"
API->>DB : "事务：删除消息并插入摘要"
DB-->>API : "OK"
API-->>Client : "{ ok : true, compacted : N }"
```

**图表来源**
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)

## 详细组件分析

### 数据清理与导出接口
- 全量清理
  - 请求方法与路径：POST /api/data/clear
  - 参数：需要传入 { confirm: true }，否则返回错误。
  - 行为：删除会话、消息、任务执行、定时任务、IM通道、MCP服务器、钩子、代理技能、代理、技能等表中的数据，保留表结构、设置、工作区与API提供商。
  - 错误处理：非JSON请求体返回400；缺少确认参数返回400。
- 全量导出
  - 请求方法与路径：GET /api/data/export
  - 查询参数：workspace（可选），用于按工作区过滤。
  - 返回结构：包含 exportedAt、version、totalSessions、scope（all 或 workspace）、data（数组，每项为 { session, messages }）。
  - 消息格式：assistant 消息为块数组（JSON解析失败时回退为空数组）；user 消息为纯文本。
- 会话级清理
  - 请求方法与路径：POST /api/sessions/:id/clear
  - 行为：若会话存在则删除其所有消息；不存在返回404。
- 会话级导出
  - 请求方法与路径：GET /api/sessions/:id/export
  - 行为：返回单个会话与其消息；assistant 消息为块数组，user 消息为文本。
- 会话压缩
  - 请求方法与路径：POST /api/sessions/:id/compact
  - 行为：统计轮次、用户/助手消息数与话题，生成摘要并替换为单条assistant消息；空会话返回已压缩数量0。

```mermaid
flowchart TD
Start(["开始"]) --> CheckConfirm["校验确认参数 confirm"]
CheckConfirm --> |缺失| Err400["返回 400 错误"]
CheckConfirm --> |存在| Txn["事务：删除相关表数据"]
Txn --> Done["返回 { ok: true, cleared: true }"]
style Err400 fill:#fff,stroke:#333
```

**图表来源**
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)

**章节来源**
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L1-L19)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts#L1-L34)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)

### 数据库与目录管理
- 数据库初始化与维护
  - 首次访问时执行旧目录迁移，创建/迁移表结构，启用WAL与外键约束，建立必要索引。
  - 迁移逻辑覆盖工作区、会话、IM通道、钩子、API提供商、定时任务、任务执行、通道绑定、会话权限模式等字段变更。
  - 自动同步外部MCP配置（~/.claude.json），检测连接状态并写入数据库。
- 数据目录与迁移
  - 默认数据目录：~/.forge/；可通过环境变量覆盖。
  - 首次访问自动创建目录；从旧 .forge-data/ 迁移数据库文件与上传目录，避免重复迁移。

```mermaid
flowchart TD
Init["首次访问 getDb()"] --> Migrate["迁移旧目录若存在且新目录为空"]
Migrate --> Create["创建/迁移表结构<br/>启用WAL/外键/索引"]
Create --> SyncMCP["同步 ~/.claude.json 中的 MCP 服务器"]
SyncMCP --> Ready["数据库就绪"]
style Ready fill:#fff,stroke:#333
```

**图表来源**
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)
- [src/lib/forge-data.ts:1-104](file://src/lib/forge-data.ts#L1-L104)

**章节来源**
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)
- [src/lib/forge-data.ts:1-104](file://src/lib/forge-data.ts#L1-L104)

### 内存管理API
- 后台记忆刷新
  - 触发条件：每 N 条消息（默认5）触发一次后台检查，避免重复触发；对超过阈值的会话进行清理，维持追踪集合大小。
  - 执行流程：构造简短提示，调用SDK查询，静默消费流式响应，不产生UI反馈。
- 会话自动清理
  - 触发条件：每进程最多每小时执行一次；根据设置项 session_retention（天数）计算截止时间，删除过期会话及其消息。
  - 安全性：当设置为 permanent 时跳过清理；非正整数时也跳过。

```mermaid
sequenceDiagram
participant Sess as "会话消息保存"
participant MF as "memory-flush.ts"
participant DB as "数据库"
participant SDK as "Forge SDK"
Sess->>MF : "maybeFlushMemory(sessionId, workspaceId, model, userMsg, summary)"
MF->>DB : "COUNT(messages) 检查消息数"
alt 达到间隔
MF->>MF : "更新追踪并清理过期条目"
MF->>SDK : "runMemoryFlush(prompt...)"
SDK-->>MF : "流式响应静默消费"
else 未达间隔
MF-->>Sess : "跳过"
end
```

**图表来源**
- [src/lib/memory-flush.ts:1-105](file://src/lib/memory-flush.ts#L1-L105)
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)

**章节来源**
- [src/lib/memory-flush.ts:1-105](file://src/lib/memory-flush.ts#L1-L105)
- [src/lib/session-cleanup.ts:1-40](file://src/lib/session-cleanup.ts#L1-L40)

### 数据导出格式、压缩选项与完整性校验
- 导出格式
  - 全量导出：返回包含版本、导出时间、作用域（all 或 workspace）与数据数组的对象；数据数组中每个元素为 { session, messages }。
  - 会话导出：返回包含会话元信息与消息数组的对象；assistant 消息为块数组（JSON解析失败时回退），user 消息为文本。
- 压缩选项
  - 会话压缩：将多轮对话压缩为单条摘要消息，保留话题提示，减少存储与传输开销。
- 完整性校验
  - 会话导出时对 assistant 消息进行JSON解析，失败时回退为空数组，保证导出稳定。
  - 前端下载：设置页支持导出为 JSON 或 Markdown，并通过浏览器Blob下载，便于离线归档与审计。

```mermaid
flowchart TD
ExportStart["开始导出"] --> FetchSess["查询会话可过滤"]
FetchSess --> LoopMsg["遍历消息"]
LoopMsg --> Role{"角色？"}
Role --> |assistant| Parse["尝试解析块数组(JSON)"]
Role --> |user| Text["使用纯文本"]
Parse --> Build["构建导出对象"]
Text --> Build
Build --> Done["返回导出结果"]
style Done fill:#fff,stroke:#333
```

**图表来源**
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts#L1-L34)

**章节来源**
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)
- [src/app/api/sessions/[id]/export/route.ts](file://src/app/api/sessions/[id]/export/route.ts#L1-L34)
- [src/components/views/settings-view.tsx:76-95](file://src/components/views/settings-view.tsx#L76-L95)

### 批量数据操作
- 会话级清理：POST /api/sessions/:id/clear 在事务中删除指定会话的消息，避免部分删除导致不一致。
- 会话级压缩：POST /api/sessions/:id/compact 使用事务替换消息为摘要，保持原子性。
- 会话列表与创建：GET /api/sessions 列出活动会话并触发会话清理；POST 创建新会话并返回完整会话信息。

```mermaid
sequenceDiagram
participant Client as "客户端"
participant API as "会话路由"
participant DB as "数据库"
Client->>API : "POST /api/sessions/ : id/clear"
API->>DB : "SELECT 会话是否存在"
alt 存在
API->>DB : "DELETE FROM messages WHERE session_id = ?"
DB-->>API : "OK"
API-->>Client : "{ ok : true }"
else 不存在
API-->>Client : "404 会话不存在"
end
```

**图表来源**
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L1-L19)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)
- [src/app/api/sessions/route.ts:1-34](file://src/app/api/sessions/route.ts#L1-L34)

**章节来源**
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L1-L19)
- [src/app/api/sessions/[id]/compact/route.ts](file://src/app/api/sessions/[id]/compact/route.ts#L1-L66)
- [src/app/api/sessions/route.ts:1-34](file://src/app/api/sessions/route.ts#L1-L34)

### 数据迁移、备份恢复与数据同步
- 数据迁移
  - 旧目录迁移：首次访问时检测 process.cwd()/.forge-data/ 下的数据库文件，若新目录无有效数据库则复制 forge.db 及其 WAL 文件与上传目录。
  - 迁移幂等：同一进程仅尝试一次，避免重复拷贝。
- 备份恢复
  - 建议在升级前备份 ~/.forge/ 目录；如需回滚，停止应用后替换数据库文件与上传目录。
- 数据同步
  - 自动同步：启动时读取 ~/.claude.json 中的 MCP 服务器配置，自动创建数据库记录并测试连接状态。

**章节来源**
- [src/lib/forge-data.ts:1-104](file://src/lib/forge-data.ts#L1-L104)
- [src/lib/db.ts:443-477](file://src/lib/db.ts#L443-L477)

### 数据安全、隐私保护与合规
- 权限绕过模式
  - 当启用 bypassPermissions 时，SDK 自动批准 .claude/ 安全检查，允许危险操作（如写入配置目录），但会限制设置来源以避免加载不受信任的全局规则。
- 工具授权策略
  - 提供 canUseTool 回调时，对 .claude/ 安全检查进行自动批准，其余工具按回调策略判断。
- 合规建议
  - 导出与清理操作应遵循最小化原则，仅在必要时导出敏感会话；清理前确认数据范围；对导出文件进行本地加密存储。

**章节来源**
- [src/lib/sdk/client.ts:464-491](file://src/lib/sdk/client.ts#L464-L491)

## 依赖关系分析
- 组件耦合
  - 路由层仅负责请求解析与响应封装，业务逻辑集中在 db.ts 与 lib 层。
  - db.ts 作为单一数据源，集中处理表结构、迁移与索引，降低上层复杂度。
- 外部依赖
  - better-sqlite3：本地嵌入式数据库，支持WAL与外键。
  - 文件系统：用于数据目录与旧目录迁移。
- 循环依赖
  - 未发现循环依赖；db.ts 初始化时仅读取环境变量与文件系统，不依赖路由层。

```mermaid
graph LR
Routes["API 路由"] --> DBLayer["db.ts"]
DBLayer --> FS["文件系统"]
Routes --> Libs["lib/*"]
Libs --> DBLayer
```

**图表来源**
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)
- [src/app/api/data/clear/route.ts:1-31](file://src/app/api/data/clear/route.ts#L1-L31)
- [src/app/api/data/export/route.ts:1-38](file://src/app/api/data/export/route.ts#L1-L38)

**章节来源**
- [src/lib/db.ts:1-499](file://src/lib/db.ts#L1-L499)

## 性能考量
- 数据库优化
  - WAL模式提升并发写入性能；外键约束保证数据一致性。
  - 为消息表建立复合索引，加速按会话与时间排序查询。
- 内存优化
  - 会话压缩将多轮对话降为单条摘要，显著降低内存占用与网络传输。
  - 后台记忆刷新采用“触发间隔”与“追踪集合清理”，避免频繁触发。
- 清理策略
  - 会话自动清理按小时节流，避免高频I/O；仅在设置为具体天数时生效。

**章节来源**
- [src/lib/db.ts:22-50](file://src/lib/db.ts#L22-L50)
- [src/lib/memory-flush.ts:15-64](file://src/lib/memory-flush.ts#L15-L64)
- [src/lib/session-cleanup.ts:10-22](file://src/lib/session-cleanup.ts#L10-L22)

## 故障排查指南
- 清理接口返回400
  - 检查请求体是否为合法JSON，确认包含 { confirm: true }。
  - 参考：[src/app/api/data/clear/route.ts:6-11](file://src/app/api/data/clear/route.ts#L6-L11)
- 会话不存在
  - 检查会话ID是否正确；清理/导出/压缩前先确认会话存在。
  - 参考：[src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L11-L14)
- 导出assistant消息为空
  - assistant消息可能为纯文本或JSON块数组，解析失败时回退为空数组；请检查消息内容格式。
  - 参考：[src/app/api/data/export/route.ts:17-25](file://src/app/api/data/export/route.ts#L17-L25)
- 会话未被清理
  - 确认 session_retention 设置值为正数；检查日志输出的清理统计。
  - 参考：[src/lib/session-cleanup.ts:16-24](file://src/lib/session-cleanup.ts#L16-L24)
- 数据迁移失败
  - 检查 ~/.forge/ 是否已有有效数据库；确认旧目录 .forge-data/ 存在且包含数据库文件。
  - 参考：[src/lib/forge-data.ts:52-103](file://src/lib/forge-data.ts#L52-L103)

**章节来源**
- [src/app/api/data/clear/route.ts:6-11](file://src/app/api/data/clear/route.ts#L6-L11)
- [src/app/api/sessions/[id]/clear/route.ts](file://src/app/api/sessions/[id]/clear/route.ts#L11-L14)
- [src/app/api/data/export/route.ts:17-25](file://src/app/api/data/export/route.ts#L17-L25)
- [src/lib/session-cleanup.ts:16-24](file://src/lib/session-cleanup.ts#L16-L24)
- [src/lib/forge-data.ts:52-103](file://src/lib/forge-data.ts#L52-L103)

## 结论
Forge 数据管理API围绕“安全、高效、可维护”的目标设计，提供完善的清理、导出、压缩与自动清理能力，并通过数据库迁移与外部配置同步保障长期可用性。结合权限绕过与工具授权策略，既满足自动化需求又兼顾安全与合规。

## 附录
- API清单
  - POST /api/data/clear：清理所有用户数据（需确认）
  - GET /api/data/export：导出全部会话与消息（可选 workspace 过滤）
  - GET /api/sessions：列出活动会话（触发会话清理）
  - POST /api/sessions：创建新会话
  - POST /api/sessions/:id/clear：删除会话内所有消息
  - POST /api/sessions/:id/compact：将会话压缩为摘要
  - GET /api/sessions/:id/export：导出会话与消息
- 关键类型
  - 会话、消息、工作区、代理、技能、API提供商、IM通道、定时任务、任务执行等类型定义见类型文件。
  - 参考：[src/lib/types.ts:1-221](file://src/lib/types.ts#L1-L221)