diff --git a/scripts/generate_ai_news.py b/scripts/generate_ai_news.py
new file mode 100644
index 0000000..af49140
--- /dev/null
+++ b/scripts/generate_ai_news.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python3
+"""
+AI 每日新闻生成器
+- 搜索最新 AI 产品
+- 生成 HTML 页面
+- 推送到 Gitea 仓库
+"""
+
+import os
+import sys
+import json
+import subprocess
+from datetime import datetime
+from pathlib import Path
+
+# Gitea 配置
+GITEA_URL = "https://git.zjpb.net"
+GITEA_USER = "jowelin83"
+GITEA_TOKEN = "2882a85f18cdd6fcfcda5a64603dbf5bfa46947d"
+REPO_NAME = "ai-daily-news"
+
+# 临时目录
+TEMP_DIR = Path("/tmp/ai-news-gen")
+REPO_DIR = TEMP_DIR / REPO_NAME
+
+def search_ai_products():
+ """搜索最新AI产品(使用 web_search)"""
+ # 这里需要调用 OpenClaw 的 web_search 工具
+ # 现在返回示例数据
+ return [
+ {
+ "name": "示例产品",
+ "category": "AI工具",
+ "desc": "示例描述",
+ "company": "Example Inc",
+ "date": "1天前",
+ "tags": ["热门", "AI"]
+ }
+ ]
+
+def generate_html(products, date_str):
+ """生成HTML页面"""
+ html = f"""
+
+
+
+
+ 🔥 AI每日新闻 - {date_str}
+
+
+
+
+
+
+"""
+ return html
+
+def push_to_gitea(date_str, html_content):
+ """推送到Gitea"""
+ # 克隆仓库
+ repo_url = f"https://{GITEA_TOKEN}@{GITEA_URL.replace('https://', '')}/{GITEA_USER}/{REPO_NAME}.git"
+
+ if not REPO_DIR.exists():
+ subprocess.run(["git", "clone", repo_url], cwd=TEMP_DIR, check=True)
+
+ # 创建日期目录
+ date_dir = REPO_DIR / date_str
+ date_dir.mkdir(exist_ok=True)
+
+ # 写入HTML
+ (date_dir / "index.html").write_text(html_content)
+
+ # 提交推送
+ subprocess.run(["git", "add", "."], cwd=REPO_DIR, check=True)
+ subprocess.run(["git", "commit", "-m", f"feat: 添加 {date_str} AI新闻"], cwd=REPO_DIR, check=True)
+ subprocess.run(["git", "push", "origin", "main"], cwd=REPO_DIR, check=True)
+
+def main():
+ # 获取日期
+ today = datetime.now().strftime("%Y-%m-%d")
+
+ # 搜索产品
+ products = search_ai_products()
+
+ # 生成HTML
+ html = generate_html(products, today)
+
+ # 推送到Gitea
+ push_to_gitea(today, html)
+
+ print(f"✅ {today} AI新闻已推送")
+
+if __name__ == "__main__":
+ main()