# 配置指南

## 环境变量配置 (.env)

在项目根目录创建 `.env` 文件：

    # AI Provider: minimax, deepseek, openai, anthropic 等
    FOLIKO_PROVIDER=minimax

    # AI Model（可选，不填则使用 provider 默认值）
    # MiniMax: MiniMax-M2.7
    # DeepSeek: deepseek-chat, deepseek-coder 等
    FOLIKO_MODEL=

    # API Base URL（可选，不填则使用 provider 默认值）
    # MiniMax: https://api.minimaxi.com/v1
    # DeepSeek: https://api.deepseek.com/v1
    FOLIKO_BASE_URL=

    # API Key（通用，不填则使用 provider 专用 key）
    FOLIKO_API_KEY=

    # Provider 专用 API Key（可选）
    DEEPSEEK_API_KEY=sk-your-deepseek-api-key
    MINIMAX_API_KEY=sk-your-minimax-api-key

配置优先级：命令行参数 > .env配置 > provider默认值

## 目录结构

在项目根目录创建 `.agent` 目录：

    项目目录/
    └── .agent/
        ├── config              # 配置文件
        ├── ai.json            # AI 配置
        ├── mcp_config.json    # MCP 服务器配置
        ├── plugins/           # 用户插件
        ├── skills/            # 用户技能
        └── data/             # 数据目录

## config 文件

简单的 key=value 格式配置：

    ai_key: your-api-key
    ai_model: MiniMax-M2.7
    ai_provider: minimax
    ai_base_url: https://api.minimaxi.com/v1

## ai.json

JSON 格式的 AI 配置：

    {
      "provider": "minimax",
      "model": "MiniMax-M2.7",
      "apiKey": "your-api-key",
      "baseURL": "https://api.minimaxi.com/v1"
    }

## mcp_config.json

MCP 服务器配置：

    {
      "mcpServers": {
        "fetch": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-fetch"]
        },
        "filesystem": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
        }
      }
    }

## CLI 参数

命令行参数会覆盖 .env 配置：

参数 | 说明 | 示例
--- | --- | ---
`--provider` | 指定 AI 提供商 | `deepseek`, `minimax`
`--model` | 指定 AI 模型 | `deepseek-chat`, `MiniMax-M2.7`
`--base-url` | 指定 API 地址 | `https://api.deepseek.com/v1`
`--api-key` | 指定 API 密钥 | `sk-xxx`

### 使用示例

    # 使用 .env 中的配置
    npm run chat

    # 指定完整配置
    foliko chat --provider deepseek --model deepseek-chat --base-url https://api.deepseek.com/v1 --api-key sk-xxx

    # 只指定 provider（使用 provider 默认 model 和 baseURL）
    foliko chat --provider deepseek --api-key sk-xxx

    # 只指定 api-key（使用 FOLIKO_PROVIDER 设定的 provider）
    foliko chat --api-key sk-xxx

## 插件配置

### Telegram 插件

    {
      "telegram": {
        "botToken": "your-bot-token",
        "allowedChats": ["123456789"],
        "groupMode": false,
        "prefix": "/"
      }
    }

配置项 | 说明 | 默认值
--- | --- | ---
botToken | Telegram Bot Token | TELEGRAM_BOT_TOKEN 环境变量
allowedChats | 允许的聊天 ID 数组 | [] (允许所有人)
groupMode | 是否启用群组模式 | false
prefix | 命令前缀 | /

### WeChat 插件

    {
      "weixin": {
        "forceLogin": false,
        "qrcodeTerminal": true,
        "allowedUsers": []
      }
    }

配置项 | 说明 | 默认值
--- | --- | ---
forceLogin | 强制重新扫码登录 | false
qrcodeTerminal | 终端渲染二维码 | true
allowedUsers | 允许的用户 ID 数组 | [] (允许所有人)

### Session 插件

    {
      "session": {
        "sessionTTL": 1800000,
        "maxSessions": 100,
        "maxHistoryLength": 50,
        "autoCleanup": true,
        "cleanupInterval": 300000
      }
    }

配置项 | 说明 | 默认值
--- | --- | ---
sessionTTL | 会话过期时间(毫秒) | 30分钟
maxSessions | 最大会话数 | 100
maxHistoryLength | 最大历史消息数 | 50
autoCleanup | 自动清理过期会话 | true
cleanupInterval | 清理检查间隔(毫秒) | 5分钟

### Storage 插件

    {
      "storage": {
        "type": "json",
        "path": ".agent/data",
        "namespace": "default"
      }
    }

配置项 | 说明 | 默认值
--- | --- | ---
type | 存储类型 (json/memory) | json
path | 存储文件路径 | .agent/data
namespace | 命名空间 | default

### Scheduler 插件

    {
      "scheduler": {
        "checkInterval": 1000
      }
    }

配置项 | 说明 | 默认值
--- | --- | ---
checkInterval | 任务检查间隔(毫秒) | 1000

### Email 插件

通过环境变量配置：

    # SMTP 配置 (发送邮件)
    SMTP_HOST=smtp.gmail.com
    SMTP_PORT=587
    SMTP_SECURE=false
    SMTP_USER=your-email@gmail.com
    SMTP_PASS=your-app-password

    # IMAP 配置 (读取邮件)
    IMAP_HOST=imap.gmail.com
    IMAP_PORT=993
    IMAP_USER=your-email@gmail.com
    IMAP_PASS=your-app-password

    # 默认发件人
    FROM_EMAIL=your-email@gmail.com

### MCP 配置

在 `.agent/mcp_config.json` 中配置 MCP 服务器：

    {
      "mcpServers": {
        "fetch": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-fetch"]
        },
        "filesystem": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
        }
      }
    }