---
title: 概览
description: 构建 AI 工作流的组件
---

import { Card, Cards } from 'fumadocs-ui/components/card'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Video } from '@/components/ui/video'

模块是您连接在一起以创建 AI 工作流的构建组件。可以将它们视为专门的模块，每个模块都处理特定任务——从与 AI 模型聊天到进行 API 调用或处理数据。

<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
  <Video src="connections.mp4" width={700} height={450} />
</div>

## 核心模块类型

Sim 提供了处理 AI 工作流核心功能的基本模块类型：

### 处理模块
- **[Agent](/blocks/agent)** - 与 AI 模型（OpenAI、Anthropic、Google、本地模型）聊天
- **[Function](/blocks/function)** - 运行自定义 JavaScript/TypeScript 代码
- **[API](/blocks/api)** - 通过 HTTP 请求连接到外部服务

### 逻辑模块
- **[Condition](/blocks/condition)** - 基于布尔表达式分支工作流路径
- **[Router](/blocks/router)** - 使用 AI 智能路由请求到不同路径
- **[Evaluator](/blocks/evaluator)** - 使用 AI 评分并评估内容质量

### 控制流模块
- **[Variables](/blocks/variables)** - 设置和管理工作流范围内的变量
- **[Wait](/blocks/wait)** - 暂停工作流执行指定的时间延迟
- **[Human in the Loop](/blocks/human-in-the-loop)** - 在继续之前暂停以获得人工批准和反馈

### 输出模块
- **[响应](/blocks/response)** - 格式化并返回工作流的最终结果

## 模块的工作原理

每个模块有三个主要组成部分：

**输入**：从其他模块或用户输入接收的数据
**配置**：控制模块行为的设置
**输出**：模块为其他模块生成的数据

<Steps>
  <Step>
    <strong>接收输入</strong>：模块从连接的模块或用户输入接收数据
  </Step>
  <Step>
    <strong>处理</strong>：模块根据其配置处理输入
  </Step>
  <Step>
    <strong>输出结果</strong>：模块生成输出数据供工作流中的下一个模块使用
  </Step>
</Steps>

## 连接模块

通过将模块连接在一起创建工作流。一个模块的输出成为另一个模块的输入：

- **拖动连接**：从输出端口拖动到输入端口
- **多重连接**：一个输出可以连接到多个输入
- **分支路径**：某些模块可以根据条件路由到不同的路径

<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
  <Video src="connections.mp4" width={700} height={450} />
</div>

## 常见模式

### 顺序处理
将模块连接成链，每个模块处理前一个模块的输出：

```
User Input → Agent → Function → Response
```

### 条件分支
使用条件或路由模块创建不同的路径：

```
User Input → Router → Agent A (for questions)
                   → Agent B (for commands)
```

### 质量控制
使用评估模块评估和筛选输出：

```
Agent → Evaluator → Condition → Response (if good)
                              → Agent (retry if bad)
```

## 模块配置

每种模块类型都有特定的配置选项：

**所有模块**：
- 输入/输出连接
- 错误处理行为
- 执行超时设置

**AI 模块**（Agent、Router、Evaluator）：
- 模型选择（OpenAI、Anthropic、Google、本地）
- API 密钥和身份验证
- 温度及其他模型参数
- 系统提示和指令

**逻辑模块**（Condition、Function）：
- 自定义表达式或代码
- 变量引用
- 执行环境设置

**集成模块**（API、Response）：
- 端点配置
- 请求头和身份验证
- 请求/响应格式化

<Cards>
  <Card title="Agent 模块" href="/blocks/agent">
    连接 AI 模型并创建智能响应
  </Card>
  <Card title="Function 模块" href="/blocks/function">
    运行自定义代码以处理和转换数据
  </Card>
  <Card title="API 模块" href="/blocks/api">
    集成外部服务和 API
  </Card>
  <Card title="Condition 模块" href="/blocks/condition">
    基于数据评估创建分支逻辑
  </Card>
  <Card title="Human in the Loop 模块" href="/blocks/human-in-the-loop">
    在继续之前暂停以获得人工批准和反馈
  </Card>
  <Card title="Variables 模块" href="/blocks/variables">
    设置和管理工作流范围内的变量
  </Card>
  <Card title="Wait 模块" href="/blocks/wait">
    暂停工作流执行指定的时间延迟
  </Card>
</Cards>
