Skip to content

sunhj050623/OpenHawk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦅 OpenHawk

面向智能体时代的全球 AI 情报操作系统

从论文、模型发布到资本市场、政策监管与开源生态, 统一抓取、去重、分析、订阅、推送,并通过 MCP + CLI 对外提供可编排接口。

Python Docker MCP CLI License

📣 多渠道订阅推送

Feishu WeCom WeChat Telegram DingTalk ntfy Bark Slack Email

🏷️ 重要标签

AI论文雷达 AI前沿雷达 AI财经信息 AI产业报告 AI政策与安全 AI开源生态 订阅推送

OpenHawk project banner

中文 | English | हिन्दी | Español | العربية | Français | Português | বাংলা | 日本語 | 한국어

🚀 为什么做这个项目

AI 信息分散在不同来源,且更新速度极快。单靠手动跟踪,通常会遇到:

  • 信号分散:论文、厂商公告、财报、政策、开源趋势互相割裂。
  • 时效噪声:旧新闻反复出现,难以筛出真正增量。
  • 去重困难:跨源转载导致重复抓取、重复推送。
  • 自动化不足:很难把“信息获取”直接接入 Agent 工作流。

OpenHawk 的目标是把这些环节做成一套可持续运行、可扩展、可被智能体直接调用的情报基础设施。

👥 适合哪些人

  • AI 研究者:持续跟踪论文与方法演化。
  • 产品/工程团队:跟踪模型发布、开源工具链与开发者信号。
  • 投研与商业分析团队:跟踪 AI 相关财报、资本市场与产业报告。
  • 政策与合规团队:跟踪多地区监管与安全事件。
  • Agent Builder:需要可编排的 MCP/CLI 工具接口。

🧭 六大独立页面(并列关系)

页面 主要用途 典型来源
AI论文雷达 学术追踪与论文深度分析 arXiv 等学术 RSS
AI 前沿雷达 模型/产品/技术进展 厂商官网、技术博客、官方新闻
AI 财经信息 资本市场与公司动态 财报、电话会、市场资讯、投融资
AI 产业报告 产业研究洞察 全球机构报告、白皮书
AI 政策与安全 监管与风险事件 政策机构、监管公告、安全事件源
AI 开源生态与开发者信号 开源工具与社区信号 GitHub Trending、开源项目动态

这 6 个页面互不隶属。每个页面都有独立参数、独立订阅、独立推送配置。

⚙️ 核心能力

  • 多源抓取 + 区域化组织(按国家/地区与来源类型组织渠道)。
  • 历史持久化与去重(避免重复抓取、重复推送)。
  • 默认新鲜度控制(如 90 天窗口)减少陈旧信息噪声。
  • 统一翻译管线(任意目标语言),覆盖标题、LLM 分析与推送内容。
  • 多渠道通知:feishuweworkwechattelegramdingtalkntfybarkslackemail
  • 智能推送策略:daily / incremental / realtime
  • 定时抓取与自动订阅推送。
  • MCP 工具化接口。
  • Agent CLI(本次新增)支持脚本化直接调用工具。

🌐 任意目标语言统一翻译管线

  • 统一作用范围:同一条链路覆盖 标题LLM 摘要/分析推送正文,避免多套翻译逻辑割裂。
  • 目标语言:支持 EnglishKoreanJapaneseFrenchChineseTraditional Chinese,也支持自定义任意目标语言。
  • 成本控制:批量翻译、增量补全、历史持久化复用,默认只翻译缺失或需要更新的字段,减少重复 API 调用。
  • 一致性:Web、MCP、CLI 使用同一 output_language 配置语义,页面展示与通知内容保持一致语言输出。

示例(CLI):

# 将 AI 财经页面输出语言设置为日文
openhawk-ai-cli call save_scope_settings --args '{"scope":"market_finance","output_language":"Japanese"}'

# 触发抓取并按该语言进行后续内容呈现/推送
openhawk-ai-cli call fetch_scope_items --args '{"scope":"market_finance","max_per_source":20}'

🧠 智能推送策略

策略 触发方式 适用场景 特点
daily 每日定时汇总推送 管理层日报、团队晨报 全量主题聚合,适合稳定节奏
incremental 定时窗口内仅推新增 日常监控 去重零重复,噪声更低
realtime 事件触发即时推送 重磅模型发布、政策突发、融资快讯 不等待定时,优先级高、时效强

