Agno 集成 Claude Agent Skills:让 Agent 一键生成 PPT、Excel、Word 与 PDF
2026/9/10 10:08:45 网站建设 项目流程

Agno 集成 Claude Agent Skills:让 Agent 一键生成 PPT、Excel、Word 与 PDF

【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno

导读

本文基于 Agno 开源仓库中cookbook/90_models/anthropic/skills/README.md及其配套示例,系统讲解如何让基于 Anthropic Claude 模型的 Agno Agent 具备文档生产能力:通过 Claude Agent Skills 的pptxxlsxdocxpdf四项技能,Agent 能够在沙箱中执行代码,直接生成专业级的 PowerPoint、Excel、Word 与 PDF 文件。读完本文,你将掌握技能的原理(progressive disclosure 渐进式披露)、环境准备、直连 API 与 Agno 两种启用方式、多技能组合编排、沙箱文件的下载流程(Anthropic Files API),以及常见故障的排查思路。

适用场景:Agno 框架下构建办公自动化、数据分析报告、商业方案生成、教学课件等文档生成类 Agent。


一、Claude Agent Skills 是什么

Claude Agent Skills 是 Anthropic 为 Claude 模型提供的一组文档创作专项能力,它让 Claude 在执行特定任务时表现更好:

  • PowerPoint(pptx):创建包含幻灯片、版式与格式化效果的专业演示文稿;
  • Excel(xlsx):生成带公式、图表与数据分析能力的电子表格;
  • Word(docx):创建和编辑富格式文档;
  • PDF(pdf):分析并提取 PDF 文档中的信息。

这些技能采用progressive disclosure(渐进式披露)架构:Claude 先「发现」哪些技能与当前任务相关,仅在需要时才加载完整的技能指令,从而把 token 开销控制到最低——这也是它与传统「一次性把所有工具说明塞进 system prompt」方案的关键区别。

在 Agno 中,这一能力被原生接入 Agent 框架:只要给Claude模型传入skills参数,框架会自动完成 beta 参数配置、代码执行工具注入、beta API 客户端切换以及容器(container)配置,开发者无需关心底层细节。


二、环境准备与安装

2.1 前置条件

条件说明
Python 3.8+Agno 与示例脚本的运行环境
Anthropic API Key需具备 Claude 模型访问权限,并开通 skills beta
anthropic直接调用 Anthropic API(文件下载也依赖它)
agnoAgent 框架
python-pptx/openpyxl/python-docx/PyPDF2/pdfplumber可选,仅在沙箱生成文件后需要在本地做文件处理时安装

说明:后一组文档处理库是「可选」的,官方文档特别注明它们只用于「文件在沙箱中生成之后的本地处理」。Agent 本身生成文件靠的是 Anthropic 沙箱里的代码执行环境,不依赖这些本地库。

2.2 安装与密钥配置

# 1. 安装核心包 uv pip install anthropic agno # 2. (可选)安装本地文档处理库 uv pip install python-pptx openpyxl python-docx PyPDF2 pdfplumber

配置 API Key,两种方式任选:

# 方式一:环境变量 export ANTHROPIC_API_KEY="your_api_key_here" # 方式二:项目根目录 .env 文件 # ANTHROPIC_API_KEY=your_api_key_here

⚠️ 安全提醒:永远不要把 API Key 提交进版本控制(如.env文件应加入.gitignore)。


三、快速上手:直连 Anthropic API 使用 Skills

不借助框架时,可以像下面这样直接调用 Anthropic 的 messages API 启用技能。关键点有三个:betas开启 skills beta、container.skills声明技能清单、model选择支持技能和代码执行的 Claude 模型。

import anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-sonnet-4-5-20250929", max_tokens=4096, betas=["skills-2025-10-02"], # 启用 skills beta container={ "skills": [ {"type": "anthropic", "skill_id": "pptx", "version": "latest"}, {"type": "anthropic", "skill_id": "xlsx", "version": "latest"}, {"type": "anthropic", "skill_id": "docx", "version": "latest"}, {"type": "anthropic", "skill_id": "pdf", "version": "latest"}, ] # 一次性启用全部技能 }, messages=[ {"role": "user", "content": "Create a 3-slide PowerPoint about AI trends"} ] )

这段代码演示了完整的「技能发现 → 代码执行 → 生成文件」链路。在实际使用中,生成的文件不会直接出现在响应文本里,而是通过工具结果返回一个file ID,需要另行下载(见第六节)。


四、Agno 原生集成:给 Agent 挂上文档技能

4.1 最小示例:启用单个技能

Agno 的Claude模型类新增了skills参数,直接传入技能字典列表即可:

