Skip to main content

概述

本指南演示如何使用深度智能体从零开始构建一个内容写作智能体。 你构建的智能体将:
  1. AGENTS.md 和技能文件夹加载语音和工作流规则
  2. 将网络研究委派给具有 web_search 的专门子智能体
  3. 根据加载的技能撰写博客或社交内容
  4. 使用 Gemini 生成封面或社交图片,并将文件保存在项目目录下
本教程中的代码接入了图像生成工具和文件系统后端,使智能体可以在项目目录下读写帖子、研究笔记和图片。完整可运行的项目请参见 content-builder-agent 示例。

关键概念

本教程涵盖:

前置条件

API 密钥:
  • Anthropic (Claude) 或其他提供商 API 密钥
  • Google (Gemini) 用于 gemini-2.5-flash-image 的图像生成
  • Tavily 用于网络搜索(免费额度)
  • LangSmith 用于追踪(可选)
Python 3.11 或更高版本。

设置

1

创建项目目录

2

安装依赖

在你自己的项目中将 deepagents 固定到支持的范围(例如 >=0.3.5,<0.4.0)以匹配上游示例。
3

设置 API 密钥

添加配置文件

该示例将行为保存在三种文件中:记忆、技能和子智能体定义。
1

添加 AGENTS.md

在项目根目录创建 AGENTS.md。 当你稍后创建智能体并将此文件指定为记忆参数的一部分时,它会被加载到系统提示词中,以便品牌语音和研究要求应用于每次运行。
要使此智能体符合你自己的语气、内容支柱和格式规则,请更新 AGENTS.md 中的文本。
2

添加 subagents.yaml

创建一个名为 subagents.yaml 的文件。 然后添加以下文本,描述一个带有 Tavily 支持的 web_search 工具、Haiku 模型 ID 以及在从主智能体委派时将发现保存到指定路径的指令的 researcher 子智能体:
该文件稍后在创建深度智能体时作为参数传递。
3

添加技能

创建 skills/ 目录。每个技能是一个文件夹,包含一个带有 YAML frontmatter(namedescription)和技能指令的 SKILL.md 文件。创建 skills/blog-post/SKILL.md 并将以下文本复制到其中,该文本包含有关撰写长文章、优化 SEO 内容以及生成封面图片的信息。
接下来,创建 skills/social-media/SKILL.md 并将以下文本复制到其中,该文本包含有关撰写社交媒体帖子和生成配套图片的信息:
它们指导智能体首先调用 researcher 子智能体,将 Markdown 写入 blogs/linkedin/tweets/ 目录下,并调用 generate_covergenerate_social_image 生成图片。当你稍后创建智能体并指定技能文件夹时,这些技能文件夹中 SKILLS.md 文件的 frontmatter 会被加载到系统提示词中,以便智能体在任务匹配技能描述时使用该技能。

构建脚本

在项目根目录创建 content_writer.py。以下各节按顺序属于同一个文件。
1

添加工具

研究者子智能体使用 Tavily 搜索。 博客和社交工作流使用 Gemini 图像生成。 稍后创建智能体时,load_subagents 函数读取 subagents.yaml 并将工具名称解析为这些装饰器函数。
2

创建智能体

使用 create_deep_agent 创建深度智能体时,传入记忆路径、技能目录、图像工具、来自 YAML 的子智能体,以及一个根目录设置在示例目录的 FilesystemBackend,以便 ./AGENTS.md./skills/ 等路径正确解析。
3

添加入口点

使用用户消息调用智能体以验证智能体正在工作:

运行智能体

文件系统后端可以在 root_dir 下读取、写入和删除文件。仅在专用目录中运行,并在发布前审查生成的内容。
从项目目录中,你可以不传递参数或通过传递提示词作为参数来调用智能体:
设置了 LANGSMITH_API_KEY 后,你可以在 LangSmith 中检查运行。

输出

成功后,生成的产物会写入系统临时目录(在 macOS 和 Linux 上,通常在 /tmp/ 下),而不是你的项目文件旁边。
路径遵循 SKILL.md 中的技能指令。

完整代码

在 GitHub 上浏览完整的 content-builder-agent 示例,包括基于 Rich 的流式 UI。

下一步

  • 编辑 AGENTS.md 以更改品牌语音和研究要求
  • skills/<name>/SKILL.md 下添加新内容类型的技能
  • subagents.yaml 中添加子智能体并在 load_subagents 中注册工具
  • 阅读子智能体技能自定义了解更深入的配置