## 项目概述

Fabric 是一个开源框架，旨在通过 AI 增强人类能力。它提供了一个模块化系统，利用众包的 AI 提示词（称为 Patterns）来解决特定问题，并可在任何地方使用。该项目由 Daniel Miessler 创建，采用 Go 语言编写，遵循 MIT 许可证。

## 核心功能

- **Patterns 系统**：组织、收集和分享针对特定任务的 AI 提示词，涵盖生活与工作的方方面面。
- **多供应商支持**：原生集成 OpenAI、Anthropic、Google Gemini、Ollama、Azure OpenAI、Amazon Bedrock 等，并兼容众多 OpenAI 兼容供应商。
- **命令行界面**：提供功能丰富的 CLI，支持流式输出、会话管理、上下文管理、YouTube 视频处理、网页抓取等。
- **REST API 服务器**：内置 REST API，可通过 HTTP 访问核心功能，并支持 Ollama 兼容模式。
- **自定义 Patterns**：支持用户创建私有 Patterns，且不会被内置 Patterns 更新覆盖。
- **提示词策略**：实现多种提示词策略，如思维链（CoT）、思维草稿（CoD）等。
- **辅助工具**：提供 `to_pdf`、`code2context`、`generate_changelog` 等辅助命令。
- **Web 界面**：提供内置的 Web 图形界面。

## 适用与不适用场景

**适用场景：**

- 希望将 AI 集成到个人工作流中的个人用户。
- 需要为特定任务（如总结、分析、内容创作）寻找和使用高质量提示词的场景。
- 开发者希望构建或分享可复用的 AI 提示词。
- 需要通过命令行或 API 与多种 AI 模型交互的场景。

**不适用场景：**

- 需要图形化拖拽式 AI 工作流编排的平台（Fabric 更侧重于 CLI 和提示词管理）。
- 需要特定领域深度定制 AI 模型训练的场景。
- 需要内置数据存储或业务逻辑的完整应用。

## 技术架构与依赖

- **编程语言**：Go
- **主要依赖**：
  - 各 AI 供应商的官方 SDK（如 OpenAI、Anthropic、AWS Bedrock、Azure 等）。
  - `yt-dlp`：用于 YouTube 视频处理。
  - `ffmpeg`：用于媒体文件处理（如语音转文字时的文件分割）。
  - Jina AI：用于网页抓取。
- **项目结构**：遵循标准 Go 项目布局，主要代码位于 `cmd/` 和 `internal/` 目录。

## 安装与快速开始

**一键安装（推荐）：**

Unix/Linux/macOS：

```bash
curl -fsSL https://raw.githubusercontent.com/danielmiessler/fabric/main/scripts/installer/install.sh | bash
```

Windows PowerShell：

```powershell
iwr -useb https://raw.githubusercontent.com/danielmiessler/fabric/main/scripts/installer/install.ps1 | iex
```

**使用包管理器：**

- macOS (Homebrew): `brew install fabric-ai`
- Arch Linux (AUR): `yay -S fabric-ai`
- Windows (Winget): `winget install danielmiessler.Fabric`
- Windows (Scoop): `scoop install fabric-ai`

**从源码安装：**

```bash
go install github.com/danielmiessler/fabric/cmd/fabric@latest
```

**Docker：**

```bash
docker run --rm -it kayvan/fabric:latest --version
```

**快速开始：**

1. 运行 `fabric --setup` 进行配置，选择 AI 供应商并设置 API 密钥。
2. 使用 `fabric --listpatterns` 查看可用 Patterns。
3. 使用 `echo "你的文本" | fabric --pattern summarize` 运行 Pattern。

## 典型使用方法

**使用 Pattern 处理文本：**

```bash
pbpaste | fabric --pattern summarize
```

**处理 YouTube 视频：**

```bash
fabric -y "https://youtube.com/watch?v=uXs-zPc63kM" --stream --pattern extract_wisdom
```

**抓取网页并分析：**

```bash
fabric -u https://github.com/danielmiessler/fabric/ -p analyze_claims
```

**使用提示词策略：**

```bash
echo "Analyze this code" | fabric --strategy cot -p analyze_code
```

**启动 REST API 服务器：**

```bash
fabric --serve
```

## 配置与部署要点

- **配置文件**：主要配置存储在 `~/.config/fabric/` 目录下，包括 `.env`（API 密钥）和 `config.yaml`。
- **环境变量**：需要根据操作系统设置 `GOROOT`、`GOPATH` 和 `PATH` 环境变量。
- **供应商配置**：通过 `fabric --setup` 交互式配置，或手动编辑 `.env` 文件。
- **自定义 Patterns**：在 `fabric --setup` 中指定自定义 Patterns 目录，或手动创建于 `~/.config/fabric/patterns/`。
- **Docker 部署**：可通过 Docker 运行，需挂载配置目录 `$HOME/.fabric-config`。
- **REST API 安全**：可通过 `--api-key` 参数设置 API 密钥以保护服务器路由。

## 限制、风险与许可证

- **许可证**：MIT License。
- **依赖外部 AI 服务**：Fabric 本身不提供 AI 能力，依赖外部 AI 供应商，其安全性、可用性和数据策略由供应商决定。
- **Patterns 安全性**：自定义 Patterns 可能处理敏感数据或产生不当输出，建议仔细审查来源不明的 Patterns。
- **API 密钥安全**：API 密钥存储在 `~/.config/fabric/.env` 文件中，需妥善保管，避免泄露。
- **Azure AI Gateway 限制**：不支持流式响应，请求超时上限为 5 分钟。
- **GitHub Models 速率限制**：免费层有每日请求次数限制。

## 官方链接

- **GitHub 仓库**：[https://github.com/danielmiessler/fabric](https://github.com/danielmiessler/fabric)
- **最新版本**：[v1.4.473](https://github.com/danielmiessler/Fabric/releases/tag/v1.4.473)
- **文档目录**：[https://github.com/danielmiessler/Fabric/tree/main/docs](https://github.com/danielmiessler/Fabric/tree/main/docs)
- **DeepWiki**：[https://deepwiki.com/danielmiessler/Fabric](https://deepwiki.com/danielmiessler/Fabric)

## 信息来源和分析时间

- **信息来源**：GitHub 仓库 README、文档目录（docs/）及最新 Release 信息。
- **分析时间**：2026年8月29日（基于最新 Release 发布日期）。