from agno.agent import Agent from agno.models.anthropic import Claude # 启用 PowerPoint 技能 agent = Agent( model=Claude( id="claude-sonnet-4-5-20250929", skills=[{"type": "anthropic", "skill_id": "pptx", "version": "latest"}] # 启用 PPT 技能 ), instructions=[ "You are a presentation specialist.", "Create professional PowerPoint presentations." ], markdown=True ) agent.print_response("Create a sales presentation with 5 slides")

可用技能清单:pptxxlsxdocxpdf

4.2 同时启用多个技能

model = Claude( id="claude-sonnet-4-5-20250929", skills=[ {"type": "anthropic", "skill_id": "pptx", "version": "latest"}, {"type": "anthropic", "skill_id": "xlsx", "version": "latest"}, {"type": "anthropic", "skill_id": "docx", "version": "latest"}, ] )

4.3 框架自动完成了什么

从源码libs/agno/agno/models/anthropic/claude.py可以看到,当skills参数被设置时,Agno 会在__post_init__阶段调用_setup_skills_configuration()自动完成以下工作:

  • 自动合并必需 beta:向betas数组注入["code-execution-2025-08-25", "skills-2025-10-02"](若已存在则不重复添加),见 claude.py 第 296-314 行;
  • 自动注入代码执行工具:在请求参数中追加{"type": "code_execution_20250825", "name": "code_execution"}工具——文档的生成与处理依赖代码执行能力,见 claude.py 第 685-692 行;
  • 自动设置容器:将container={"skills": self.skills}写入请求参数,见 claude.py 第 588-589 行;
  • 自动切换 beta API 客户端:请求路径会走 beta 接口(is_skills_or_code_execution等判断会匹配self.skills,见 claude.py 第 418 行);
  • 自动解析 file ID:响应解析阶段会从bash_code_execution_tool_result块中提取file_id,写入provider_data["file_ids"],供后续文件下载使用,见 claude.py 第 1096-1110 行。

也就是说,使用 Agno 时你无需手动写betascontainer,只需一行skills=[...]


五、仓库配套示例详解

示例位于cookbook/90_models/anthropic/skills/目录,共四个脚本,覆盖从单技能到多技能的工作流。

5.1agent_with_powerpoint.py:PPT 专家 Agent

在 agent_with_powerpoint.py 中,Agent 被设定为「演示文稿专家」:

powerpoint_agent = Agent( name="PowerPoint Creator", model=Claude( id="claude-sonnet-4-5-20250929", skills=[{"type": "anthropic", "skill_id": "pptx", "version": "latest"}], ), instructions=[ "You are a professional presentation creator with access to PowerPoint skills.", "Create well-structured presentations with clear slides and professional design.", "Keep text concise - no more than 6 bullet points per slide.", ], markdown=True, )

脚本内置了一个 Q4 业务复盘演示文档的完整 prompt(标题页、关键指标、成就、挑战、Q1 目标五页结构),运行后调用agent.run(prompt)生成q4_review.pptx,并演示了如何从response.messages中读取provider_data,配合download_skill_files()下载沙箱文件(细节见第六节)。

适合场景:商务演示文稿生成、市场分析报告、幻灯片设计与排版。

5.2agent_with_excel.py:Excel 数据分析 Agent

agent_with_excel.py 展示了数据技能:Agent 被定义为「数据分析专家」,prompt 要求生成一份 2026 年 1 月销售仪表盘——包含 5 名销售代表的数据表、总收入计算、按人柱状图、配额达成率以及绿色/红色条件格式,最终保存为sales_dashboard.xlsx

适合场景:数据分析与可视化、财务计算、CSV 转 Excel。

5.3agent_with_documents.py:Word 文档 Agent

agent_with_documents.py 演示docx技能:生成一份《移动应用开发项目提案》,包含执行摘要、项目概述、工作范围(12 周时间线)、团队、预算拆分与成功指标六个章节,保存为mobile_app_proposal.docx

适合场景:合同与提案起草、会议纪要、模板化文档生成。

5.4multi_skill_agent.py:多技能编排 Agent

multi_skill_agent.py 一次性启用pptxxlsxdocx三个技能,Agent 扮演「综合商务文档创作者」。示例 prompt 要求一次生成「销售报告包」:一个带总计公式和柱状图的 Excel(sales_report.xlsx)加一份 Word 摘要(sales_summary.docx),并保持两份文件信息一致。

这展示了多技能的编排价值:Excel 数据 → PowerPoint 汇报 → PDF 归档,整套商务工作流可在一个 Agent 会话内完成,且技能采用渐进式披露按需加载。


六、⚠️ 关键点:下载沙箱中生成的文件

