智能体工作流指南:让 AI 自动处理日常任务

一、什么是 AI 智能体工作流?

AI 智能体(Agent) 不是简单的聊天机器人,而是能够:

  • 感知环境(读取邮件、日历、文件等)
  • 自主决策(判断优先级、选择行动)
  • 执行任务(发送邮件、创建日程、整理文件)
  • 持续学习(从反馈中优化行为)

智能体工作流 = 多个智能体协作完成复杂任务

二、为什么需要智能体工作流?

2.1 日常任务痛点

任务类型 耗时/天 痛点
邮件处理 1-2 小时 分类、回复、跟进
日程安排 30 分钟 协调时间、避免冲突
文档整理 30 分钟 命名、归档、检索
信息收集 1 小时 搜索、筛选、总结
会议准备 30 分钟 资料整理、议程制定

合计: 每天 3-4 小时重复性工作

2.2 智能体解决方案

  • 邮件智能体 - 自动分类、优先回复、生成草稿
  • 日程智能体 - 智能安排、冲突检测、提醒优化
  • 文档智能体 - 自动命名、分类归档、智能检索
  • 研究智能体 - 信息收集、内容总结、趋势分析

三、搭建你的第一个智能体

3.1 技术选型

推荐工具栈:

  • 编排框架: LangChain、LlamaIndex、OpenClaw
  • 大模型: GPT-4、Claude、通义千问
  • 执行环境: Node.js、Python
  • 存储: SQLite、Redis(缓存)

3.2 邮件分类智能体

功能: 自动读取邮件,分类到不同文件夹,生成回复草稿

实现代码(Node.js):

// agents/email-agent.js
const { OpenAI } = require('openai');
const imap = require('imap');

class EmailAgent {
  constructor(config) {
    this.openai = new OpenAI({ apiKey: config.openaiKey });
    this.imapConfig = config.imap;
  }

  /**
   * 连接邮箱
   */
  async connect() {
    return new Promise((resolve, reject) => {
      this.imapClient = new imap(this.imapConfig);
      
      this.imapClient.once('ready', () => {
        console.log('邮箱连接成功');
        resolve();
      });
      
      this.imapClient.once('error', reject);
      this.imapClient.connect();
    });
  }

  /**
   * 获取未读邮件
   */
  async getUnreadEmails() {
    return new Promise((resolve, reject) => {
      this.imapClient.openBox('INBOX', false, (err, box) => {
        if (err) return reject(err);
        
        this.imapClient.search(['UNSEEN'], (err, results) => {
          if (err) return reject(err);
          
          if (!results.length) {
            return resolve([]);
          }
          
          const fetch = this.imapClient.fetch(results, {
            bodies: '',
            struct: true,
          });
          
          const emails = [];
          
          fetch.on('message', (msg) => {
            msg.on('body', (stream) => {
              let buffer = '';
              stream.on('data', chunk => buffer += chunk);
              stream.once('end', () => {
                const email = this.parseEmail(buffer);
                emails.push(email);
              });
            });
          });
          
          fetch.once('end', () => resolve(emails));
        });
      });
    });
  }

  /**
   * 使用 AI 分类邮件
   */
  async classifyEmail(email) {
    const response = await this.openai.chat.completions.create({
      model: 'gpt-4',
      messages: [
        {
          role: 'system',
          content: `你是一个邮件分类助手。请将邮件分类到以下类别之一:
          - urgent: 紧急,需要立即处理
          - important: 重要,今天内处理
          - normal: 普通,本周内处理
          - newsletter: 订阅通讯,有空再看
          - spam: 垃圾邮件,可删除
          
          输出 JSON 格式:
          {
            "category": "类别",
            "priority": 1-10,
            "summary": "一句话摘要",
            "suggestedAction": "建议操作",
            "draftReply": "回复草稿(如需要)"
          }`
        },
        {
          role: 'user',
          content: `发件人:${email.from}
主题:${email.subject}
正文:${email.body}`
        }
      ],
      response_format: { type: 'json_object' },
    });
    
    return JSON.parse(response.choices[0].message.content);
  }

