ccf-events

查询CCF(中国计算机学会)近期学术会议、认证竞赛、活动日程等信息。支持个性化推荐(根据用户研究领域/兴趣偏好筛选活动),自动区分活动状态(报名中/即将开始/已结束),为已结束活动提供数字图书馆视频和讲稿检索。

Audits

Pass

Install

openclaw skills install ccf-events

CCF 活动信息查询

获取中国计算机学会(CCF)近期学术会议、认证考试、活动日程等信息。

个性化推荐:如果用户提供了兴趣偏好(如研究方向、技术领域等),根据用户兴趣从所有活动中筛选并推荐相关活动。

核心功能

1. API数据源

  • 主要API端点https://conf.ccf.org.cn/conf/v2/index/meeting/list.do
  • 请求方法:POST
  • 请求体格式
    {
      "pageNo": 1,
      "pageSize": 50,
      "signupTimeState": "0",
      "sortType": "0"
    }
    
  • 查找活动结束时间在一个月内的活动、查找未来三个月内举办的活动

2. 会议地址生成规则

从API返回的会议数据中,每个会议记录包含:

  • id: 会议ID (meetingId)
  • shortUrl: 短链接标识
  • webUrl: 官方网站URL(如果有)

会议详情页面URL生成优先级:

3. 输出格式要求(强制执行)

  • 必须使用表格格式(禁止无格式长文本)
  • 会议地址列必须包含可点击的Markdown链接
  • 链接格式:会议地址

4. 特殊会议URL格式

会议类型URL格式
CNCChttps://cncc[年份].ccf.org.cn
YEF(青年精英大会)https://yef[年份].ccf.org.cn
ADL(学科前沿讲习班)https://ccf.org.cn/ADL[编号]
NCCA(计算机应用大会)https://ccf.org.cn/ncca[年份]

查询时间范围

  • 即将举办:未来三个月内(从今天到 +90 天)
  • 刚刚结束:过去一个月内(从今天到 -30 天)

执行步骤

步骤1:收集用户偏好(可选)

如果用户提供了兴趣偏好,先收集并记录:

  • 研究领域:如人工智能、数据挖掘、计算机网络、自然语言处理等
  • 活动类型:如学术会议、认证考试、公益活动、培训讲习班等
  • 参与目的:如学习新技术、获取认证、交流学术、企业合作等
  • 时间偏好:如近期可参加、暑期、节假日等
  • 地点偏好:如一线城市、高校所在地等

步骤2:调用CCF会议系统API获取数据

# 基础查询(无需用户输入)
curl -s -X POST "https://conf.ccf.org.cn/conf/v2/index/meeting/list.do" \
  -H "Content-Type: application/json" \
  -d '{"pageNo":1,"pageSize":50,"signupTimeState":"0","sortType":"0"}'

步骤3:解析API返回数据

从返回的JSON中提取 data.records 数组,每个记录包含:

  • id: meetingId
  • meetingTitle: 会议名称
  • startTime/endTime: 时间戳
  • province/city: 地点
  • shortUrl: 短链接
  • webUrl: 官方网站
  • signupTimeState: 报名状态

步骤4:生成会议详情链接

根据上述优先级规则生成每个会议的详情页面URL。

步骤5:筛选和整理数据,区分活动状态

判断活动状态的逻辑:

  • 当前日期在报名开始和结束时间之间 → 状态为 🟢 报名中
  • 当前日期早于报名开始时间 → 状态为 🔵 即将开始
  • 当前日期晚于活动结束时间 → 状态为 ⚪ 已结束

资源检索(CCF数字图书馆)

当用户想查询已结束活动的资源(视频、PPT、讲稿等)时使用。

安全要求:URL 编码

⚠️ 安全规范:用户输入的搜索关键词必须进行 URL 编码,禁止直接拼接到 URL 中。

# ✅ 正确做法:使用 --data-urlencode 自动编码
SEARCH_TERM="用户输入的关键词"
curl -G -sL "https://dl.ccf.org.cn/video/videoIndex.html" \
  --data-urlencode "searWord=${SEARCH_TERM}" \
  --data-urlencode "pageNum_p=1"

