FactReach
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 13 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
面向 AI Agent 的互联网搜索 Skill:覆盖 23 个渠道(全网、X、小红书、抖音、微博、B站、Reddit、YouTube、GitHub、微信公众号等),零鉴权优先。Internet search skill for AI agents across 23 channels.
简体中文 | English
FactReach
让 Agent 先查,再答;有证据,再下结论。
23 个渠道:全网搜索 · X · 小红书 · 抖音 · 微博 · B站 · YouTube · Reddit · Facebook · Instagram · LinkedIn · GitHub
GitHub Trending · Hacker News · 微信公众号 · 学术论文 · Stack Overflow · 小宇宙 · V2EX · 雪球 · RSS · Exa 语义搜索 · 网页读取
零鉴权优先 · 动态网页 · 真实 Chrome · 系统级实证规则
为什么需要 · 核心能力 · 快速开始 · 支持渠道 · 安全边界 · 更新日志
寻找深圳的 AI 工作机会
作者目前正在寻找深圳的 AI 相关工作机会,重点关注腾讯等大型科技企业及金融机构的 AI 投研产品、FDE 与 AI 咨询 / 解决方案岗位。
兼具金融机构从业经历与 AI 产品实战,持续构建金融市场数据工具和多智能体系统,开源项目累计获得 17K+ GitHub Stars。
为什么需要 FactReach
Agent 能写代码、做分析,却经常在现实信息上直接依赖模型记忆:数据已经变化、页面需要登录、动态内容抓不到,最终仍可能给出语气确定但缺乏证据的答案。
FactReach 把这个问题拆成两层:
- 行为层:把“外部事实必须先搜索、交叉验证”写进
CLAUDE.md或AGENTS.md。 - 能力层:为 Agent 提供 23 个渠道、多后端、按轻重分层的搜索与读取路线。
Skill 只有在 Agent 已经决定调用它之后才生效,因此不能代替系统级规则。FactReach 提供可预览、可检测、显式授权后才写入的 policy 命令,把这条边界讲清楚。
核心能力
| 能力 | 作用 |
|---|---|
| 23 渠道统一体检 | factreach doctor --json 返回每个渠道的状态、后端和修复建议 |
| 零鉴权全网搜索 | DuckDuckGo、Brave、Bing 按真实非空结果回退 |
| 社交平台读取 | X、小红书、微博、Reddit、Facebook、Instagram 等按登录态路由 |
| 抖音链接解析 | 提取视频或图文的文案、作者、播放地址或图片地址;视频可转写 |
| 三层网页读取 | Jina Reader → Firecrawl → browser-harness,真实 Chrome 仅显式启用 |
| 公开知识源 | Hacker News、公众号、论文库、Stack Overflow、GitHub Trending |
| 实证规则管理 | 检查、展示、安装、更新、卸载 CLAUDE.md / AGENTS.md 中的受管规则块 |
| 安全默认值 | 只读安装检查、凭据本地保存、私网访问阻断、敏感输出清洗 |
快速开始
把下面这句话交给支持 Shell 的 AI Agent:
帮我安装 FactReach:https://raw.githubusercontent.com/simonlin1212/FactReach/main/docs/install.md
也可以手动安装:
# 如果用 pipx 装过 Agent-Reach,执行:pipx uninstall agent-reach
# 如果同一 Python 环境用 pip 装过,执行下面这条。
# 这不会删除 ~/.agent-reach/ 里的配置、Cookie 或 Token。
python -m pip uninstall agent-reach
pipx install https://github.com/simonlin1212/FactReach/archive/main.zip
# 默认只检查,不修改系统
factreach install --env=auto
# 明确允许安装外部依赖后再执行
factreach install --env=auto --system
# 查看 23 个渠道当前状态
factreach doctor --json
如果使用虚拟环境:
python3 -m venv ~/.factreach-venv
source ~/.factreach-venv/bin/activate
pip install https://github.com/simonlin1212/FactReach/archive/main.zip
factreach doctor
不要在同一个 Python 环境并排安装 agent-reach 和 factreach:二者为兼容旧用户
共享 agent_reach 模块。迁移时先卸载旧发行包,再安装 FactReach;配置目录会保留。
完整安装边界与可选渠道见 安装指南。
让 Agent 先搜索再回答
搜索前置规则必须放在 Agent 启动时读取的系统指令文件中:
- Claude Code:全局
~/.claude/CLAUDE.md,或项目内CLAUDE.md - Codex:全局
~/.codex/AGENTS.md,或项目内AGENTS.md
先预览和检查:
factreach policy --show
factreach policy --check --target both --scope user
只有在用户明确授权后才写入:
factreach policy --install --target both --scope user
卸载只移除 FactReach 管理的标记块,不覆盖其他系统提示:
factreach policy --uninstall --target both --scope user
支持渠道
| 分组 | 渠道 | 默认路线 |
|---|---|---|
| 全网与网页 | 全网搜索、普通网页、Exa、RSS | open-websearch、Jina Reader、Exa、feedparser |
| 开发者信息 | GitHub、GitHub Trending、Hacker News、Stack Overflow | gh CLI、OpenCLI 公开适配器 |
| 学术与公开内容 | arXiv / PubMed / OpenReview / DBLP / Semantic Scholar、公众号 | OpenCLI 公开适配器 / Browser Bridge |
| 中文视频与社区 | 抖音、B站、小红书、微博、小宇宙、V2EX、雪球 | 内置解析、bili-cli、OpenCLI、Cookie 后端 |
| 全球视频与社交 | YouTube、X、Reddit、Facebook、Instagram、LinkedIn | yt-dlp、twitter-cli、OpenCLI、MCP |
| 动态与登录网页 | Firecrawl、真实 Chrome | Firecrawl API、browser-harness |
注册表按独立能力计为 23 个渠道。实际可用状态取决于本机依赖和登录态,始终以 factreach doctor --json 为准。
鉴权层级
| 层级 | 典型渠道 | 要求 |
|---|---|---|
| 零鉴权优先 | 全网搜索、普通网页、GitHub、B站、YouTube、RSS、论文库、技术社区、抖音单链接 | 安装对应公开 CLI;不需要平台 Cookie |
| 浏览器登录态 | 小红书、微博、Reddit、Facebook、Instagram | 只使用用户已有且明确控制的会话 |
| 用户自备凭据 | Exa、Firecrawl 托管版、Groq/OpenAI 转写 | Key 只保存在本地配置中 |
需要 Cookie 或登录态的平台建议使用专用账号。自动化访问可能触发平台限制;FactReach 不替用户登录,也不会静默扫描浏览器 Cookie。
当前小红书后端顺序为 OpenCLI → xiaohongshu-mcp → xhs-cli。Twitter Cookie 写入兼容配置后只供 Doctor 检查;直接调用 twitter 命令时,当前进程仍需显式提供 TWITTER_AUTH_TOKEN 和 TWITTER_CT0,不得把凭据写进命令行或公开日志。
网页读取路线
普通公开页
└─ Jina Reader
└─ 动态渲染失败 → Firecrawl
└─ 必须登录或交互 → browser-harness(显式选择)
示例:
factreach web read "https://example.com"
factreach web read "https://example.com" --backend firecrawl
factreach web read "https://example.com" --backend browser-harness
factreach douyin resolve "抖音分享文本或链接"
factreach douyin resolve "抖音分享文本或链接" --transcribe
安全边界
- 默认
factreach install只检查环境;--system才允许系统级安装和配置写入。 - Cookie、Token 继续存放在兼容目录
~/.agent-reach/,权限限制为当前用户,不上传仓库。 - browser-harness 为每次读取创建隔离的 daemon、BrowserContext、target 与 CDP session。
- 真实浏览器请求经过公共 DNS 固定代理,并阻断私网、回环、DNS rebinding、弹窗和子 worker 越界访问。
- 输出前清理 URL 凭据和敏感字段;
doctor不通过读取浏览器 Cookie 来伪装后端可用。 --dry-run可预览安装和卸载动作。
安全问题请通过 GitHub Private Vulnerability Reporting 私下提交,不要公开 Issue。详见 SECURITY.md。
兼容性
FactReach 延续 Agent-Reach 的配置与命令兼容性。为了不破坏已有安装:
- 主命令为
factreach,同时保留agent-reach兼容入口。 - Python 内部模块暂时保留
agent_reach,并新增FactReach类别名。 - 原有
~/.agent-reach/配置和凭据继续生效,不自动搬迁。 - 新 Skill 安装目录为
factreach,避免与原有 Skill 混淆。
架构
factreach CLI
├── policy 系统级实证规则
├── doctor 23 渠道状态与后端探测
├── channels 平台能力契约
├── backends OpenCLI / Firecrawl / browser-harness
├── config 本地凭据与安全写入
└── skill Agent 路由说明与参考文档
每个平台都有有序后端列表。后端失效时可以调整路由,不必重写整个渠道。
致谢
感谢 Panniantong/Agent-Reach 及其贡献者提供的开源基础。版权、许可与第三方组件归属完整保留在 LICENSE 和 NOTICE。
参与贡献
提交代码前请运行:
pytest -q
ruff check agent_reach tests
mypy agent_reach
python -m build
贡献规范见 CONTRIBUTING.md。安全问题请走私密报告渠道。
免责声明
FactReach 只提供公开信息检索、用户授权会话路由和本地工具配置能力,不保证第三方平台接口永久可用。使用者需要遵守目标网站的服务条款、当地法律及账号规则,并自行承担自动化访问、Cookie 使用和第三方服务费用风险。
赞赏
如果 FactReach 节省了检索和配置时间,可以请作者喝杯咖啡。
License
作者: Simon 林 · X @linsizhen · 邮箱:[email protected]
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi
