
social-media-agent
自动找素材写帖子,人工点一下就能排期发布
social-media-agent 是一个用 TypeScript 编写的开源社交媒体自动化代理,目标是帮内容创作者和运营者完成从选题、素材搜集、内容策划到定时发布的全流程。它通过代理自动从多个来源抓取潜在素材,按主题或人设进行筛选和改写,生成可发布的帖子草稿,并支持按时间表排队发布。项目最大的特点是 human-in-the-loop:在关键节点(如内容审核、发布确认)保留人工介入,避免全自动发布带来的风险。它适合需要持续维护多个社交账号、但又不想完全放手给机器的人群,把重复劳动交给代理,把判断权留给人。技术栈基于 TypeScript,便于前端或 Node.js 开发者二次开发和集成。
项目数据
使用教程
环境要求
- Node.js 环境与 yarn 包管理器
- Python 环境(用于 pip 安装 langgraph-cli)
- Anthropic API Key(通用 LLM)
- LangSmith API Key(本地运行 LangGraph Server 所需,免费)
- FireCrawl API Key(网页抓取)与 Arcade API Key(社交平台授权)
安装与启动步骤
-
1安装项目依赖
在克隆好的项目目录下执行 yarn install,安装 TypeScript 项目所需的全部依赖。
yarn install -
2安装 LangGraph CLI
LangGraph 服务需要通过官方 CLI 启动,使用 pip 安装该命令行工具。
pip install langgraph-cli -
3检查 CLI 是否可用
执行版本命令确认 LangGraph CLI 安装成功,若报错说明 PATH 或 Python 环境有问题。
langgraph --version -
4填写环境变量
在项目根目录 .env 中填入各平台密钥:Anthropic、LangSmith、FireCrawl、Arcade,以及 TWITTER_USER_ID、LINKEDIN_USER_ID、USE_ARCADE_AUTH。
-
5启动 LangGraph 服务
按 README 的 Start the LangGraph Server 小节启动本地服务;LangSmith API Key 必须有,否则服务无法在本地运行。
-
6授权社交账号
使用自建 Twitter 应用时运行授权服务,浏览器打开 http://localhost:3000 点击 Login with Twitter,把终端输出的 token 与 tokenSecret 写回 .env。
yarn start:auth
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
ARCADE_API_KEY | 是 | Arcade 平台密钥,用于社交平台读写的快速授权 | arcade_xxxxxxxx |
USE_ARCADE_AUTH | 是 | 设为 true 时走 Arcade 授权流程 | true |
TWITTER_USER_ID | 否 | 用于发推的 Twitter 账号 ID 或邮箱 | your@email.com |
LINKEDIN_USER_ID | 否 | 用于发帖的 LinkedIn 账号 ID 或邮箱 | your@email.com |
TWITTER_API_KEY | 否 | 自建 Twitter 应用时使用,另需配套 Secret 与 Bearer Token | xxxxxxxxxxxxxxxx |
LINKEDIN_ORGANIZATION_ID | 否 | 以公司主页身份发帖时填组织 ID,可从主页 URL 中获取 | 12345678 |
如何确认成功
执行 langgraph --version 能正常输出版本号;若使用自建 Twitter 应用,浏览器可打开 http://localhost:3000 并完成 Twitter 授权登录。
常见问题
Q:基础模式和完整模式有什么区别?
A:基础模式最快跑通,但不支持解析 GitHub、Twitter、YouTube 链接,不接入 Slack,也没有图片选择与上传功能;需要这些能力要走完整配置。
Q:Arcade 授权和自建开发者账号能同时用吗?
A:不能。README 明确说明两种授权方式二选一,要么用 Arcade,要么用自己的 Twitter 和 LinkedIn 开发者账号。
Q:为什么一定要 LangSmith API Key?
A:README 说明在本地运行 LangGraph Server 必须提供 LangSmith API Key,该 Key 免费注册即可获取。
Q:怎么把内容发到 LinkedIn 公司主页?
A:需启用 Advertising API 产品、公司主页验证应用,并在 .env 中设置 POST_TO_LINKEDIN_ORGANIZATION 为 true,或在调用 generate_post 时用配置项传入。
注意事项
- Twitter 应用的回调地址必须设置为 http://localhost:3000/auth/twitter/callback,LinkedIn 为 http://localhost:3000/auth/linkedin/callback。
- 完整模式需要 Anthropic、Google Vertex AI、LangSmith、FireCrawl、Arcade 以及 Twitter、LinkedIn、GitHub、Supabase 等多个账号,建议先用基础模式跑通。
- 发帖到 LinkedIn 公司主页需要个人账号具备 ADMINISTRATOR、DIRECT_SPONSORED_CONTENT_POSTER 或 RECRUITING_POSTER 角色,并需提交表单等待审核。
- README 的 Quickstart 与 Advanced Setup 共用同一套安装命令,区别只在所需账号与功能范围。
核心亮点
- 支持 human-in-the-loop,关键步骤可人工审核,降低误发风险
- 覆盖从素材来源、内容策划到定时发布的完整工作流,不是单点工具
- TypeScript 编写,方便开发者扩展自定义数据源和发布渠道
不足之处
- 项目仍在成长阶段,文档和示例可能不够完善
- 依赖第三方社交平台接口,平台政策变化可能影响可用性
适用场景
- 个人创作者管理多个社交账号,批量生成并排期内容
- 小团队运营品牌账号,人工审核后自动发布
- 内容营销人员收集行业素材,快速产出草稿并安排发布
替代项目
Postiz、Mixpost
项目介绍
上一篇:dsh-bridge
下一篇:data-enrichment
同类项目推荐
n8n
开源
拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。
Fair-code workflow automation platform with native AI capabilities. Combine visual b···
robotcode
开源
让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。
Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···
puppeteer
开源
用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。
JavaScript API for Chrome and Firefox
customermates
开源
比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。
Building a modern alternative to Pipedrive that is 10x more intuitive.