  /**
   * 移动邮件到对应文件夹
   */
  async moveEmail(emailId, category) {
    const folderMap = {
      urgent: 'INBOX/Urgent',
      important: 'INBOX/Important',
      normal: 'INBOX/Normal',
      newsletter: 'INBOX/Newsletters',
      spam: 'INBOX/Spam',
    };
    
    return new Promise((resolve, reject) => {
      this.imapClient.move(emailId, folderMap[category], (err) => {
        if (err) return reject(err);
        resolve();
      });
    });
  }

  /**
   * 主处理流程
   */
  async processEmails() {
    await this.connect();
    const emails = await this.getUnreadEmails();
    
    console.log(`发现 ${emails.length} 封未读邮件`);
    
    for (const email of emails) {
      try {
        // AI 分类
        const classification = await this.classifyEmail(email);
        
        console.log(`\n邮件:${email.subject}`);
        console.log(`分类:${classification.category}`);
        console.log(`优先级:${classification.priority}/10`);
        console.log(`摘要:${classification.summary}`);
        
        if (classification.draftReply) {
          console.log(`回复草稿:${classification.draftReply}`);
        }
        
        // 移动邮件
        await this.moveEmail(email.uid, classification.category);
        
        // 如果是紧急邮件,发送通知
        if (classification.category === 'urgent') {
          await this.sendNotification(email, classification);
        }
        
      } catch (error) {
        console.error(`处理邮件失败:${error.message}`);
      }
    }
    
    this.imapClient.end();
  }

  async sendNotification(email, classification) {
    // 实现通知逻辑(短信、Slack、微信等)
    console.log(`🚨 紧急邮件通知:${email.subject}`);
  }

  parseEmail(raw) {
    // 实现邮件解析逻辑
    return { uid: 1, from: 'test@example.com', subject: 'Test', body: 'Test body' };
  }
}

// 使用示例
const agent = new EmailAgent({
  openaiKey: process.env.OPENAI_API_KEY,
  imap: {
    user: process.env.EMAIL_USER,
    password: process.env.EMAIL_PASSWORD,
    host: 'imap.gmail.com',
    port: 993,
    tls: true,
  },
});

agent.processEmails();

3.3 定时执行

使用 cron 定时运行智能体:

# 编辑 crontab
crontab -e

# 每 30 分钟检查一次邮件
*/30 * * * * cd /path/to/project && node agents/email-agent.js >> logs/email-agent.log 2>&1

四、多智能体协作系统

4.1 系统架构

┌─────────────────────────────────────────────────────┐
│                  智能体编排层                          │
│  (OpenClaw / LangChain)                             │
└─────────────────────────────────────────────────────┘
         │              │              │
         ▼              ▼              ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│  邮件智能体  │ │  日程智能体  │ │  文档智能体  │
│  Email Agent│ │ Calendar    │ │ Document    │
│             │ │ Agent       │ │ Agent       │
└─────────────┘ └─────────────┘ └─────────────┘
         │              │              │
         ▼              ▼              ▼
┌─────────────────────────────────────────────────────┐
│                  共享记忆层                            │
│         (SQLite + Redis 缓存)                        │
└─────────────────────────────────────────────────────┘

4.2 智能体间通信

// agents/orchestrator.js
class AgentOrchestrator {
  constructor() {
    this.agents = {
      email: new EmailAgent(config),
      calendar: new CalendarAgent(config),
      document: new DocumentAgent(config),
    };
    
    this.memory = new SharedMemory();
  }

