重写为 AI 情报 Agent 并接入 Jenkins 流水线

This commit is contained in:
Codex
2026-07-08 21:41:46 +08:00
commit f471c2a08a
45 changed files with 2163 additions and 0 deletions
+95
View File
@@ -0,0 +1,95 @@
# SignalScout
SignalScout 是一个定时运行的 AI 情报 Agent。它先用动态新闻搜索和 GitHub 官方搜索抓取候选证据,再使用 Grok 通过中转 API 生成最新 AI 新闻、模型发布、Agent 工具、融资动态和 GitHub 热门项目日报,并把结构化情报保存到 MySQL。
## 主流程
```text
Scheduler/API
-> AgentRunner
-> News Search API 采集近期 AI 新闻候选
-> GitHub Search API 采集近期热门 AI 项目候选
-> Grok 研判新闻候选与 GitHub 候选
-> MySQL signals/reports
-> Markdown report file
```
## 本地配置
复制环境变量:
```bash
cp .env.example .env
```
关键配置:
```env
SIGNALSCOUT_DATABASE_URL=mysql+pymysql://user:password@host:3306/signalscout?charset=utf8mb4
SIGNALSCOUT_LLM_BASE_URL=https://api.zayuapi.com/v1
SIGNALSCOUT_LLM_API_KEY=你的中转站 key
SIGNALSCOUT_LLM_MODEL=grok-4.3
SIGNALSCOUT_NEWS_RECENT_DAYS=3
SIGNALSCOUT_NEWS_MAX_ITEMS=12
SIGNALSCOUT_NEWS_SEARCH_MAX_RECORDS=20
SIGNALSCOUT_GITHUB_RECENT_DAYS=30
SIGNALSCOUT_GITHUB_MIN_STARS=20
SIGNALSCOUT_GITHUB_MAX_PROJECTS=5
```
## 本机运行
按项目规则,本机 Python 使用:
```text
D:\Python\Python39\python.exe
```
在 WSL shell 中对应命令已经写进 `Makefile`
```bash
make install
make migrate
make seed
make run
```
后端启动后访问:
```text
http://127.0.0.1:8010/health
http://127.0.0.1:8010/docs
```
## API
- `GET /health`:服务健康检查
- `POST /agent/runs/daily`:手动触发每日 Agent
- `POST /agent/runs/daily/stream`:以 SSE 方式触发每日 Agent
- `GET /agent/runs`:查看最近运行记录
- `GET /signals`:查看结构化情报
- `GET /reports/latest`:查看最新日报
- `GET /dashboard`:获取仪表盘数据
- `POST /topics`:新增 Agent 跟踪主题
- `GET /topics`:查看 Agent 跟踪主题
- `GET /logs/recent`:查看最近运行日志
## 部署
部署文件使用和 `agent-desk` 一致的 Gitea + Jenkins 流水线结构:
- Gitea 仓库:`https://gitea.jaycode.online/gitadmin/signalscout-backend`
- Jenkins Job`signalscout-backend`
- 源码目录:`/opt/signalscout-source`
- 发布目录:`/opt/signalscout`
- 部署脚本:`deployment/jenkins/deploy_backend.sh`
- systemd 服务:`deployment/systemd/signalscout.service`
- Jenkins 流水线:`Jenkinsfile`
默认域名:
```text
https://signalscout.jaycode.online/
https://gitea.jaycode.online/
https://jenkins.jaycode.online/
```