技能生成的文件不会自动保存到本地文件系统。这是最容易踩坑的地方。文件生成的完整链路是:

  1. Claude 在沙箱执行环境中创建文件(如.pptx.xlsx);
  2. 工具结果中返回一个file ID
  3. 必须用 Anthropic Files API 单独下载到本地。

6.1 直连 API 的下载方式

import anthropic client = anthropic.Anthropic() # 1. 创建文档(注意带上代码执行工具与两个 beta) response = client.beta.messages.create( model="claude-sonnet-4-5-20250929", max_tokens=4096, betas=["code-execution-2025-08-25", "skills-2025-10-02"], container={"skills": [{"type": "anthropic", "skill_id": "pptx", "version": "latest"}]}, messages=[{"role": "user", "content": "Create a presentation..."}], tools=[{"type": "code_execution_20250825", "name": "code_execution"}] ) # 2. 从工具结果中提取 file ID file_id = None for block in response.content: if block.type == "tool_use" and hasattr(block, "result"): file_id = block.result.get("file_id") # 3. 下载文件 if file_id: file_content = client.beta.files.download(file_id=file_id) with open("presentation.pptx", "wb") as f: f.write(file_content)

6.2 Agno 场景下的下载

使用 Agno 时,file ID 会被框架自动解析进response.messages[*].provider_data。仓库示例使用了一个download_skill_files()辅助函数(provider_data+client+ 默认文件名),以 agent_with_powerpoint.py 为例:

from anthropic import Anthropic from file_download_helper import download_skill_files client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) if response.messages: for msg in response.messages: if hasattr(msg, "provider_data") and msg.provider_data: files = download_skill_files( msg.provider_data, client, default_filename="q4_review.pptx" ) if files: print(f"Downloaded {len(files)} file(s):") for f in files: print(f" - {f}") break

也可以手动遍历provider_data,按源码中_parse_provider_response的逻辑读取file_ids字段(由bash_code_execution_tool_result块解析而来)再调用 Files API 下载。


七、配置参数速查

配置项取值说明
模型(推荐)claude-sonnet-4-5-20250929或更新版本推荐用于 skills
模型(最低)claude-3-5-sonnet-20241022需要具备代码执行能力
betaskills-2025-10-02启用 skills 的 beta 参数(Agno 自动注入)
betacode-execution-2025-08-25代码执行 beta(Agno 自动注入)
container.skills["pptx"]["pptx", "xlsx", "docx", "pdf"]启用单个或全部技能
本地可选库python-pptxopenpyxlpython-docxPyPDF2pdfplumber仅用于沙箱生成后的本地处理

八、性能与使用建议

  • Token 开销:progressive disclosure 使技能按需加载,最大限度降低 token 消耗;
  • 生成耗时:单个文档创建通常需要 10~30 秒,取决于内容复杂度;
  • 文件体积:生成文件一般在 50KB~5MB 之间;
  • 并发:多个文档类型的技能可以并行使用。

典型应用场景:

  • 商务自动化:Excel 数据自动转 PPT 汇报、财务分析与可视化、合同/提案生成、会议纪要;
  • 数据分析:CSV/Excel 可视化、统计图表、数据清洗转换、交互式仪表盘;
  • 文档处理:PDF 文本提取与分析、格式转换、模板化生成、批量处理;
  • 教育领域:课件生成、作业与测验制作、课程材料排版、论文分析。

九、已知限制

  • 文件大小:超过 100MB 的大文档可能触及 token 上限;
  • 复杂排版:部分高级格式化特性可能不受支持;
  • 外部资源:技能无法抓取外部图片或数据源;
  • OCR:PDF 技能聚焦文本提取,不支持扫描件的 OCR 识别。

十、故障排查

现象排查方向
「Skills not available」错误确认betas=["skills-2025-10-02"]是否正确;确认 API Key 有权访问支持 skills 的 Claude 模型;确认账号已开通 skills beta 访问权限
代码执行超时降低文档复杂度或体积;把大任务拆分为多个小任务;尽量使用简单格式
文件未生成检查响应中是否有错误;确认代码执行成功完成;检查沙箱内文件路径与权限

十一、进一步阅读

  • 示例目录:cookbook/90_models/anthropic/skills/(含README.mdTEST_LOG.md及四个示例脚本)
  • Agno 模型层实现:libs/agno/agno/models/anthropic/claude.py(skills参数、beta 合并、代码执行工具注入与 file_id 解析均在_setup_skills_configurationget_request_params_parse_provider_response中实现)
  • 更多 Claude 用法:cookbook/90_models/anthropic/目录下还有code_execution.pybetas.pythinking.pystructured_output.py等示例可对照学习
  • Anthropic 官方文档:Claude Agent Skills 快速入门与 Files API(见 README 中 Additional Resources 一节)

授权说明:该集成遵循与 Agno 框架相同的许可证。

【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询