  /**
   * 处理复杂任务:会议准备
   */
  async prepareMeeting(meetingId) {
    // 1. 从邮件获取会议信息
    const meetingEmail = await this.agents.email.findMeetingEmail(meetingId);
    
    // 2. 检查参与者日程
    const participants = meetingEmail.participants;
    const availability = await this.agents.calendar.checkAvailability(
      participants,
      meetingEmail.proposedTime
    );
    
    // 3. 收集相关资料
    const documents = await this.agents.document.searchRelated(
      meetingEmail.topic,
      meetingEmail.participants
    );
    
    // 4. 生成会议准备包
    const prepPackage = {
      agenda: this.generateAgenda(meetingEmail),
      participants: availability,
      documents: documents,
      background: await this.researchBackground(meetingEmail.topic),
    };
    
    // 5. 发送邮件提醒
    await this.agents.email.sendMeetingReminder(prepPackage);
    
    return prepPackage;
  }

  async researchBackground(topic) {
    // 调用研究智能体
    const researchAgent = new ResearchAgent();
    return await researchAgent.research(topic);
  }

  generateAgenda(meetingEmail) {
    // 使用 AI 生成议程
    return `会议议程:\n1. ...\n2. ...`;
  }
}

4.3 共享记忆实现

// memory/shared-memory.js
const sqlite3 = require('sqlite3').verbose();
const Redis = require('ioredis');

class SharedMemory {
  constructor() {
    this.db = new sqlite3.Database('agent-memory.db');
    this.cache = new Redis();
    this.initDB();
  }

  initDB() {
    this.db.serialize(() => {
      this.db.run(`
        CREATE TABLE IF NOT EXISTS events (
          id INTEGER PRIMARY KEY,
          agent TEXT,
          event_type TEXT,
          data TEXT,
          timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
        )
      `);
      
      this.db.run(`
        CREATE TABLE IF NOT EXISTS preferences (
          user_id TEXT,
          key TEXT,
          value TEXT,
          PRIMARY KEY (user_id, key)
        )
      `);
    });
  }

  async remember(agent, eventType, data) {
    // 写入数据库
    await this.db.run(
      'INSERT INTO events (agent, event_type, data) VALUES (?, ?, ?)',
      [agent, eventType, JSON.stringify(data)]
    );
    
    // 更新缓存
    const cacheKey = `agent:${agent}:${eventType}`;
    await this.cache.set(cacheKey, JSON.stringify(data), 'EX', 3600);
  }

  async recall(agent, eventType) {
    // 先查缓存
    const cached = await this.cache.get(`agent:${agent}:${eventType}`);
    if (cached) {
      return JSON.parse(cached);
    }
    
    // 再查数据库
    return new Promise((resolve, reject) => {
      this.db.get(
        'SELECT data FROM events WHERE agent = ? AND event_type = ? ORDER BY timestamp DESC LIMIT 1',
        [agent, eventType],
        (err, row) => {
          if (err) reject(err);
          else resolve(row ? JSON.parse(row.data) : null);
        }
      );
    });
  }

  async getPreferences(userId) {
    return new Promise((resolve, reject) => {
      this.db.all(
        'SELECT key, value FROM preferences WHERE user_id = ?',
        [userId],
        (err, rows) => {
          if (err) reject(err);
          else {
            const prefs = {};
            rows.forEach(row => prefs[row.key] = JSON.parse(row.value));
            resolve(prefs);
          }
        }
      );
    });
  }

  async setPreference(userId, key, value) {
    await this.db.run(
      'INSERT OR REPLACE INTO preferences (user_id, key, value) VALUES (?, ?, ?)',
      [userId, key, JSON.stringify(value)]
    );
  }
}

五、实战场景

5.1 场景 1:智能邮件处理

需求: 每天自动处理 100+ 封工作邮件

工作流:

1. 每 30 分钟检查新邮件
2. AI 分类(紧急/重要/普通/订阅/垃圾)
3. 紧急邮件 → 立即通知 + 移动文件夹
4. 重要邮件 → 生成回复草稿
5. 订阅邮件 → 周末汇总发送
6. 垃圾邮件 → 自动删除

