5.7 自动化办公Agent与数据分析Agent开发实战

1 阅读6分钟

5.7 自动化办公Agent与数据分析Agent开发实战

一、自动化办公Agent

1.1 能力

  • 邮件摘要与分类
  • 日程解析与提醒
  • 文档摘要与关键信息提取

1.2 工具设计

  • 邮件API(读取、发送)
  • 日历API
  • 文档解析(PDF、Word)

1.3 实现思路

结合LangChain Agent + 自定义Tools,将邮件、日历等封装为工具,由模型根据用户意图选择调用。


二、数据分析Agent

2.1 能力

  • 自然语言转SQL
  • 数据可视化建议
  • 报告生成

2.2 工具设计

  • 数据库查询工具(执行SQL)
  • 图表生成工具
  • 报告模板

2.3 实现思路

用户输入"上月销售额TOP5",Agent解析为SQL→执行→获取结果→生成图表或报告。


三、自动化办公Agent工具设计

3.1 邮件工具

  • read_emails:根据条件读取邮件,返回摘要列表
  • send_email:发送邮件,参数为收件人、主题、正文
  • search_emails:按关键词搜索

3.2 日历工具

  • get_events:获取某时间段的日程
  • create_event:创建日程
  • reschedule:改期

3.3 实现注意

需对接企业邮箱与日历API(如Microsoft Graph、Google API)。注意OAuth认证与权限范围。


四、数据分析Agent工具设计

4.1 SQL工具

  • 输入:自然语言或结构化查询
  • 内部:将自然语言转SQL(可用LLM),执行并返回结果
  • 安全:只读、限制表范围、避免SQL注入

4.2 图表工具

  • 根据数据与用户意图生成图表类型建议
  • 调用matplotlib/plotly等生成图片
  • 返回图片路径或base64供前端展示

4.3 报告模板

  • 预定义Markdown/Word报告模板
  • 将查询结果填充到模板
  • 支持导出为PDF

五、与《大模型应用开发极简入门》5.4 节的对应

本书第5章「开发AI Agent」中,实战部分明确列举:自动化办公Agent、数据分析Agent、任务调度Agent。本节与之一一对应:自动化办公 Agent 对应邮件摘要与分类、日程解析与提醒、文档摘要与关键信息提取;数据分析 Agent 对应自然语言转 SQL、数据可视化建议、报告生成。书中强调通过 ReAct 框架 + 函数调用与工具集成 实现复杂任务,本节将「工具设计」细化为邮件、日历、SQL、图表、报告等具体工具,便于按书落地。


六、Agent 提示与安全

6.1 系统提示设计

在 Agent 的 system 中明确:可用工具列表与使用场景、禁止越权操作(如仅能读邮件不能删)、输出格式(如先说明调用了哪些工具再给结论)。便于模型正确选择工具并避免误操作。

6.2 权限与审计

邮件、日历、数据库等工具涉及敏感数据。需遵循最小权限(只读/限定表)、操作审计(记录谁在何时调用了什么)、敏感操作二次确认(如发邮件前确认)。

6.3 错误处理

工具调用可能失败(网络、权限、参数错误)。将错误信息返回给模型,由模型向用户解释或重试;同时记录日志便于排查。


八、与 5.6 节 ReAct Agent 的衔接

5.6 节已讲解 ReAct Agent 的创建方式(create_react_agent + AgentExecutor)与工具定义。本节是在此基础上的领域化:将邮件、日历、SQL、图表、报告等封装为 Tool,并设计相应的 system 提示(如「你是企业办公助手,可查邮件、日程与文档摘要」)。实现时可直接复用 5.6 节的 Agent 框架,仅替换 tools 列表与 prompt 即可。书中「自动化办公 Agent、数据分析 Agent、任务调度 Agent」均可按同一模式扩展:定义领域工具 → 写清描述与权限 → 接入 AgentExecutor。


十、任务调度 Agent 的简要说明(书 5.4)

书中 5.4 节还提到任务调度 Agent:可根据自然语言描述安排、查询或修改任务(如「明天下午三点提醒我开会」)。实现思路与办公、数据分析 Agent 一致:将日历、待办、提醒等封装为 Tool(如 create_reminder、list_tasks、update_task),在 system 中说明「你是任务调度助手,可创建提醒、列出待办、修改任务」,由 Agent 根据用户意图选择工具与参数。数据源可以是本地待办、Google Calendar、飞书等,通过对应 API 封装为 LangChain Tool 即可。本节未展开代码,但架构与 5.6、5.7 的 Agent 完全一致,可作为第三个实战方向自行扩展。


九、小结

自动化办公与数据分析是书中 Agent 实战的典型应用。通过合理设计工具与提示,可构建实用的智能助手。第五章完结,下一章将介绍生产级部署与综合实战。


十一、与 6.3 智能客服、6.4 数据分析师 Agent 的衔接

6.3 节智能客服:智能客服同样采用「对话 + RAG + 工具 + 人工转接」,与本节办公/数据分析 Agent 的架构一致;差异在于工具集(客服为订单、工单、转人工等)。6.4 节企业数据分析师 Agent:即本节「数据分析 Agent」的完整案例,包含数据查询、可视化与报告生成。按本节工具设计与 5.6 的 ReAct 框架实现后,即可在第六章综合案例中复用为客服或数据分析师 Agent。书中第 5 章 Agent 与第 6 章综合运用的衔接点即在于:本节是领域化工具与提示设计,第 6 章是端到端系统与部署。


十二、小结(复述)

自动化办公 Agent(邮件、日历、文档)与数据分析 Agent(SQL、图表、报告)对应书中 5.4 节实战;任务调度 Agent 可按同一模式扩展。结合 5.6 ReAct 与 5.3 Memory/Tools,即可从零搭建可用的领域 Agent,并为第 6 章综合案例提供组件基础。


十三、自动化办公 Agent 的完整工具列表示例

工具名输入输出说明
read_emails条件(如未读、发件人)邮件摘要列表对接邮箱 API
send_email收件人、主题、正文发送状态需二次确认
get_events日期范围日程列表对接日历 API
create_event标题、时间、参与人创建结果需权限控制
summarize_doc文档路径或内容摘要文本可调用 LLM 或 RAG

每个工具需在 LangChain Tool 的 description 中写清「何时用、输入格式、输出含义」,便于 Agent 正确选择。与 5.6 节工具定义一致,仅将 func 实现为对邮件、日历、文档等 API 的封装。


十四、数据分析 Agent 的 SQL 安全与 schema 注入

execute_sql 工具必须做白名单表、只读、参数化等限制;get_schema 返回允许访问的表与列,供模型生成 SQL 时参考。在 system 中明确「仅可根据 get_schema 返回的结构生成 SELECT;禁止 DELETE/UPDATE/DROP」;对用户输入做关键词过滤,避免注入。与 6.4 节企业数据分析师 Agent 的安全要求一致,实现时可复用 6.4 的 get_schema 与自然语言转 SQL 的提示设计。


第五章完结。下一章:第六章 生产级部署与综合实战