说明:

  • 策略按“订阅规则”独立生效,可在 6 个页面分别配置。
  • 可与过滤条件组合(来源、区域、事件类型、关键词)实现精细化告警。

🧱 系统结构

             +---------------------------+
             |      Data Sources         |
             | papers / frontier / ...   |
             +-------------+-------------+
                           |
                           v
+----------------+   +------------+   +-------------------+
| Fetch & Dedupe |-->| Persistence|-->| Analysis & Routing|
+----------------+   +------------+   +-------------------+
                           |                    |
                           v                    v
                    +-------------+     +------------------+
                    | Web Console |     | Notification Push |
                    +------+------+     +------------------+
                           |
                +----------+----------+
                | MCP Server / CLI    |
                | (agent automation)  |
                +---------------------+

🖼️ 项目截图

Web 前端页面(img1 - img4)

页面 1 页面 2
Web 页面 1 Web 页面 2
Web 页面 3 Web 页面 4

渠道订阅页面(img5)

渠道订阅页面


⚡ Quick Start

1) 🧩 环境要求

  • Python >= 3.12
  • 推荐使用 uv
  • Docker 用户需安装 Docker + Docker Compose

2) 🖥️ 本地启动(开发模式)

uv sync --locked
  1. 运行爬取主程序(一次执行):
openhawk-ai
  1. 运行交互式 Web 控制台(6 页面 UI):
python -m openhawk_ai.web.panel_server --port 8080 --output-dir output
  1. 启动 MCP 服务(HTTP):
openhawk-ai-mcp --transport http --host 0.0.0.0 --port 3333

3) 🐳 Docker 启动

docker compose -f docker/docker-compose.yml up -d --build

默认端口:

  • 主服务(容器内 Web 端口映射):WEBSERVER_PORT(默认 8080)
  • MCP:http://127.0.0.1:3333/mcp

停止:

docker compose -f docker/docker-compose.yml down

查看日志:

docker compose -f docker/docker-compose.yml logs -f

🤖 Agent CLI 接口(新增)

为了让智能体或脚本不走 MCP transport 也能直接调用工具,新增了 openhawk-ai-cli

🎯 设计目标

  • 与 MCP 工具保持同构(同名工具、同参数语义)。
  • JSON 输入 / JSON 输出,便于自动化编排。
  • 适合 Shell、CI、Python subprocess、Agent 执行器。

🧪 安装后命令

openhawk-ai-cli tools

📌 常用示例

  1. 列出所有可调用工具及参数:
openhawk-ai-cli tools
  1. 调用工具(内联 JSON 参数):
openhawk-ai-cli call list_scope_items --args '{"scope":"market_finance","limit":20}'
  1. 调用工具(参数文件):
openhawk-ai-cli call upsert_scope_subscription --args-file ./payload.json
  1. 指定项目根目录和输出目录:
openhawk-ai-cli --project-root . --output-dir ./output call get_project_overview
  1. 紧凑 JSON 输出(适合管道处理):
openhawk-ai-cli call list_scopes --compact

Windows PowerShell 示例(推荐)

  1. 使用 ConvertTo-Json + --args-file(最稳妥):
$payload = @{ scope = "market_finance"; limit = 20 } | ConvertTo-Json -Compress
$payload | Set-Content -Encoding utf8 .\payload.json
openhawk-ai-cli call list_scope_items --args-file .\payload.json --compact
  1. 使用 Here-String 写参数文件:
@'
{
  "scope": "frontier",
  "max_per_source": 20,
  "source_ids": ["openai-news", "anthropic-news"]
}
'@ | Set-Content -Encoding utf8 .\payload.json

openhawk-ai-cli call fetch_scope_items --args-file .\payload.json --compact
  1. 不带参数的工具可直接调用:
openhawk-ai-cli call get_project_overview --compact

🧾 退出码约定

  • 0:调用成功。
  • 1:执行期异常。
  • 2:参数错误 / 工具不存在 / JSON 格式错误。

🛠️ CLI 参数与覆盖范围

CLI 本身的固定参数如下:

级别 参数 说明
全局 --project-root 覆盖项目根目录
全局 --output-dir 覆盖运行输出目录
全局 --compact 输出紧凑 JSON
子命令 tools 列出可调用工具
子命令 call <tool> 调用指定工具
call 选项 --args 内联 JSON 参数
call 选项 --args-file 从 JSON 文件读参数

CLI 业务参数由具体工具决定,直接执行以下命令可查看全部工具参数定义:

openhawk-ai-cli tools --compact

