# Marifold：基于配置文件的本地优先 AI 工作空间

> 一款本地优先的个人 AI 工作空间，支持多配置文件管理、会话续传、显式记忆命令和灵活的模型配置，基于 TypeScript 构建，为 AI 交互提供结构化、可定制的工作环境。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-06-03T01:44:30.000Z
- 最近活动: 2026-06-03T01:54:31.322Z
- 热度: 163.8
- 关键词: AI, CLI, 配置文件, 本地优先, TypeScript, 会话管理, 记忆系统, 多模型, Ollama, OpenAI
- 页面链接: https://www.zingnex.cn/forum/thread/marifold-ai
- Canonical: https://www.zingnex.cn/forum/thread/marifold-ai
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者：** tjcccc
- **来源平台：** GitHub
- **原始标题：** marifold
- **原始链接：** https://github.com/tjcccc/marifold
- **发布时间：** 2026年6月

## 项目概述

Marifold 是一个本地优先的个人 AI 工作空间，采用配置文件（profile）驱动的设计理念，将 AI 交互组织成结构化的工作环境。它支持多配置文件管理、技能定义、应用集成、工作流编排和外部代理对接，旨在为用户提供一个统一、可定制、可扩展的 AI 操作平台。

当前 v0.3.0 版本聚焦于 CLI 基础功能，提供了类似 priests 风格的配置文件聊天、一次性请求、工作空间初始化、会话续传、模型选项保存、显式记忆命令等核心能力。项目基于 TypeScript 构建，依赖 @priest-ai/core 实现底层的大模型调用、流式响应和 SQLite 会话持久化。

## 核心概念：配置文件驱动

### 配置文件目录结构

Marifold 的配置文件采用目录化组织，每个配置文件是一个独立的文件夹：

```
profiles/default/
├── PROFILE.md          # 定义 AI 身份和个性
├── RULES.md            # 定义行为规则
├── CUSTOM.md           # 可选的额外系统指导
├── profile.toml        # 配置文件元数据（可覆盖全局默认模型）
└── memories/
    ├── user.jsonl      # 持久化用户事实
    ├── preferences.jsonl # 持久化用户偏好
    └── auto_short.jsonl # 短期记忆笔记
```

### 配置文件的作用

每个配置文件相当于一个"工作角色"或"专业领域"，可以针对特定场景定制 AI 的行为：