检索示例

# 按会议类型检索(固定关键词,安全)
curl -G -sL "https://dl.ccf.org.cn/video/videoIndex.html" \
  --data-urlencode "searWord=ADL" \
  --data-urlencode "pageNum_p=1"

# 按年份检索
curl -G -sL "https://dl.ccf.org.cn/video/videoIndex.html" \
  --data-urlencode "year=2025" \
  --data-urlencode "pageNum_p=1"

# 按用户输入的关键词检索(必须编码)
curl -G -sL "https://dl.ccf.org.cn/video/videoIndex.html" \
  --data-urlencode "searWord=${USER_KEYWORD}" \
  --data-urlencode "pageNum_p=1"

资源类型

类型中文名搜索URL
video视频https://dl.ccf.org.cn/video/videoIndex.html
ppt讲稿/PPThttps://dl.ccf.org.cn/ppt/pptIndex.html
article期刊/论文https://dl.ccf.org.cn/article/articleIndex.html
hy会议专辑https://dl.ccf.org.cn/albumList/albumSecondary.html?selectType=hy
zj专辑https://dl.ccf.org.cn/albumList/albumSecondary.html?selectType=zt

输出格式(强制要求)

【强制要求】必须严格按照以下格式输出,禁止输出无格式的列表或长文本!

状态判断规则

活动日期与当前日期比较状态必须输出的列
活动在当前日期之后,且在报名期内🟢 报名中日期、活动名称、地点、报名截止、会议地址
活动在当前日期之后,报名尚未开始🔵 即将开始日期、活动名称、地点、状态
活动在当前日期之前已结束⚪ 已结束日期、活动名称、地点、视频链接、讲稿链接

输出模板

如果用户提供了兴趣偏好,在输出开头增加「为你推荐」板块:

# CCF 近期活动概览

**查询日期:2026-05-06**

## 🎯为你推荐

> 根据你的兴趣偏好(XXX),为你筛选了以下活动:

