跳到正文

AI 智能体 ​

Swanmail 可以调用本地 AI 智能体来增强邮件处理流程。AI 功能完全可选,只有配置了至少一个智能体后才会显示。

智能体能做什么 ​

  • 总结:把长邮件会话浓缩成几点摘要。
  • 翻译:把邮件翻译成另一种语言。
  • 分类与标签:自动给 incoming 邮件分类、打标签。
  • 垃圾评分:标记疑似垃圾邮件。

工作原理 ​

智能体是外部程序(Shell 命令或脚本),接收邮件内容并返回 JSON。Swanmail 通过智能体运行时调用它们,并将结果保存在 SQLite 中。

由于智能体是本地命令,你可以完全控制模型和数据。除非你配置的正是会调用第三方 API 的智能体,否则邮件内容不会发送到外部 API。

配置智能体 ​

  1. 打开 设置 → AI 助手。
  2. 添加一个新智能体:
    • 名称
    • 提供商类型(echo、claude、kimi、codex、pi 或 custom)
    • 命令和可选的参数模板
    • 超时和并发限制
  3. 为一个或多个账号启用该智能体。

测试时可以使用内置的 echo 提供商,它无需调用外部模型即可返回简单响应。

智能体输出格式 ​

智能体应返回符合预期 schema 的 JSON。具体字段取决于任务类型:

json
{
  "category": "Travel",
  "labels": ["Flight", "Booking"],
  "spamScore": 0.1,
  "summary": "Your flight is confirmed for tomorrow.",
  "translation": "..."
}

缺失的字段会被忽略。

LLM API 提供商 ​

除了本地 CLI 智能体,Swanmail 还支持 OpenAI 兼容的 chat completions 端点以及原生的 Anthropic Messages API。这覆盖 OpenAI、Groq 等托管 API,以及 Ollama 等本地服务器。

配置 LLM API 智能体:

  1. 打开 设置 → LLM API。
  2. 选择 OpenAI 或 Anthropic,然后输入所选端点的 API URL。OpenAI 配置使用 ${apiUrl}/chat/completions;Anthropic 配置使用 ${apiUrl}/messages。
    • OpenAI: https://api.openai.com/v1
    • Ollama: http://localhost:11434/v1
  3. 输入 API key。在可用时,它会被 OS 钥匙串加密,且不会暴露给渲染进程。当前配置要求填写非空 key,本地端点也一样。
  4. 输入 模型名称,例如 gpt-4o 或 llama3.2。
  5. 如果 API URL 指向 localhost 或私有 IP(本地 Ollama 必需),请开启允许私有/本地端点。

端点必须返回标准 OpenAI 响应格式:

json
{
  "choices": [{ "message": { "content": "..." } }]
}

所有现有智能体任务(分类、垃圾检查、总结、翻译、自定义过滤、测试)都支持该提供商。

CLI ​

你也可以在命令行测试智能体:

bash
pnpm cli agents test --id <agentId> --prompt "Your prompt here" --json

CLI 还支持 agents list、agents add、agents remove、agents jobs、agents run-filter 和 agents set-account。CLI 智能体配置面向本地命令提供商;OpenAI 或 Anthropic API 智能体请在应用的 AI 智能体设置中配置。