概述

本指南演示如何使用 Deep Agents 从零开始构建一个内容编写智能代理。 你构建的代理将能够:
  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 用于追踪(可选)
Node.js 18 或更高版本。

设置

1

创建项目目录

2

安装依赖项

添加 tsx 以运行 content_writer.ts。--input-type=module 标志仅适用于 --eval、--print 或 stdin,不适用于脚本文件路径。安装 @langchain/anthropic,以便 LangChain 可以加载 createDeepAgent 使用的默认 Claude 模型。
3

设置 API 密钥

添加配置文件

示例将行为保存在三类文件中:记忆、技能和子代理定义。
1

添加 AGENTS.md

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

添加技能

创建一个 skills/ 目录。每个技能是一个文件夹,其中包含一个 SKILL.md 文件,该文件带有 YAML 前置信息(name、description)和技能说明。创建 skills/blog-post/SKILL.md 并将以下文本复制进去,其中包含关于创建长文帖子、为 SEO 优化内容以及生成封面图片的信息。
接下来,创建 skills/social-media/SKILL.md 并将以下文本复制进去,其中包含关于起草社交媒体帖子和生成配图的信息:
这些指示要求代理首先调用 researcher 子代理,在 blogs/、linkedin/ 或 tweets/ 下写入 markdown,并为图片调用 generate_cover 或 generate_social_image。当你稍后创建代理并指定技能文件夹时,这些技能文件夹中 SKILLS.md 文件的前置信息将被加载到系统提示词中,以便当任务匹配技能描述时,代理可以使用该技能。

构建脚本

在项目根目录创建 content_writer.ts。以下部分应按顺序放在同一个文件中。
1

添加工具

researcher 使用 Tavily 搜索。博客和社交工作流使用 Google Generative AI SDK 进行图像生成。
2

创建代理

使用 createDeepAgent 创建深度代理时,传递记忆路径、技能目录、图像工具、一个内联子代理定义,以及一个以示例目录为根目录的 FilesystemBackend,以便 ./AGENTS.md 和 ./skills/ 等路径能正确解析。
3

添加入口点

运行代理

文件系统后端可以读取、写入和删除 root_dir 下的文件。请仅在专用目录中运行,并在发布前审查生成的内容。
在项目目录中:
传递提示作为额外参数:
设置了 LANGSMITH_API_KEY 后,你可以在 LangSmith 中检查运行记录。

输出

成功时,代理会将生成物写入项目根目录(示例目录)下,例如:
路径遵循 SKILL.md 中的技能说明。

完整代码

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

后续步骤

  • 编辑 AGENTS.md 以更改品牌语调和研究要求
  • 在 skills/<name>/SKILL.md 下添加技能以支持新的内容类型
  • 在 subagents.yaml 中添加子代理,并在 load_subagents 中注册工具
  • 阅读 子代理、技能 和 自定义 以进行更深入的配置