定时任务:每天早上自动生成盘前简报
系列·Agent 篇 04 — 串起前两篇的管子,让简报每天 8:00 自动送到微信/邮箱,路径一在此收官
📖 本篇是《AI 投研 Agent 部署》第 4 篇,前置:接入行情数据源与 LLM API。
01 · 目标形态
每个交易日早上 8:00,手机收到一条推送,内容大概长这样:隔夜美股要点 → 昨日 A 股回顾 → 你自选股的相关新闻 → 今日值得关注的事(数据发布/解禁/新股)。全程无人操作—— 这正是你部署这台服务器的意义。
02 · 写一个简报脚本
把"拉数据 → 调 LLM → 存结果"写成脚本 morning_brief.py,骨架二十行以内 (伪代码思路,LLM 可以帮你补全细节):
# 伪代码骨架
data = fetch_overnight() # 上一篇接好的数据源:隔夜指数/自选股快照
news = fetch_my_watchlist_news() # 自选股相关新闻(可选)
prompt = "你是盘前简报编辑,只用下面给出的数据写 300 字简报: " + data + news
brief = call_llm(prompt) # OpenAI 兼容接口,base_url 指向你的服务商
save("briefs/" + today() + ".md", brief)
push_to_phone(brief) # 第 04 节讲怎么推两个纪律:数字只从数据源来(prompt 里明说"只用我给的数据"),每天存档(按日期存 markdown,以后回看"它当时怎么说"非常有价值)。
03 · 挂 cron:让服务器自己记得做
crontab -e
# 周一到周五 08:00 执行,输出追加到日志
0 8 * * 1-5 cd /home/lab/brief && /usr/bin/python3 morning_brief.py >> brief.log 2>&1- 时间格式:
分 时 日 月 周;1-5表示周一到周五(节假日多跑一次没关系, 脚本里可以判断交易日)。 - 服务器时区在第一篇已设为 Asia/Shanghai;不放心就
date确认一下。 - cron 环境变量和你登录时不同,路径全部用绝对路径,这是 cron 类问题的大头。
04 · 推送到手机:三条免费通道
- 微信·Server酱 / pushplus — 微信扫码绑定后,脚本调一个 HTTP 接口就推到微信,最省事, 适合每天一条的简报。
- 邮件 — Python 标准库
smtplib+ QQ/163 邮箱的"授权码"即可发送; 免费无限量,适合内容长、想留档的场景。 - Telegram Bot — 海外通道,需要服务器能直连;功能最强(可交互),国内网络环境不通用。
不管选哪个,给推送函数加一层兜底:发送失败时写日志,别静默。
05 · 验收清单(连续跑三天)
- ☐ 周二、三、四早 8 点都按时收到(至少连续 3 天)。
- ☐ 简报里的数字抽查 2 个,与行情软件一致。
- ☐ 故意把 API key 改错跑一次:脚本要报错并留日志,而不是发出一份空简报——失败要看得见。
- ☐
briefs/目录里有按日期命名的存档。
06 · 避坑清单
- 推送晚 8 小时 — 服务器时区是 UTC,
timedatectl set-timezone Asia/Shanghai修正。 - 余额耗尽后天天发空简报 — 调 LLM 后检查返回是否为空/报错,失败就只发一条"今日简报生成失败"。
- cron 里 python 找不到 — 用
which python3查绝对路径写进 crontab。 - 脚本越写越复杂最后烂尾 — 先跑通"一条数据+100字"的最小版,再逐周加内容。简报的价值在每天都到,不在单天多华丽。