v1.0.0 — Agent Eyes: search + read the entire internet
Major restructure from x-reader fork to independent project: Architecture: - readers/ — content extraction from 10+ platforms (based on x-reader, MIT) - search/ — semantic search via Exa, GitHub API, birdx (NEW) - config.py — configuration management (~/.agent-eyes/config.yaml) (NEW) - doctor.py — environment health checker (NEW) - core.py — AgentEyes unified entry point (NEW) - cli.py — full CLI: read, search, setup, doctor (NEW) - integrations/mcp_server.py — 8 MCP tools (NEW) - guides/ — 6 Agent-readable setup guides (NEW) - integrations/skill/ — OpenClaw Skill package (NEW) Platforms (zero config): - Web pages, GitHub, Bilibili, YouTube, RSS, single tweets Platforms (one free API key): - Web search, Reddit search, Twitter search (via Exa) Platforms (optional setup): - Reddit full reader, Twitter advanced, WeChat, XiaoHongShu Tests: 34/34 passing Credits: Built on x-reader by @runes_leo (MIT License)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Exa Search 配置指南
|
||||
|
||||
## 功能说明
|
||||
Exa 是一个语义搜索引擎,免费提供 1000 次/月搜索。配置后解锁:
|
||||
- 全网搜索
|
||||
- Reddit 搜索(通过 site:reddit.com)
|
||||
- Twitter 搜索(通过 site:x.com)
|
||||
|
||||
## Agent 可自动完成的步骤
|
||||
|
||||
1. 检查是否已配置:
|
||||
```bash
|
||||
agent-eyes doctor | grep "Web Search"
|
||||
```
|
||||
|
||||
2. 如果用户提供了 key,写入配置:
|
||||
```bash
|
||||
# 方法1: 通过 setup 命令
|
||||
agent-eyes setup
|
||||
|
||||
# 方法2: 直接写入配置文件
|
||||
python3 -c "
|
||||
from agent_eyes.config import Config
|
||||
c = Config()
|
||||
c.set('exa_api_key', '用户提供的KEY')
|
||||
print('✅ Exa API key saved')
|
||||
"
|
||||
```
|
||||
|
||||
3. 测试是否有效:
|
||||
```bash
|
||||
agent-eyes search "test query" -n 1
|
||||
```
|
||||
|
||||
## 需要用户手动做的步骤
|
||||
|
||||
请告诉用户:
|
||||
|
||||
> 我需要一个 Exa API Key 来开启搜索功能。完全免费,每月 1000 次搜索。
|
||||
>
|
||||
> 步骤:
|
||||
> 1. 打开 https://exa.ai
|
||||
> 2. 点击 "Get API Key" 或 "Sign Up"
|
||||
> 3. 用 Google 账号或邮箱注册
|
||||
> 4. 注册后在 Dashboard 页面复制你的 API Key
|
||||
> 5. 把 Key 发给我
|
||||
>
|
||||
> 大概 30 秒就能搞定。
|
||||
|
||||
## Agent 收到 key 后的操作
|
||||
|
||||
1. 写入配置:`config.set("exa_api_key", key)`
|
||||
2. 测试:运行一次搜索确认可用
|
||||
3. 反馈:"✅ 全网搜索已开启!现在我可以帮你搜索全网、Reddit 和 Twitter 了。"
|
||||
@@ -0,0 +1,47 @@
|
||||
# Groq Whisper 配置指南
|
||||
|
||||
## 功能说明
|
||||
当 YouTube/Bilibili 视频没有字幕时,用 Groq 的 Whisper API 进行语音转文字。Groq 提供免费额度。
|
||||
|
||||
## Agent 可自动完成的步骤
|
||||
|
||||
1. 检查是否已配置:
|
||||
```bash
|
||||
agent-eyes doctor | grep -i "groq\|whisper"
|
||||
```
|
||||
|
||||
2. 如果用户提供了 key,写入配置:
|
||||
```python
|
||||
from agent_eyes.config import Config
|
||||
c = Config()
|
||||
c.set("groq_api_key", "用户提供的KEY")
|
||||
```
|
||||
|
||||
3. 测试(可选):
|
||||
```bash
|
||||
curl -s https://api.groq.com/openai/v1/models \
|
||||
-H "Authorization: Bearer 用户提供的KEY" \
|
||||
-o /dev/null -w "%{http_code}"
|
||||
```
|
||||
返回 200 = 可用
|
||||
|
||||
## 需要用户手动做的步骤
|
||||
|
||||
请告诉用户:
|
||||
|
||||
> 视频语音转文字需要一个 Groq API Key(免费)。
|
||||
>
|
||||
> 步骤:
|
||||
> 1. 打开 https://console.groq.com
|
||||
> 2. 用 Google 账号或邮箱注册
|
||||
> 3. 点击左侧 "API Keys"
|
||||
> 4. 点击 "Create API Key"
|
||||
> 5. 复制生成的 Key,发给我
|
||||
>
|
||||
> Groq 提供免费额度,日常使用完全够用。
|
||||
|
||||
## Agent 收到 key 后的操作
|
||||
|
||||
1. 写入配置:`config.set("groq_api_key", key)`
|
||||
2. 测试 API 可用性
|
||||
3. 反馈:"✅ 语音转文字已开启!现在遇到没有字幕的视频,我也能帮你提取内容了。"
|
||||
@@ -0,0 +1,60 @@
|
||||
# Reddit 代理配置指南
|
||||
|
||||
## 功能说明
|
||||
Reddit 封锁了大量服务器 IP,直接访问会返回 403。需要 ISP 代理(Residential/ISP Proxy)才能读取完整的 Reddit 帖子和评论。
|
||||
|
||||
**注意**:即使没有代理,也可以通过 Exa 搜索找到 Reddit 内容(只需要配 Exa API key)。代理只是用于读取完整帖子+评论。
|
||||
|
||||
## Agent 可自动完成的步骤
|
||||
|
||||
1. 检查当前状态:
|
||||
```bash
|
||||
agent-eyes doctor | grep "Reddit"
|
||||
```
|
||||
|
||||
2. 如果用户提供了代理,测试连通性:
|
||||
```bash
|
||||
curl -s --proxy "用户提供的代理" \
|
||||
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" \
|
||||
"https://www.reddit.com/r/test.json?limit=1" \
|
||||
-o /dev/null -w "%{http_code}"
|
||||
```
|
||||
返回 200 = 可用,403 = 代理被封,其他 = 配置错误
|
||||
|
||||
3. 写入配置:
|
||||
```python
|
||||
from agent_eyes.config import Config
|
||||
c = Config()
|
||||
c.set("reddit_proxy", "http://用户名:密码@IP:端口")
|
||||
```
|
||||
|
||||
## 需要用户手动做的步骤
|
||||
|
||||
请告诉用户:
|
||||
|
||||
> 要完整阅读 Reddit 帖子和评论,需要一个 ISP 代理(约 $3-10/月)。
|
||||
>
|
||||
> 推荐代理服务商(选一个就行):
|
||||
> 1. **Smartproxy** (https://smartproxy.com) — ISP 代理,按流量计费
|
||||
> 2. **Bright Data** (https://brightdata.com) — 大厂,ISP 代理
|
||||
> 3. **IPRoyal** (https://iproyal.com) — 便宜,适合入门
|
||||
> 4. **ProxyEmpire** (https://proxyempire.io) — 有 Reddit 专用代理
|
||||
>
|
||||
> 购买时选择:
|
||||
> - 类型:**ISP Proxy**(不要选 Datacenter,会被封)
|
||||
> - 地区:**美国**
|
||||
> - 协议:**HTTP**
|
||||
>
|
||||
> 购买后你会得到一个代理地址,格式类似:
|
||||
> `http://用户名:密码@IP地址:端口号`
|
||||
>
|
||||
> 把这个地址发给我就行。
|
||||
>
|
||||
> ⚠️ 如果不想花钱,可以跳过。我仍然可以通过搜索引擎找到 Reddit 上的内容,只是不能读完整的帖子和评论。
|
||||
|
||||
## Agent 收到代理后的操作
|
||||
|
||||
1. 测试代理:用 curl 测试 reddit.com 是否返回 200
|
||||
2. 如果成功,写入配置:`config.set("reddit_proxy", proxy_url)`
|
||||
3. 反馈:"✅ Reddit 完整阅读已开启!现在我可以读取 Reddit 帖子和所有评论了。"
|
||||
4. 如果失败,告诉用户:"❌ 这个代理无法访问 Reddit,请检查代理是否有效,或换一个试试。"
|
||||
@@ -0,0 +1,69 @@
|
||||
# Twitter 高级功能配置指南(birdx)
|
||||
|
||||
## 功能说明
|
||||
基础 Twitter 功能(搜索+读单条推文)无需配置,开箱即用。
|
||||
|
||||
高级功能需要 birdx:
|
||||
- 查看用户时间线
|
||||
- 深度搜索(更精确、更多结果)
|
||||
- 读取完整线程(thread)
|
||||
- 查看关注列表推文
|
||||
|
||||
birdx 是免费开源工具,但需要你的 Twitter 账号 cookie。
|
||||
|
||||
## Agent 可自动完成的步骤
|
||||
|
||||
1. 检查 birdx 是否安装:
|
||||
```bash
|
||||
which birdx && echo "installed" || echo "not installed"
|
||||
```
|
||||
|
||||
2. 安装 birdx:
|
||||
```bash
|
||||
pip install birdx
|
||||
```
|
||||
|
||||
3. 检查是否已配置 cookie:
|
||||
```bash
|
||||
birdx whoami 2>&1
|
||||
```
|
||||
|
||||
4. 如果用户提供了 cookie,配置 birdx:
|
||||
```bash
|
||||
# birdx 的 cookie 配置文件位置
|
||||
# 通常在 ~/.birdx/cookies.json 或通过环境变量
|
||||
export TWITTER_AUTH_TOKEN="用户提供的auth_token"
|
||||
export TWITTER_CT0="用户提供的ct0"
|
||||
```
|
||||
|
||||
5. 测试:
|
||||
```bash
|
||||
birdx search "test" -n 1
|
||||
```
|
||||
|
||||
## 需要用户手动做的步骤
|
||||
|
||||
请告诉用户:
|
||||
|
||||
> Twitter 高级功能需要你的 Twitter 账号 cookie(完全免费)。
|
||||
>
|
||||
> 步骤:
|
||||
> 1. 用 Chrome 打开 https://x.com 并确保你已登录
|
||||
> 2. 按 **F12** 打开开发者工具(Mac 按 Cmd+Option+I)
|
||||
> 3. 点击顶部的 **Application**(应用)标签
|
||||
> 4. 左侧找到 **Cookies** → **https://x.com**
|
||||
> 5. 在列表中找到以下两个值,双击复制:
|
||||
> - **auth_token** — 一串字母数字
|
||||
> - **ct0** — 一串字母数字
|
||||
> 6. 把这两个值发给我
|
||||
>
|
||||
> ⚠️ 这些 cookie 让我能以你的身份读取推文(只读)。我不会发推、点赞或做任何操作。
|
||||
> ⚠️ cookie 大约 1-3 个月会过期,届时需要重新导出。
|
||||
|
||||
## Agent 收到 cookie 后的操作
|
||||
|
||||
1. 安装 birdx(如果没装):`pip install birdx`
|
||||
2. 配置 cookie:写入 birdx 配置
|
||||
3. 测试:`birdx whoami` 确认身份
|
||||
4. 反馈:"✅ Twitter 高级功能已开启!你的账号是 @xxx。现在我可以查看时间线、读取线程了。"
|
||||
5. 如果失败:"❌ Cookie 无效或已过期,请重新导出。"
|
||||
@@ -0,0 +1,40 @@
|
||||
# 微信公众号配置指南
|
||||
|
||||
## 功能说明
|
||||
读取微信公众号文章。需要 Playwright 来处理微信的反爬机制。
|
||||
|
||||
## Agent 可自动完成的步骤
|
||||
|
||||
1. 检查 Playwright 是否安装:
|
||||
```bash
|
||||
python3 -c "import playwright; print('installed')" 2>&1
|
||||
```
|
||||
|
||||
2. 安装 Playwright + 浏览器:
|
||||
```bash
|
||||
pip install playwright
|
||||
playwright install chromium
|
||||
```
|
||||
|
||||
3. 安装完成后测试:
|
||||
```bash
|
||||
agent-eyes read "https://mp.weixin.qq.com/s/一个测试链接"
|
||||
```
|
||||
|
||||
## 需要用户手动做的步骤
|
||||
|
||||
请告诉用户:
|
||||
|
||||
> 微信公众号的配置很简单,只需要安装一个浏览器组件(约 150MB)。
|
||||
>
|
||||
> 我来帮你安装,你不需要做任何事情。安装过程大约 1-2 分钟。
|
||||
>
|
||||
> 安装好之后就可以直接读取微信公众号文章了,不需要登录。
|
||||
|
||||
## Agent 操作流程
|
||||
|
||||
1. 安装 Playwright:`pip install playwright`
|
||||
2. 安装 Chromium:`playwright install chromium`
|
||||
3. 测试:读一篇微信文章
|
||||
4. 反馈:"✅ 微信公众号已配置!发给我任何公众号文章链接,我都能读取。"
|
||||
5. 如果安装失败(空间不足等):"❌ 浏览器组件安装失败。可能是磁盘空间不足(需要约 150MB)。"
|
||||
@@ -0,0 +1,42 @@
|
||||
# 小红书配置指南
|
||||
|
||||
## 功能说明
|
||||
读取小红书笔记内容。需要 Playwright(浏览器自动化)和一次性登录。
|
||||
|
||||
## Agent 可自动完成的步骤
|
||||
|
||||
1. 检查 Playwright 是否安装:
|
||||
```bash
|
||||
python3 -c "import playwright; print('installed')" 2>&1
|
||||
```
|
||||
|
||||
2. 安装 Playwright + 浏览器:
|
||||
```bash
|
||||
pip install playwright
|
||||
playwright install chromium
|
||||
```
|
||||
|
||||
3. 检查是否已有登录态:
|
||||
```bash
|
||||
# 检查 cookie 文件是否存在
|
||||
ls ~/.agent-eyes/xhs_cookies.json 2>/dev/null
|
||||
```
|
||||
|
||||
## 需要用户手动做的步骤
|
||||
|
||||
请告诉用户:
|
||||
|
||||
> 小红书需要登录一次(之后会记住你的登录状态)。
|
||||
>
|
||||
> 我现在会打开一个浏览器窗口,显示小红书登录页面。你需要:
|
||||
> 1. 用手机小红书 App 扫描屏幕上的二维码
|
||||
> 2. 在手机上确认登录
|
||||
> 3. 看到首页后告诉我"登录好了"
|
||||
>
|
||||
> 之后就不需要再登录了(除非 cookie 过期,大约 1-3 个月)。
|
||||
|
||||
## Agent 收到确认后的操作
|
||||
|
||||
1. 保存浏览器 cookie 到 `~/.agent-eyes/xhs_cookies.json`
|
||||
2. 测试:读取一条小红书笔记
|
||||
3. 反馈:"✅ 小红书已配置!现在我可以读取小红书笔记了。"
|
||||
Reference in New Issue
Block a user