效果:

  • 邮件处理时间:2 小时 → 15 分钟
  • 紧急邮件响应:平均 30 分钟 → 即时
  • 邮件遗漏率:5% → 0%

5.2 场景 2:会议自动化

需求: 每周 10+ 场会议,准备和跟进耗时

工作流:

会前(提前 1 小时):
1. 读取会议邀请邮件
2. 检查参与者日程冲突
3. 收集相关文档和背景资料
4. 生成会议议程和准备包
5. 发送提醒给所有参与者

会后(会议结束后):
1. 整理会议记录
2. 提取行动项(Action Items)
3. 分配责任人
4. 创建跟进任务
5. 更新项目文档

效果:

  • 会议准备时间:30 分钟/场 → 5 分钟/场
  • 行动项遗漏:20% → 0%
  • 跟进效率:提升 3 倍

5.3 场景 3:文档自动整理

需求: 每天产生大量文档,难以管理

工作流:

1. 监控下载文件夹
2. 新文件出现时:
   - AI 分析内容
   - 提取关键词
   - 判断文档类型(合同/报告/发票/...)
   - 生成标准文件名
   - 移动到对应文件夹
   - 更新索引数据库
3. 每周五生成文档周报

效果:

  • 文档整理时间:30 分钟/天 → 0
  • 文档检索时间:5 分钟 → 30 秒
  • 文件命名规范性:60% → 100%

六、OpenClaw 智能体示例

使用 OpenClaw 搭建智能体更简单:

// openclaw-agent.js
const { OpenClaw } = require('openclaw');

const agent = new OpenClaw({
  name: 'daily-assistant',
  model: 'gpt-4',
});

// 定义技能
agent.addSkill({
  name: 'process-emails',
  description: '处理未读邮件并分类',
  trigger: '每 30 分钟',
  action: async () => {
    const emails = await agent.tools.email.getUnread();
    for (const email of emails) {
      const classification = await agent.ai.classify(email);
      await agent.tools.email.move(email.id, classification.folder);
    }
  },
});

agent.addSkill({
  name: 'daily-summary',
  description: '生成每日工作总结',
  trigger: '每天 18:00',
  action: async () => {
    const emails = await agent.tools.email.getToday();
    const meetings = await agent.tools.calendar.getToday();
    const documents = await agent.tools.docs.getToday();
    
    const summary = await agent.ai.summarize({
      emails, meetings, documents
    });
    
    await agent.tools.message.send(summary);
  },
});

// 启动智能体
agent.start();

七、最佳实践

7.1 智能体设计原则

  1. 单一职责 - 每个智能体只做一件事
  2. 可观测性 - 记录所有决策和行动
  3. 容错处理 - 失败时优雅降级
  4. 人工介入 - 关键决策需要确认
  5. 持续学习 - 从反馈中优化

7.2 安全注意事项

  • 权限最小化 - 只给必要的 API 权限
  • 敏感数据加密 - 密码、密钥加密存储
  • 审计日志 - 记录所有操作
  • 人工确认 - 删除、发送等操作需确认

7.3 成本控制

优化策略 效果
缓存 AI 响应 减少 40% 调用
批量处理 减少 30% 调用
使用小模型处理简单任务 减少 50% 成本
设置调用频率限制 避免意外支出

八、总结

搭建 AI 智能体工作流的核心价值:

  1. 时间释放 - 每天节省 2-3 小时重复工作
  2. 质量提升 - 减少人为疏漏
  3. 可扩展性 - 工作量增加不增加人力
  4. 持续优化 - 智能体越用越聪明

开始建议:

  • 从最简单的场景开始(如邮件分类)
  • 逐步增加复杂度
  • 重视反馈和迭代
  • 保持人工监督

未来展望:

  • 多智能体自主协作
  • 跨应用工作流
  • 个性化学习能力
  • 预测性任务处理

现在就开始搭建你的第一个 AI 智能体吧!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