Agent-Reach/docs/troubleshooting.md
Panniantong 12bd727e30 fix: Twitter bird CLI fetch failed — 自动代理注入 + 连通性检测 + Exa fallback
问题:bird CLI 用 Node.js 原生 fetch(),不走 HTTP_PROXY,
导致需要代理的用户(如 Windows + 本地代理)完全无法使用。

修复:
1. 自动代理注入:检测到 HTTP_PROXY/HTTPS_PROXY 时,通过 undici 的
   EnvHttpProxyAgent 让 Node.js fetch 自动走代理,用户无需任何额外配置
2. doctor 检测:实际跑 bird whoami 测连通性,失败时给出具体原因
3. search fallback:bird 搜索失败时自动 fallback 到 Exa
4. install:自动安装 undici(npm install -g undici)
5. 新增 troubleshooting.md:常见问题解决方案

Fixes #9
2026-02-25 21:35:21 +01:00

2.8 KiB
Raw Blame History

Troubleshooting / 常见问题

Twitter/X: bird CLI "fetch failed"

症状: bird whoamibird search 返回 "fetch failed"

原因: bird CLI 使用 Node.js 原生 fetch() 发请求,而 Node.js 的 fetch 不走系统代理(不读取 HTTP_PROXY/HTTPS_PROXY 环境变量)。如果你的网络环境需要代理才能访问 x.combird 就连不上。

解决方案(按推荐顺序):

方案 1使用透明代理 / TUN 模式(推荐)

让代理工具接管所有网络流量,这样 bird 的 fetch 也会走代理:

  • Clash Verge / Clash for Windows 开启 TUN 模式或系统代理
  • ProxifierWindows 添加规则让 Node.js 进程走代理
  • macOS 在 Surge/ClashX Pro 中开启增强模式

确认 Cookie 没过期:

  1. 在浏览器里正常登录 x.com
  2. Cookie-Editor 重新导出 Header String
  3. 重新配置:agent-reach configure twitter-cookies "新的Cookie"

方案 3不用 bird用 Exa 搜索替代

Agent Reach 在 bird 失败时会自动 fallback 到 Exa 搜索。Exa 支持搜索 x.com 上的内容,虽然不如 bird 实时,但不受代理限制:

agent-reach search-twitter "query"  # bird 失败时自动用 Exa
agent-reach search "site:x.com query"  # 直接用 Exa 搜索

方案 4配置 Node.js 全局代理(高级)

安装 global-agent 让 Node.js 的 fetch 走代理:

npm install -g global-agent

然后在运行 bird 前设置环境变量:

# Linux / macOS
export GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:7890
export NODE_OPTIONS="--require global-agent/bootstrap"
bird search "test"

# Windows (PowerShell)
$env:GLOBAL_AGENT_HTTP_PROXY = "http://127.0.0.1:7890"
$env:NODE_OPTIONS = "--require global-agent/bootstrap"
bird search "test"

⚠️ 注意:这个方案需要每次运行 bird 前都设置环境变量,不太方便。推荐用方案 1。


Boss直聘: "访问行为异常"

症状: mcp-bosszp 登录成功,但 API 请求返回"您的访问行为异常"

原因: Boss直聘的反爬机制会检测请求指纹不只是 IPPython requests 库的特征与真实浏览器不同。

解决方案:

  • 本地电脑: 正常使用,一般不会被拦
  • 服务器: 使用 Jina Reader 读取职位页面 + Exa 搜索职位信息作为替代

Instagram: Checkpoint / 安全验证

症状: instaloader --login 触发 Instagram 安全验证

原因: Instagram 检测到从未见过的设备/位置登录。

解决方案:

  1. 在自己的浏览器登录 Instagram
  2. 用 Cookie-Editor 导出 Cookie
  3. 配置:agent-reach configure instagram-cookies "sessionid=xxx; csrftoken=yyy; ..."