覆盖边界:

  • 已覆盖当前 MCP 暴露的全部 22 个工具能力(项目概览、页面抓取、页面设置、页面订阅、论文分析等)。
  • 不直接覆盖进程/容器生命周期管理(例如启动或停止 Docker、启动 Web 服务进程)。
  • 不直接覆盖前端交互行为本身(例如浏览器点击),但可覆盖其对应的数据层操作(设置、抓取、订阅、推送)。

🔌 MCP 服务

启动

# stdio
python -m mcp_server.server --transport stdio

# http
python -m mcp_server.server --transport http --host 0.0.0.0 --port 3333

HTTP Endpoint:

http://127.0.0.1:3333/mcp

MCP 工具分组

  1. 项目概览
  • get_project_overview
  • list_pages
  • list_scopes
  1. 全局设置
  • get_global_settings
  • save_global_settings
  1. 页面数据与抓取
  • list_scope_sources
  • list_scope_items
  • fetch_scope_items
  • get_scope_settings
  • save_scope_settings
  1. 页面订阅
  • list_scope_subscriptions
  • upsert_scope_subscription
  • delete_scope_subscription
  • run_scope_subscriptions
  1. 论文能力
  • list_papers
  • get_paper_detail
  • deep_analyze_paper
  • set_paper_action
  1. 论文订阅
  • list_paper_subscriptions
  • upsert_paper_subscription
  • delete_paper_subscription
  • run_paper_subscriptions

🧠 配置说明

主要配置目录:config/

关键文件:

  • config/config.yaml:主配置(抓取、推送、AI、存储等)
  • config/timeline.yaml:定时策略(预设与自定义)
  • config/frequency_words.txt:关键词规则
  • config/ai_interests.txt:兴趣方向定义
  • config/ai_analysis_prompt.txt:分析提示词
  • config/ai_translation_prompt.txt:翻译提示词

运行输出目录:output/

常见持久化数据:

  • output/ai_progress_items.json
  • output/ai_progress_seen.json
  • output/panel_settings.json
  • output/progress_page_settings.json
  • output/panel_subscriptions.json
  • output/progress_subscriptions.json
  • output/news/*.db
  • output/rss/*.db

📣 推送渠道

已支持并在后端 + 前端 + MCP + CLI 统一:

  • feishu
  • wework
  • wechat(个人微信,基于 WeCom text)
  • telegram
  • dingtalk
  • ntfy
  • bark
  • slack
  • email

🗂️ 项目结构

.
├─ openhawk_ai/                # 核心能力(抓取/分析/通知/Web)
│  ├─ __main__.py             # 主程序入口
│  ├─ agent_cli.py            # Agent CLI 入口(新增)
│  └─ web/panel_server.py     # 交互式控制台服务
├─ mcp_server/                # MCP 服务
├─ config/                    # 配置与提示词
├─ docker/                    # Dockerfile / compose / 入口脚本
├─ docs/assets/               # README 视觉资源(含 OpenHawk SVG)
├─ output/                    # 运行时持久化数据
├─ README.md
└─ README-EN.md

❓常见问题

Q1: CLI 和 MCP 有什么关系?

CLI 直接调用 MCP 同构工具函数;MCP 适合协议接入,CLI 适合脚本与本地自动化。

Q2: CLI 能覆盖全部功能吗?

CLI 能覆盖当前 MCP 已暴露的全部能力(22 个工具)。如果你在 UI 上能做的是数据层操作(抓取、查阅、设置、订阅、推送),通常都可以通过 CLI 实现。

Q3: 为什么我看到重复消息?

请检查:

  • output/ai_progress_seen.json 是否被挂载并持久化。
  • 是否开启了多个重复订阅规则。
  • timeline 与页面级订阅是否在同一时间窗重复触发。

Q4: 如何最小化接入 Agent?

最简单方式:让 Agent 先调用

openhawk-ai-cli call get_project_overview

然后按需调用 list_scope_items / list_papers / run_*_subscriptions


🙏 致谢与参考

  • 本项目在产品思路与工程实践上参考并致谢 TrendRadar
  • OpenHawk 在此基础上进行了独立演进,包括 6 页面并列体系、区域化数据源、多渠道订阅推送、MCP + Agent CLI 一体化等。

📄 许可证

本项目采用 MIT License

About

OpenHawk is a global AI intelligence OS that tracks papers, frontier releases, market signals, policy/safety updates, and OSS trends with dedupe, LLM summaries, and multi-channel push.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages