AI应用 Agent工作流自动化RPA效率
Agent工作流自动化:从想法到生产力
道
量子道
量子道 · 扫码阅读
微信 · 浏览器扫码
在手机上获得更好的阅读体验
Agent工作流自动化:从想法到生产力
RPA只能处理规则明确的重复劳动。Agent能做的是:处理那些看情况的任务——需要一点判断力,但不值得占用你宝贵的大脑。
Agent自动化的独特价值
RPA vs Agent自动化
| 维度 | 传统RPA | Agent自动化 |
|---|---|---|
| 规则 | 需要精确编程 | 自然语言描述即可 |
| 异常处理 | 遇到意外即报错 | 可以自行判断和处理 |
| 适应性 | UI改动后需重写 | 可以适应一定变化 |
| 判断力 | 零 | |
| 有一定判断力 | ||
| 部署难度 | 高,需专业工程师 | 中,PM也能配置 |
| 成本 | 高(许可证+开发) | 中(API调用费) |
适合Agent自动化的任务特征
✅ 适合 Agent 自动化:
├── 有明确的输入和期望输出
├── 需要一定的模式识别和判断
├── 涉及非结构化数据的处理
├── 多步骤但每步逻辑清晰
└── 对错误有一定容忍度
❌ 不适合 Agent 自动化:
├── 需要100%精确性(如财务结算)
├── 实时性要求极高(毫秒级)
├── 涉及敏感决策(如医疗诊断)
└── 规则非常简单(传统脚本更快更便宜)
实战场景一:智能邮件处理
自动分类、提取、回复建议
import imaplib
import email
from email.header import decode_header
from typing import List, Dict
import json
class EmailAgent:
智能邮件处理Agent
def __init__(self, llm, email_config):
self.llm = llm
self.config = email_config
self.tools = self._create_email_tools()
def process_inbox(self, max_emails=50) -> List[Dict]:
处理收件箱
# 1. 获取未读邮件
emails = self._fetch_unread_emails(max_emails)
results = []
for email_data in emails:
# 2. Agent分析每封邮件
analysis = self._analyze_email(email_data)
# 3. 根据分析结果执行动作
action_result = self._execute_action(email_data, analysis)
results.append({
**analysis,
action_taken: action_result
})
# 4. 生成汇总报告
return results, self._generate_summary(results)
def _analyze_email(self, email_data: dict) -> dict:
Agent分析邮件内容
prompt = f
分析以下邮件,以JSON格式返回:
邮件主题:{email_data[subject]}
发件人:{email_data[from]}
正文:
{email_data[body][:1000]}
返回JSON:
{{
category: 客户咨询/技术问题/会议邀请/广告/紧急事务/其他,
priority: urgent/high/medium/low,
sentiment: positive/neutral/negative/urgent,
requires_response: true/false,
suggested_response_type: 立即回复/24小时内/无需回复/转发他人,
key_points: [要点1, 要点2],
action_items: [需要做的事],
suggested_reply: 如果需回复,建议的回复内容,
should_forward_to: 如果需要转发,建议转给谁(role),
auto_reply_safe: true/false
}}
response = self.llm.invoke(prompt)
return json.loads(response.content)
def _execute_action(self, email_data, analysis):
根据分析结果执行动作
actions = []
# 紧急邮件 → 标记+通知
if analysis[priority] == urgent:
self._mark_as_important(email_data[id])
self._send_notification(email_data, analysis)
actions.append(标记为紧急并通知)
# 可自动回复 → 自动回复
if analysis[auto_reply_safe] and analysis[requires_response]:
self._send_reply(email_data, analysis[suggested_reply])
actions.append(已自动回复)
# 需要转发 → 转发
if analysis.get(should_forward_to):
self._forward_email(email_data, analysis[should_forward_to])
actions.append(f已转发至{analysis[should_forward_to]})
# 分类标记
self._apply_label(email_data[id], analysis[category])
actions.append(f标记为{analysis[category]})
return actions
实战场景二:自动化竞品追踪
构建竞品情报自动收集系统
from apscheduler.schedulers.background import BackgroundScheduler
import hashlib
class CompetitiveIntelligenceAgent:
竞品情报自动追踪Agent
def __init__(self, llm, competitors: List[str], db):
self.llm = llm
self.competitors = competitors
self.db = db
self.scheduler = BackgroundScheduler()
def start_weekly_tracking(self):
启动每周自动追踪
self.scheduler.add_job(
self.run_full_scan,
cron,
day_of_week=mon,
hour=9,
minute=0
)
self.scheduler.start()
def run_full_scan(self) -> dict:
执行完整的竞品扫描
report = {date: datetime.now().isoformat(), competitors: {}}
for competitor in self.competitors:
comp_report = self._scan_competitor(competitor)
# 检测重要变化
significant_changes = self._detect_changes(
competitor,
comp_report,
self.db.get_previous_report(competitor)
)
report[competitors][competitor] = {
**comp_report,
significant_changes: significant_changes
}
# 存储到数据库
self.db.save_report(competitor, report[competitors][competitor])
# 生成可读的周报
readable_report = self._generate_readable_report(report)
self._send_report(readable_report)
return report
def _scan_competitor(self, competitor: str) -> dict:
Agent扫描单个竞品
prompt = f
请对{competitor}进行全面扫描,回答以下问题:
1. 产品变化:上周有何功能更新或变更?
2. 定价变化:价格、套餐、策略有无调整?
3. 市场动态:融资、合作、收购、人事变动?
4. 用户反应:社交媒体和论坛上的讨论情绪?
5. 内容策略:发布的重要文章、案例、白皮书?
请用Google搜索来获取最新信息。对每条信息标注来源。
以JSON格式返回。
return self._run_agent_with_search(prompt)
def _detect_changes(self, competitor, current, previous) -> List[dict]:
检测值得注意的变化
if not previous:
return [{type: new, message: 首次扫描}]
prompt = f
对比{competitor}的前后两次扫描,找出值得注意的变化:
当前扫描:
{json.dumps(current, ensure_ascii=False)[:3000]}
上次扫描:
{json.dumps(previous, ensure_ascii=False)[:3000]}
重点关注:
- 意外的产品变化
- 战略转向的迹象
- 对我们产品的直接威胁
- 可以利用的机会窗口
输出显著变化列表(不超过5条),每条包含:
- change_type: threat/opportunity/signal/neutral
- description: 简洁描述
- recommended_action: 建议我们的应对
response = self.llm.invoke(prompt)
return parse_changes(response.content)
实战场景三:数据分析Agent
从帮我看数据到帮我做分析
class DataAnalysisAgent:
自动数据分析Agent
def __init__(self, llm, db_connection):
self.llm = llm
self.db = db_connection
self.tools = [
self._sql_tool(),
self._visualization_tool(),
self._stats_tool()
]
def answer_question(self, question: str) -> dict:
回答分析问题
agent_prompt = f
你是一个数据分析师,可以查询数据库来分析问题。
数据库Schema:
{self._get_schema_summary()}
用户问题:{question}
请按以下步骤解决:
1. 理解问题,明确分析目标
2. 编写SQL查询数据
3. 分析查询结果
4. 如果有异常或值得深挖的线索,继续查询
5. 生成结论和建议
注意:
- SQL只做SELECT,不做增删改
- 大表查询要加LIMIT
- 对结果保持怀疑——交叉验证关键数字
result = self.agent_executor.invoke({input: agent_prompt})
return {
answer: result[output],
sql_queries: result.get(intermediate_steps, []),
visualization: self._auto_visualize(result)
}
Agent的权限管理
分级权限体系
from enum import Enum
class AgentPermission(Enum):
READ_ONLY = read_only # 只能读取
READ_WRITE = read_write # 可以读写(需确认)
AUTO_EXECUTE = auto_execute # 自动执行(高信任场景)
class PermissionAwareAgent:
带权限控制的Agent
def __init__(self, permission_level=AgentPermission.READ_ONLY):
self.permission = permission_level
self.confirmation_required = []
def execute_action(self, action: dict) -> bool:
执行行动前检查权限
action_risk = self._assess_risk(action)
if action_risk == high and self.permission != AgentPermission.AUTO_EXECUTE:
# 高风险操作:必须人类确认
return self._request_human_approval(action)
elif action_risk == medium and self.permission == AgentPermission.READ_ONLY:
# 中等风险操作:读写模式才执行
return self._request_human_approval(action)
else:
# 低风险或已授权:自动执行
return self._do_execute(action)
def _assess_risk(self, action: dict) -> str:
评估操作风险
HIGH_RISK_KEYWORDS = [delete, drop, send, publish, charge, pay]
MEDIUM_RISK_KEYWORDS = [create, update, modify, schedule]
action_str = str(action).lower()
if any(kw in action_str for kw in HIGH_RISK_KEYWORDS):
return high
if any(kw in action_str for kw in MEDIUM_RISK_KEYWORDS):
return medium
return low
自动化健康监控
关键监控指标
class AgentHealthMonitor:
Agent自动化健康监控
HEALTH_PROMPT =
评估以下Agent运行日志的健康状态:
过去24小时:
- 总任务数:{total_tasks}
- 成功率:{success_rate:.1%}
- 平均耗时:{avg_duration:.1f}s
- Token消耗:{token_usage}
- 被人类拒绝的操作:{rejected_actions}
异常事件:
{anomalies}
请判断:
1. Agent运行是否健康?(healthy/warning/critical)
2. 最值得关注的1-2个问题
3. 建议的调整措施
Agent自动化的终极目标不是替代人类员工,而是让每个人都能拥有一个不知疲倦的助手——处理重复但有判断力要求的任务,让人类把精力集中在真正需要创造力和同理心的事情上。