X Developers 官方发布了一份 Hermes Agent 与 X API 的完整集成指南。核心命题:让开源终端 Agent 通过自然语言读写 X。
技术栈
| 组件 | 作用 |
|---|---|
| Hermes | Nous Research 开源终端 Agent |
| xurl | X API 的独立 CLI 工具 |
| xAI Grok OAuth | 模型提供商(需 SuperGrok 订阅) |
| X Developer App | OAuth 2.0 凭证 |
安装流程
1. 安装 Hermes
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
2. 配置 Hermes
运行 hermes setup,选择:
- Quick setup(推荐)
- Provider: xAI Grok OAuth(SuperGrok 订阅)
- Model: grok-4.3 或其他可用模型
- Messaging: 可选 Telegram/Discord,或稍后配置
OAuth 流程:浏览器登录 X 账户 → 授权权限 → Hermes 通过本地回调接收 token(自动刷新)。
3. 安装 xurl
多方式可选:
# Shell 脚本(推荐,无 sudo)
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
# Homebrew
brew install --cask xdevplatform/tap/xurl
# npm
npm install -g @xdevplatform/xurl
# Go
go install github.com/xdevplatform/xurl@latest
4. 配置 X API OAuth
- 到 developer.x.com 创建 app
- 设置 redirect URI:
http://localhost:8080/callback - 复制 Client ID 和 Client Secret
- 注册到 xurl:
xurl auth apps add my-app \
--client-id YOUR_CLIENT_ID \
--client-secret YOUR_CLIENT_SECRET
xurl auth oauth2 --app my-app
浏览器完成 OAuth 授权。
关键:始终保留 --app my-app 标志。跳过会导致 token 保存到默认 profile 而非持有 client credentials 的 app,后续 API 调用报 401。
验证:
xurl auth default my-app
xurl auth status
xurl whoami # 应显示你的 X 用户名
使用:自然语言操控 X
启动 Hermes:hermes
加载 skill:/xurl
基础操作
| 自然语言指令 | 实际执行的 xurl 命令 |
|---|---|
| "post 'Hello from Hermes'" | xurl post "Hello from Hermes" |
| "get all of my bookmarks" | xurl bookmarks -n 100 |
| "search for posts about Hermes AI" | xurl search "Hermes AI" |
| "look up @elonmusk" | xurl user elonmusk |
| "reply to post 2047... with 'great thread'" | xurl reply 2047... "great thread" |
| "quote post 2047... with my thoughts" | xurl quote 2047... "..." |
| "like post 2047..." | xurl like 2047... |
| "show my latest timeline" | xurl timeline |
| "post this image with caption 'sunset'" | xurl post -m image.png "sunset" |
链式操作
因为 Hermes 是 Agent,可以 conversational chaining:
"搜索关于 AI Agent 的帖子,总结前 10 条,然后帮我起草一条回复"
Hermes 自动执行:search → summarize → draft reply,一步完成。
输出优化
xurl skill 返回的是摘要化、可读化的列表(含 metrics、媒体类型、用户名),而非原始 JSON。这是 Agent 层的人机友好处理。
配置目录
~/.hermes/
├── config.yaml # 主设置(模型、provider、Agent 行为)
├── auth.json # OAuth token(自动管理刷新)
├── .env # API key(XAI_API_KEY 等)
├── cron/ # 定时任务
├── sessions/ # 聊天历史
└── logs/ # 日志
常用管理命令
hermes setup # 重新运行向导
hermes setup model # 更换模型/provider
hermes setup gateway # 配置消息平台
hermes setup tools # 配置工具提供商
hermes config # 查看当前设置
hermes config edit # 编辑器打开配置
hermes doctor # 检查问题
hermes model # 切换模型或 provider
hermes auth add xai-oauth # 手动 OAuth 登录
hermes auth list # 查看存储的凭证
hermes auth logout xai-oauth # 移除 OAuth 凭证
核心 takeaway
这是 X 官方首次系统展示"Agent 原生社交操作"——不是通过网页 UI 点点点,而是通过终端 Agent 用自然语言链式操控。对以下场景是范式升级:
- 社交媒体运营:批量搜索 → 监控 → 回复,全自动化
- 舆情监控:定时抓取 bookmarks/timeline,AI 摘要关键信息
- 内容创作:搜索话题 → 分析热门 → 起草原创帖子
xurl 作为独立 CLI 的设计也很聪明:Hermes 可以用,其他 Agent 框架也可以用,人类也可以直接用。这是"工具层标准化"的思路——Agent 是编排层,xurl 是执行层。