这是一个使用 Deno 和 Zypher Agent Framework (@corespeed/zypher) 构建的健壮多智能体自动化系统。
自动化 AI 内容管道,实现:
- 监控 Hugging Face 中文博客 (
https://huggingface.co/blog/zh) 的新文章 - 检查本地状态文件,避免重复处理同一篇文章
- 总结新文章并生成小红书(RedNote)内容
- 使用特定的小红书 MCP 发布笔记
系统包含 4 个专门的智能体:
- 角色: 发现和抓取
- 工具: Firecrawl / Universal Crawler
- 配置: 使用
@modelcontextprotocol/server-firecrawlMCP 服务器
- 角色: 纯 LLM 分析(无需工具)
- 功能: 总结文章内容,聚焦于"是什么"和"为什么重要"
- 角色: 纯 LLM 内容生成(无需工具)
- 功能: 生成小红书风格的文案和图片提示词
- 角色: 上传图片并创建笔记
- 工具: Xiaohongshu (RedNote) MCP
- 配置: 使用
rednote-mcp包
- Deno 2.0+ - 安装 Deno
在 macOS 上,可以使用以下命令安装 Deno:
curl -fsSL https://deno.land/install.sh | sh安装完成后,将 Deno 添加到 PATH(通常会自动添加到 ~/.zshrc 或 ~/.bash_profile):
export PATH="$HOME/.deno/bin:$PATH"或者重新打开终端窗口。
deno add jsr:@corespeed/zypher
deno add npm:rxjs-for-await创建 .env 文件,填入以下 API 密钥:
# Required: Anthropic API Key for LLM
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# Required: Firecrawl API Key for web scraping
FIRECRAWL_API_KEY=your_firecrawl_api_key_here获取 API 密钥:
- ANTHROPIC_API_KEY: 从 Anthropic Console 获取
- FIRECRAWL_API_KEY: 从 Firecrawl 获取
在使用 Publisher Agent 之前,必须先初始化小红书 MCP:
npx rednote-mcp init这将生成必要的 cookies 用于身份验证。
如果需要使用真实的图片(而不是模拟图片),创建 assets 目录:
mkdir -p assets
# 将封面图片放在 assets/cover.jpgdeno task start或者直接运行:
deno run --env-file=.env -A main.ts系统执行以下顺序工作流:
- 初始化: 设置上下文和所有智能体
- 发现: Researcher Agent 访问博客,找到最新文章 URL
- 状态检查: 加载
processed_log.json,比较 URL- 如果已处理:退出(
Deno.exit(0)) - 如果新文章:继续处理
- 如果已处理:退出(
- 抓取: Researcher Agent 抓取文章完整内容
- 分析: Analyst Agent 总结文章
- 创建: Editor Agent 生成文案和图片提示词
- 发布: Publisher Agent 上传图片并创建笔记
- 提交状态: 更新
processed_log.json记录新 URL
corespeed/
├── agents.ts # 智能体工厂函数
├── main.ts # 主工作流逻辑
├── processed_log.json # 状态管理文件(自动生成)
├── deno.json # Deno 配置
├── .env # 环境变量(需自行创建)
└── assets/ # 资源目录(可选)
└── cover.jpg # 封面图片
系统使用 processed_log.json 跟踪已处理的文章:
{
"last_processed_url": "https://huggingface.co/blog/zh/...",
"last_processed_at": "2024-01-01T00:00:00.000Z"
}-
图片处理: 当前使用模拟图片路径 (
./assets/cover.jpg)。如需实际图片生成,请替换getMockImagePath()函数。 -
小红书 MCP: 确保在首次使用前运行
npx rednote-mcp init来配置认证。 -
错误处理: 如果发现 URL 提取失败,系统会输出错误并退出。
-
事件流: 系统会实时输出所有智能体的事件流,便于调试。