- **PROFILE.md**：定义该配置文件下 AI 的身份、 expertise、沟通风格
- **RULES.md**：设定该配置文件的特定规则，如代码规范、输出格式要求
- **CUSTOM.md**：补充性的系统提示，可包含特定领域的知识或约束
- **memories/**：存储与该配置文件相关的记忆，实现跨会话的上下文延续

这种设计让用户可以为不同场景创建专门的配置文件，比如"程序员"配置文件专注于代码辅助，"作家"配置文件专注于创意写作，"翻译"配置文件专注于多语言处理。

## v0.3.0 功能详解

### 交互模式

**一次性请求（One-shot）**

适合快速获取答案的场景，命令执行后立即返回结果并退出：

```bash
pnpm marifold ask "解释什么是量子计算"
pnpm marifold ask --profile coder "用 Python 实现快速排序"
```

**交互式聊天（Interactive Chat）**

启动持续对话会话，支持多轮交流：

```bash
pnpm marifold chat
pnpm marifold chat --profile default
pnpm marifold chat --profile default --session my-project
```

### 会话管理

**会话续传**

支持从之前的会话断点继续对话，保持上下文连贯：

```bash
# 续传指定会话
pnpm marifold chat --profile default --resume

# 续传最后一个会话
pnpm marifold chat --profile default --resume last
```

**会话操作**

```bash
# 列出配置文件相关的会话
pnpm marifold session list --profile default

# 查看会话详情
pnpm marifold session show test-session

# 重命名会话
pnpm marifold session rename test-session renamed-session

# 删除会话
pnpm marifold session delete renamed-session
```

### 记忆系统

Marifold 提供了显式的记忆管理命令，让用户主动控制 AI 的记忆：

| 命令 | 作用 |
|------|------|
| `/remember <text>` | 保存短期记忆 |
| `/remember user <text>` | 保存持久的用户事实 |
| `/remember pref <text>` | 保存持久的用户偏好 |
| `/forget <query>` | 软删除匹配的记忆 |
| `/delete-memory <query>` | 永久删除匹配的记忆记录 |

记忆通过 @priest-ai/core 的 memory lane 机制注入到请求上下文中，实现跨会话的个性化体验。

### 模型配置

**支持的提供商类型**

- **ollama**：本地 Ollama 服务
- **openai-compatible**：兼容 OpenAI API 的第三方服务
- **anthropic**：Claude 系列模型

**配置方式**

全局配置存储在 `~/.marifold/config.toml`：

```toml
[default]
provider = "ollama"
model = "gemma4:e4b"
profile = "default"
timeout_seconds = 120

[models]
options = [
  "ollama/gemma4:e4b",
]

[providers.ollama]
type = "ollama"
base_url = "http://localhost:11434"
```

**动态模型管理**

```bash
# 查看当前模型配置
pnpm marifold model

# 列出已保存的模型选项
pnpm marifold model list

# 添加新的模型选项
pnpm marifold model add ollama qwen3:8b
pnpm marifold model add openai gpt-4o-mini --base-url https://api.openai.com --api-key-env OPENAI_API_KEY --default

# 设置默认模型
pnpm marifold model default gemma4:e4b
```

**实时模型列表**

对于 Ollama 和可访问的 OpenAI 兼容服务，支持实时查询可用模型：

```bash
pnpm marifold provider ollama list
```

### 配置文件管理

```bash
# 列出所有配置文件
pnpm marifold profile list

# 查看配置文件详情
pnpm marifold profile show default

# 创建新配置文件
pnpm marifold profile init coder

# 设置默认配置文件
pnpm marifold profile default coder
```

## 技术架构

### 与 @priest-ai/core 的关系

Marifold 采用分层架构：

- **@priest-ai/core**：负责底层的大模型调用、流式响应处理、上下文组装、SQLite 会话持久化
- **Marifold**：提供产品级包装，包括 CLI 命令、Marifold 配置、priests 风格配置文件目录加载、配置文件记忆选择、用户运行时行为

这种分工让 Marifold 可以专注于用户体验和产品功能，而将复杂的模型交互逻辑交给专业的底层库处理。

### 配置系统

Marifold 支持多级配置覆盖：

1. 全局默认配置（`~/.marifold/config.toml`）
2. 命令行参数覆盖
3. 配置文件级别的 provider/model 覆盖（`profile.toml`）

这种灵活的覆盖机制让用户可以在不同粒度上控制 AI 行为。

## 安装与初始化

### 从源码安装

```bash
# 克隆仓库
git clone https://github.com/tjcccc/marifold.git
cd marifold

# 安装依赖并构建
pnpm install
pnpm build
```

### 初始化工作空间

```bash
# 创建本地配置
pnpm marifold init
```

该命令会：
- 创建 `~/.marifold/config.toml`
- 创建 `~/.marifold/profiles/default` 目录
- 保留现有配置文件（如果重新运行需加 `--force`）

### 配置模型

**Ollama 用户**

确保本地 Ollama 服务运行，并拉取所需模型：

```bash
ollama pull gemma4:e4b
```

**OpenAI/Anthropic 用户**

设置环境变量：

```bash
export OPENAI_API_KEY="..."
export ANTHROPIC_API_KEY="..."
```

或使用初始化命令：

```bash
pnpm marifold init --provider openai --model gpt-4o-mini
```

## 当前局限与未来方向

### v0.3.0 明确不包含的功能

当前版本专注于 CLI 基础，以下功能尚未实现：

- 自动模型驱动的记忆提取/整合
- 网络搜索
- 图片上传
- Web 服务/UI
- SkillApp（技能应用）
- Workflow（工作流编排）
- Apple 应用集成
- 外部代理别名
- 定时任务
- 权限系统
- 可视化小应用渲染
- 代理工具循环

### 未来演进方向

根据项目愿景，Marifold 计划向完整的工作空间平台演进：

- **技能系统**：可复用的 AI 技能模块
- **应用市场**：迷你应用生态
- **工作流编排**：可视化的 AI 工作流设计
- **多代理协作**：支持外部代理接入和协同工作
- **Web 界面**：浏览器访问的图形化界面

## 适用场景

Marifold 适合以下用户：

- **多场景 AI 用户**：需要为不同任务切换不同的 AI 角色和配置
- **隐私敏感用户**：本地优先架构，数据不离开本地环境
- **CLI 爱好者**：偏好命令行交互的高级用户
- **AI 工作流构建者**：希望逐步构建个性化 AI 工作环境的用户
- **开发者**：需要可定制、可扩展的 AI 基础设施

## 总结

Marifold v0.3.0 是一个专注于基础架构的 CLI 工具，通过配置文件驱动的设计理念，为 AI 交互提供了结构化的组织方式。虽然当前功能相对基础，但其清晰的架构设计和明确的演进路线图，显示出成为完整 AI 工作空间的潜力。对于希望建立个性化、可扩展 AI 环境的用户来说，Marifold 是一个值得关注的开源项目。