| 日期 | 活动名称 | 地点 | 匹配原因 | 会议地址 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | 匹配"人工智能"领域 | [会议地址](https://ccf.org.cn/shortUrl) |

完整输出模板:

# CCF 近期活动概览

**查询日期:2026-05-06**

## 🎯为你推荐

> 根据你的兴趣偏好(XXX),为你筛选了以下活动:

| 日期 | 活动名称 | 地点 | 匹配原因 | 会议地址 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | 匹配"XXX" | [会议地址](https://ccf.org.cn/shortUrl) |

## 🟢 正在报名中

| 日期 | 活动名称 | 地点 | 报名截止 | 会议地址 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | 2026-XX-XX | [会议地址](https://ccf.org.cn/shortUrl) |

## 🔵 即将举办(未开始报名)

| 日期 | 活动名称 | 地点 | 状态 |
|------|----------|------|------|
| 2026-XX-XX | 活动名称 | 地点 |   即将开始 |

## ⚪ 已结束

| 日期 | 活动名称 | 地点 | 视频回顾 | 讲稿下载 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | [查看视频](https://dl.ccf.org.cn/video/videoIndex.html?searWord=关键词) | [下载讲稿](https://dl.ccf.org.cn/ppt/pptIndex.html?searWord=关键词) |

关键要求(必须执行)

  • 禁止输出长文本列表:不要输出无格式内容
  • 必须判断状态:根据活动日期和当前日期判断

报名中的活动:

  • 必须给出会议地址(可点击链接)
  • 链接格式:会议地址

已结束的活动:

个性化推荐规则

当用户提供兴趣偏好时,必须执行:

收集用户偏好关键词:

  • 研究领域:人工智能/机器学习/数据挖掘/计算机视觉/自然语言处理/网络安全/数据库/分布式系统/软件工程等
  • 活动类型:学术会议/认证考试/公益活动/培训讲习班/竞赛等
  • 其他:地点/时间/是否为CCF会员等

匹配活动:将用户关键词与活动主题进行匹配

活动关键词
CCDE数字经济、AI+场景、产业数字化
FCES计算机教育、教育改革、教学创新
CCDM数据挖掘、机器学习、知识发现
WISA信息系统、大数据、知识图谱
NLPCC自然语言处理、中文计算、LLM
YEF青年科技、创新创业、前沿技术
CNCC计算机大会、旗舰会议、综合
ADL学科前沿、讲习班、培训
GESP编程认证、青少年、等级考试
CCF公益日公益、技术公益、社会责任

推荐输出格式:

  • 在输出最前方增加「为你推荐」板块
  • 说明匹配原因(如"匹配'人工智能'领域")
  • 优先显示高匹配度的活动

重要URL汇总

类型URL
CCF首页https://www.ccf.org.cn
活动列表https://www.ccf.org.cn/Activities/Activities/
活动日历https://www.ccf.org.cn/ccf/eventcalendar/ch?SiteID=122
会议系统(报名)https://conf.ccf.org.cn/conf/show.action?code=index
CCF新闻https://www.ccf.org.cn/Media_list/
YEF大会https://yef.ccf.org.cn/
CNCChttps://cncc.ccf.org.cn
FCEShttps://ccf.org.cn/fces2026

CCF认证查询

认证类型概览

认证缩写全称目标人群官方网站
GESPCCF编程能力等级认证青少年编程学习者https://gesp.ccf.org.cn
PTACCF编程培训师资认证编程教师/培训师https://pta.ccf.org.cn
LMCCCCF大模型能力认证(青少年组/成人组)8-18岁青少年、18岁及以上成年人https://lmcc.ccf.org.cn
CSPCCF软件能力认证大学生/专业人士https://www.cspro.org

查询方法

1. 直接API查询(推荐)

对于GESP、PTA、LMCC认证,可直接访问其官方网站获取最新信息:

# GESP认证信息
web_fetch --url "https://gesp.ccf.org.cn" --extractMode markdown

# PTA认证信息  
web_fetch --url "https://pta.ccf.org.cn" --extractMode markdown

# LMCC认证信息
web_fetch --url "https://lmcc.ccf.org.cn" --extractMode markdown

2. CSP认证特殊处理

CSP认证官网(cspro.org)需要特殊处理:

# 使用web_search获取CSP最新通知
web_search --query "CCF CSP 认证考试 报名时间 YYYY"

# 或直接访问CSP官网
web_fetch --url "https://www.cspro.org" --extractMode markdown

3. 综合查询策略

当用户询问认证信息时,按以下优先级执行:

  1. 检查是否有具体认证类型(GESP/PTA/LMCC/CSP)

    • 如果有,直接查询对应官网
    • 如果没有,查询所有四种认证
  2. 提取关键信息

    • 考试日期
    • 报名截止时间
    • 费用标准
    • 报名方式
    • 参与条件
  3. 格式化输出

    • 使用表格展示各认证信息
    • 标注报名状态( 🟢 正在报名 / 🔵 即将开始 / ⚪ 已结束)
    • 提供官方链接

认证查询最佳实践

日期信息处理规范

  1. 严格区分不同类型的日期

    • 报名开始时间
    • 报名截止时间
    • 考试时间
    • 准考证下载时间
    • 成绩公布时间
  2. 数据源优先级

    • 第一优先级:官方通知公告页面
    • 第二优先级:认证系统首页
    • 第三优先级:CCF主站相关页面
  3. 验证逻辑

    • 报名截止日期 < 考试日期
    • 准考证下载时间 < 考试日期
    • 报名开始日期 < 报名截止日期
  4. 错误预防措施

    • 避免将其他活动的日期误认为目标认证日期
    • 不要基于当前日期推测截止日期
    • 当日期信息模糊时,明确标注"待官方确认"

GESP认证数据结构

  • 考试时间:每年4次(3月、6月、9月、12月)
  • 等级划分:1-8级(C++/Python),1-4级(图形化)
  • 年龄限制:6~18岁
  • 费用:1级300元,2级320元,3级340元,4级360元,5级380元,6级400元,7级420元,8级440元

PTA认证数据结构

  • 考试频率:每年2次
  • 科目类型:P(编程能力)、T1(教学能力笔试)、T2(教学能力面试)
  • 年龄限制:18周岁及以上
  • 联合认证:与中国青少年科技教育工作者协会合作

LMCC认证数据结构

  • 考试时间:每次认证有2轮考试
  • 年龄限制
  • 特色活动:包含交流活动环节

CSP认证数据结构

  • 考试频率:每年4次
  • 年龄限制:18周岁及以上
  • 考试形式:5道编程题,4小时,总分500分
  • 费用差异:会员/非会员价格不同,团报/个人报名价格不同

输出模板

# CCF认证考试报名信息汇总(查询日期:YYYY-MM-DD)

##   [认证名称]

**最新考试安排:**
- **第X次认证**:YYYY年MM月DD日
  - [具体时间安排]
- **报名时间**:[报名开始时间] - [报名截止时间]
- **费用标准**:[费用详情]
- **报名方式**:
  - 官网报名:[官方链接]
  - [其他报名方式]
- **参与条件**:[参与要求]

[重复以上结构为每个认证类型]

##   各认证官网链接

| 认证类型 | 官方网站 |
|----------|----------|
| GESP | [https://gesp.ccf.org.cn](https://gesp.ccf.org.cn) |
| PTA | [https://pta.ccf.org.cn](https://pta.ccf.org.cn) |
| LMCC | [https://lmcc.ccf.org.cn](https://lmcc.ccf.org.cn) |
| CSP | [https://www.cspro.org](https://www.cspro.org) |

## ⏰ 近期重要时间节点

- **[认证名称]报名**:[截止日期](还有X天)
- **[认证名称]考试**:[考试日期]

> **温馨提示**:建议考生提前注册账号并熟悉报名流程,部分考点考位有限,建议尽早报名。

错误处理

  1. 数据格式变更

    • 记录错误日志
    • 使用通用文本提取方法
    • 提示用户手动访问官网确认
  2. 认证时间冲突

    • 优先显示最近的考试安排
    • 标注多个可选考试时间
  3. 日期解析错误预防

    • 严禁混淆报名截止日期与考试日期
    • 必须从官方公告中直接提取具体日期,不得基于上下文推测
    • 当存在多个相关日期时,明确标注每个日期的含义(报名开始、报名截止、考试日期、准考证下载等)
    • 验证日期逻辑合理性(报名截止日期必须早于考试日期)
    • 如遇日期信息不完整,应明确告知用户并建议访问官网确认,而非做出假设

CCF竞赛查询

竞赛类型概览

竞赛缩写全称目标人群官方网站
NOI全国青少年信息学奥林匹克竞赛高中生(19岁以下)https://www.noi.cn/
CSP-J/SCCF非专业级软件能力认证小学生(12周岁及以上)/初中生/高中生https://www.noi.cn/
CCSPCCF大学生计算机系统与程序设计竞赛在校大学生https://ccsp.ccf.org.cn/

查询方法

1. NOI/CSP-J/S竞赛查询

NOI和CSP-J/S竞赛信息主要通过以下渠道获取(按优先级排序):

# CCF官网活动日历(最可靠,包含精确时间)
web_fetch --url "https://www.ccf.org.cn/ccf/eventcalendar/ch?SiteID=122" --extractMode markdown

# 精确搜索CCF官网的NOI通知
web_search --query "site:ccf.org.cn \"NOI 2026\" 报名通知"

# NOI官网新闻(可能需要处理编码问题)
web_search --query "NOI 2026 竞赛时间 青岛"

# CSP-J/S信息
web_search --query "CSP-J/S 2026 非专业级软件能力认证 报名时间"

NOI查询经验总结

  • CCF官网活动日历通常包含最准确的竞赛时间和地点信息
  • NOI官网有时存在编码问题,建议优先使用web_search
  • 搜索时添加具体年份和月份可获得更精确结果
  • 关注"报名截止时间"的精确到小时(如18:00)

2. CCSP竞赛查询

CCSP竞赛信息通过专门的竞赛官网获取:

# CCSP官网信息
web_fetch --url "https://ccsp.ccf.org.cn/" --extractMode markdown

# 搜索CCSP最新通知
web_search --query "CCSP 2026 大学生计算机系统与程序设计竞赛 报名时间"

3. 综合查询策略

当用户询问竞赛信息时,按以下优先级执行:

  1. 检查是否有具体竞赛类型(NOI/CSP-J/S/CCSP)

    • 如果有,直接查询对应官网
    • 如果没有,查询所有相关竞赛
  2. 提取关键信息

    • 竞赛日期
    • 报名截止时间
    • 参赛条件
    • 报名方式
    • 费用标准(如适用)
  3. 格式化输出

    • 使用表格展示各竞赛信息
    • 标注报名状态( 🟢 正在报名 / 🔵 即将开始 / ⚪ 已结束)
    • 提供官方链接

数据解析规则

NOI竞赛数据结构

  • 参赛对象:高中阶段在校学生,年龄≤19周岁
  • 竞赛体系:CSP-S → NOIP → 省选 → NOI
  • 组队要求:每省1领队+5选手(含1女选手)
  • 竞赛时间:每年7月举行(2026年为7月18-24日)
  • 费用政策:选手零收费,指导教师4800元/人(CCF会员3800元/人)
  • 报名截止:通常为5月中旬(2026年为5月17日18:00)

NOI查询最佳实践

  1. 官方信息源优先级

  2. 关键时间节点识别

    • 省选报名:通常1-2月
    • 省选考试:通常3月
    • 国赛报名:通常4-5月
    • 国赛举办:通常7月
  3. 搜索关键词优化

    • 基础搜索:"NOI 2026 报名通知"
    • 精确搜索:"site:ccf.org.cn "NOI 2026" 竞赛时间"
    • 时间限定:添加具体月份如"2026年7月"
  4. 信息验证要点

    • 确认主办单位为"中国计算机学会(CCF)"
    • 验证承办学校和地点信息
    • 核对报名截止时间的精确到小时
    • 确认费用政策是否为最新版本

CSP-J/S竞赛数据结构

  • CSP-J(入门级):面向小学生(12周岁及以上)、初中生,适合初次接触编程或竞赛经验较少的学生
  • CSP-S(提高级):面向初中生、高中生,适合有竞赛经验、希望进一步提升水平的学生
  • 考试安排
    • 第一轮(初赛):9月,笔试为主
    • 第二轮(复赛):11月,上机编程
  • 费用标准:第一轮50元,第二轮J组260元/S组480元

CCSP竞赛数据结构

  • 参赛对象:在校大学生(本科/研究生)
  • 资格要求:CSP认证成绩优秀者优先
  • 竞赛时间:每年10月
  • 竞赛形式:12小时高强度编程竞赛
  • 竞赛内容:算法、数据结构、操作系统、计算机网络等

输出模板

# CCF竞赛报名信息汇总(查询日期:YYYY-MM-DD)

##   [竞赛名称]

**最新竞赛安排:**
- **竞赛时间**:YYYY年MM月DD日
  - [具体时间安排]
- **报名时间**:[报名开始时间] - [报名截止时间]
- **参赛条件**:[参与要求]
- **报名方式**:
  - 官网报名:[官方链接]
  - [其他报名方式]
- **费用标准**:[费用详情,如适用]

[重复以上结构为每个竞赛类型]

##   各竞赛官网链接

| 竞赛类型 | 官方网站 |
|----------|----------|
| NOI | [https://www.noi.cn/](https://www.noi.cn/) |
| CSP-J/S | [https://www.noi.cn/](https://www.noi.cn/) |
| CCSP | [https://ccsp.ccf.org.cn/](https://ccsp.ccf.org.cn/) |

## ⏰ 近期重要时间节点

- **[竞赛名称]报名**:[截止日期](还有X天)
- **[竞赛名称]竞赛**:[竞赛日期]

> **温馨提示**:建议参赛者提前准备相关材料,关注官方通知,部分竞赛名额有限,建议尽早报名。

错误处理

  1. 数据格式变更

    • 记录错误日志
    • 使用通用文本提取方法
    • 提示用户手动访问官网确认
  2. 竞赛时间冲突

    • 优先显示最近的竞赛安排
    • 标注多个可选竞赛时间

注意事项

  • 部分网站使用JavaScript动态加载,直接curl只能获取部分数据
  • 如需获取完整数据,可能需要使用浏览器渲染工具
  • 如果curl无法获取,尝试添加更多Header:curl -s -L -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
  • 会议名称需链接到详情页
  • 标注最后更新时间

网页动态内容获取流程

当需要获取 CCF 网页的动态内容(如 JavaScript 渲染的页面)时,按以下流程执行:

决策流程

flowchart TD
    A[使用 curl 尝试 1 次<br>获取目标页面] --> B{返回内容是否有效?<br>(非空、非403/500<br>、无防火墙拦截)}
    
    B -- 是 --> C[静态页面<br>直接使用] --> I([结束])
    B -- 否 --> D[页面为动态渲染或返回403或被拦截<br>考虑使用 Puppeteer]
    
    D --> E{询问用户是否授权使用<br>Puppeteer 渲染页面?}
    
    E -- 授权 --> F[检测环境<br>安装/复用<br>Puppeteer] --> H[使用 Puppeteer<br>抓取动态内容] --> I
    E -- 拒绝 --> G[返回静态内容<br>并提示用户<br>可能不完整] --> I

判断是否需要 Puppeteer

curl 返回结果处理方式
状态码 200,内容长度 > 500 字符✅ 静态页面,直接使用
状态码 403 / 401 / 500⚠️ 可能被反爬或服务器错误,尝试 Puppeteer
出现页面加载的滚顶条或出现被拦截的信息⚠️ 可能被防火墙拦截,尝试 Puppeteer
状态码 200,内容极短(< 500 字符)或为空⚠️ 可能为动态渲染页面,尝试 Puppeteer
超时或连接失败⚠️ 网络问题,提示用户后重试

注意:仅在浏览器自动化功能确实需要时才考虑使用 Puppeteer。

安全要求

  • 用户明确授权:安装前必须获得用户的明确同意,禁止静默安装。脚本仅提供检测和安装指南,实际安装由用户手动执行命令完成
  • 本地安装:使用 scripts/ensure_puppeteer.js 脚本进行环境检测,安装命令由用户手动执行,确保仅安装到当前项目目录,不修改全局 Node/npm 环境
  • 固定版本号:脚本内置固定版本 puppeteer@24.15.0,输出的安装命令使用固定版本,禁止安装未固定版本
  • 优先复用:脚本优先检测并使用用户环境中已存在的 Puppeteer 和系统浏览器,避免重复安装
  • 禁止自动执行:脚本不自动执行任何安装命令,仅输出手动安装指南,所有安装操作需用户手动确认和执行
  • 禁止第三方脚本:仅使用项目自带的 scripts/ensure_puppeteer.js 脚本进行环境检测

CCF定时任务自动化

定时任务概述

CCF定时任务功能允许用户自动定期获取CCF新闻、活动等信息,支持个性化推荐和智能提醒。

定时任务类型

1. CCF新闻与活动摘要

  • 执行频率:根据用户需求配置(可选择每天、每周或其他频率)
  • 通知时间:根据用户偏好设置具体通知时间
  • 内容范围:CCF新闻 + 近期活动 + 个性化推荐
  • 适用场景:希望定期了解CCF动态的用户

2. 活动汇总报告

  • 执行频率:根据用户需求配置(通常为每周,也可自定义)
  • 通知时间:根据用户偏好设置具体通知时间
  • 内容范围:活动安排 + 新闻回顾 + 未来预告 + 报名提醒
  • 适用场景:需要全面了解CCF活动安排的用户

3. 认证/竞赛报名提醒

  • 执行频率:根据用户关注的认证/竞赛类型和需求配置
  • 通知时间:根据用户偏好设置具体通知时间
  • 内容范围:根据用户关注的活动类型(如NOI/CSP/CCSP/GESP/PTA/LMCC等)提供相应的报名截止提醒
  • 适用场景:关注特定认证或竞赛报名的用户

定时任务生成方法

1. 使用cron工具创建任务(根据用户需求自定义)

// 示例:自定义频率和时间的CCF新闻摘要任务
cron.add({
  name: "CCF新闻摘要-自定义",
  // 根据用户需求设置cron表达式
  // 每天9点: "0 9 * * *"
  // 每周一10点: "0 10 * * 1"  
  // 每周三/五8点: "0 8 * * 3,5"
  schedule: { kind: "cron", expr: "<用户自定义的cron表达式>", tz: "Asia/Shanghai" },
  payload: { 
    kind: "systemEvent", 
    text: "⏰ CCF新闻摘要时间到了!请根据用户偏好(研究领域、活动类型、地理位置、可参与时间)查询相关内容..."
  },
  sessionTarget: "main"
})

// 示例:自定义认证/竞赛关注范围
cron.add({
  name: "CCF认证竞赛提醒-自定义",
  schedule: { kind: "cron", expr: "<用户自定义的cron表达式>", tz: "Asia/Shanghai" },
  payload: { 
    kind: "systemEvent", 
    text: "🎯 CCF认证/竞赛提醒时间到了!请根据用户关注的认证/竞赛类型(如GESP/LMCC/CSP/NOI/CCSP/PTA等)检查报名截止日期..."
  },
  sessionTarget: "main"
})

2. 用户需求收集模板

在创建定时任务前,应收集以下用户信息:

## 用户定时任务需求

### 执行频率偏好
- [ ] 每天
- [ ] 每周(周几:______)
- [ ] 每月(几号:______)
- [ ] 自定义频率:_____________

### 通知时间偏好
- 希望在每天 ______ 点收到通知
- 时区:Asia/Shanghai(默认)

### 内容关注范围
- [ ] CCF新闻
- [ ] 学术会议(CNCC/YEF/ADL等)
- [ ] 认证考试(GESP/PTA/LMCC/CSP)
- [ ] 竞赛活动(NOI/CCSP等)
- [ ] 技术论坛
- [ ] 其他:_____________

### 个性化偏好
- 研究领域:_________________
- 活动类型:_________________
- 地理位置:_________________
- 可参与时间:_______________

2. 用户偏好集成

根据用户提供的偏好或历史聊天记录总结用户兴趣方向:(以下为示例)

## 技术兴趣(用于活动推荐)
- **研究领域**: 人工智能、自然语言处理、大模型
- **偏好活动类型**: 讲习班、CNCC、技术论坛
- **常驻城市**: 北京
- **可参与时间**: 周末、节假日

## 个性化设置
- 自动推荐匹配兴趣的活动:是
- 自动检索已结束活动资源:是

3. 个性化推荐规则

  • 研究领域匹配:优先推荐用户关注领域方向的活动
  • 活动类型偏好:优先推荐用户指定的讲习班、CNCC、技术论坛等活动
  • 地理偏好:优先推荐用户所在地区及周边地区活动
  • 时间偏好:标注适合周末参加的活动

定时任务管理命令

查看所有任务

cron list

删除特定任务

cron remove --jobId <任务ID>

更新任务配置

cron update --jobId <任务ID> --patch '{"schedule":{"expr":"新的cron表达式"}}'

禁用/启用任务

# 禁用
cron update --jobId <任务ID> --patch '{"enabled":false}'
# 启用
cron update --jobId <任务ID> --patch '{"enabled":true}'

输出格式规范

定时任务的标准输出格式:

# CCF [日期] 活动概览

## 🎯 为您推荐
> 根据您的兴趣偏好(xxx),为您筛选了以下活动:

| 日期 | 活动名称 | 地点 | 匹配原因 | 状态 |
|------|----------|------|----------|------|

## 📰 今日新闻
[今日CCF官方新闻]

## 🟢 正在报名中
[报名中的活动列表]

## 🔵 即将开始
[即将开始的活动列表]

## ⏰ 重要提醒
- [认证/竞赛报名截止提醒]

跨平台兼容性

  • 统一调度机制:不依赖操作系统原生定时器
  • 标准cron语法:在Windows/Linux/macOS上使用相同的cron表达式
  • 时区支持:支持任意IANA时区(如Asia/Shanghai)
  • 自动恢复:OpenClaw重启后定时任务自动恢复
  • 无需特殊权限:不需要管理员/root权限