用 WorkBuddy 定时整理前一天的招投标公开信息,推送到钉钉、企微、飞书办公群
用 WorkBuddy 定时整理前一天的招投标公开信息
每天整理招投标公告时,重复操作很多。选日期、填关键词、翻页、复制项目字段、保存链接,再把结果发到办公群。漏掉其中一步,第二天还得回头补。
这套流程可以放进 WorkBuddy 的定时任务。任务每天按固定时间运行,查询前一个自然日发布的公开信息,逐页取完结果,保存一份 Markdown 文件,再把查询概况发送到办公群。
本文只记录配置方法。示例中的地区和关键词用于演示,实际使用时按自己的工作范围修改。
任务运行过程
完整过程可以概括为一条线。
定时启动 → 计算昨天日期 → 调用已安装的查询技能 → 逐页获取 → 补充详情和来源 → 保存文件 → 发送群消息 → 记录执行状态
日期和分页规则需要写具体。日期使用昨天 00:00:00—23:59:59,时区为 Asia/Shanghai。分页从第1页开始,只要接口返回 hasNext=true,就继续读取下一页,直到 hasNext=false。
先做一次手动测试
打开 WorkBuddy,新建普通任务,在「选择模型和技能」中选择已经安装的 全国招投标项目查询skill技能或者在技能中心搜索:全国招标中标查询及企业分析【日更新30万数据】。先输入一段短指令,确认查询、详情和来源链接都能正常返回。
查询昨天广东省发布的招投标公开信息。 包含关键词:无人机|低空经济|航空测绘 排除关键词:培训|招聘 从第1页开始,每页20条。hasNext=true 时继续查询下一页,直到 hasNext=false。 对每条记录使用接口返回的真实 id 和 publishTime 获取结构化详情及采集源网址。未返回的字段写「未返回」,调用失败时记录失败状态,不补写推测内容。
手动运行后检查下面几项。
-
日期是否为昨天的完整自然日
-
查询是否从第1页持续到最后一页
-
每条记录是否尝试获取详情和采集源网址
-
获取失败的记录是否仍保留在结果中
-
项目字段和来源网址是否来自真实返回值
测试正常后,再把同样的要求放进定时任务。
设置每日任务
进入 WorkBuddy 的自动化或定时任务页面,新建任务。任务名称可以写 每日招投标公开信息整理,频率选择每日,时间可设为 08:30,时区选择 Asia/Shanghai。
在「选择模型和技能」中选择刚才手动测试过的查询技能。如果技能需要访问凭据,应在产品提供的凭据设置位置完成配置,不要把凭据写进公开文章、任务输出或截图。
建议开启失败通知。接口偶尔会出现超时,任务中可以为单页查询设置两次重试。重试后仍失败时,保留已经取得的数据,同时把本次执行标记为不完整。
群机器人配置
在接收消息的办公群中添加群机器人,复制机器人生成的 Webhook。
【在私人任务中填写群机器人 Webhook】
下面的任务提示词以企业微信群机器人为例。钉钉群和飞书群也可以使用各自群机器人提供的 Webhook,发送格式以对应平台的机器人文档为准。
企业微信 Markdown 单条消息有长度限制。项目较多时,应按完整项目拆成多条消息,并标注第几部分。发送后检查平台返回值,只有 errcode=0 才记录为发送成功。
定时任务提示词
复制下面的内容到 WorkBuddy 定时任务中,再修改技能、地区、关键词和私人 Webhook。
请完成一次每日招投标公开信息整理任务。
【运行参数】
查询技能:使用当前任务中已经选择的招投标公开信息查询技能
查询地区:广东省
包含关键词:无人机|低空经济|航空测绘
排除关键词:培训|招聘
单页数量:20
群机器人 Webhook:【仅在私人任务中填写】
【时间范围】
按照 Asia/Shanghai 时区读取本次任务的执行日期,并计算昨天。
查询开始时间为昨天 00:00:00。
查询结束时间为昨天 23:59:59。
每次执行时重新计算日期,不使用固定日期,不使用最近24小时,也不包含今天发布的数据。
【查询范围】
查询公开招标、采购公告、竞争性磋商、候选人公示、中标结果和成交结果。
使用运行参数中的地区、包含关键词和排除关键词。竖线表示满足其中任意一个关键词。
【分页读取】
从第1页开始,每页20条。
当前页返回 hasNext=true 时,把页码加1并继续查询。
当前页返回 hasNext=false 时,结束分页。
不要限制最大页数,不要因为结果较多提前停止,不按标题合并记录。使用 id 和 publishTime 识别每条记录。
单页查询失败时重试2次。重试后仍失败,保留已经取得的页面,记录失败页码,并将全量获取状态写为「不完整」。不要跳过失败页后继续声明全量完成。
如果接口返回 total,分页结束后核对 total、各页数量之和以及按 id+publishTime 统计的唯一记录数。数量不一致时写入异常记录。
【详情补充】
遍历本次取得的全部记录。使用每条记录真实的 id 和 publishTime 获取结构化详情和采集源网址。
项目ID、发布时间、项目编号、采购人、中标人、代理机构、金额和网址都使用查询技能的真实返回值。
结构化详情获取失败时,保留列表信息并写「结构化详情获取失败」。
采集源网址获取失败时,保留该项目并写「采集源网址获取失败」。网址不得自行拼接。
【保存文件】
在当前任务选择的工作文件夹中保存 Markdown 文件。
文件名:
招投标公开信息_查询日期YYYY-MM-DD_执行日期YYYY-MM-DD.md
文件使用以下格式:
# 招投标公开信息
## 查询记录
- 查询日期:
- 时间范围:昨天 00:00:00 至 23:59:59
- 执行日期:
- 实际执行时间:
- 时区:Asia/Shanghai
- 查询地区:
- 包含关键词:
- 排除关键词:
- 单页数量:20条
- 接口总数 total:
- 实际查询页数:
- 各页数量之和:
- 唯一记录数:
- 全量获取状态:完整或不完整
## 完整记录
所有页面的记录从1开始连续编号。每条按下面的字段顺序输出。
### 1. 项目标题
- 信息分类:
- 发布时间:
- 地区:
- 项目编号:
- 采购人/甲方:
- 中标人/乙方:
- 代理机构:
- 预算金额:
- 中标金额:
- 报名截止时间:
- 开标时间:
- 项目ID:
- 采集源网址:
- 结构化详情状态:
- 采集源网址状态:
继续写完全部记录。接口没有返回的字段写「未返回」。不要删减后续页面,不把分析判断写入事实字段。
## 执行异常
记录分页失败、数量核对不一致、详情获取失败、来源网址获取失败、字段未返回和群消息发送失败。没有异常时写「无」。
【生成群消息】
文件保存后,生成企业微信 Markdown 消息。
消息开头写明查询日期、时间范围、地区、关键词、接口总数、实际页数、唯一记录数和全量获取状态。
每条记录保留以下内容:
## 序号. 项目标题
- 类型:
- 发布时间:
- 地区:
- 采购人:
- 中标人:
- 项目金额:
- 项目ID:
- 原始来源:[查看原公告](真实采集源网址)
- 数据状态:详情成功或失败;来源成功或失败
消息覆盖本次取得的全部记录,顺序与保存文件一致。
【发送企业微信群】
任务执行时临时使用 Windows PowerShell 的 Invoke-RestMethod 发送消息,不创建本地推送脚本。
$wecomContent = @'
这里放入当前一条企业微信 Markdown 消息
'@
$webhookUrl = '读取运行参数中的私人 Webhook'
$payload = @{
msgtype = 'markdown'
markdown = @{
content = $wecomContent
}
} | ConvertTo-Json -Depth 5 -Compress
$response = Invoke-RestMethod `
-Uri $webhookUrl `
-Method Post `
-ContentType 'application/json; charset=utf-8' `
-Body ([System.Text.Encoding]::UTF8.GetBytes($payload))
发送前按 UTF-8 计算消息字节数,单条不得超过平台限制。超长内容按完整项目拆分,并标注「第1/N部分」「第2/N部分」。不要在一个项目中间截断。
每条消息都检查返回值。errcode=0 时记录发送成功,其他返回值记录 errcode 和 errmsg。任何一条发送失败,都保留已经保存的完整文件。
禁止在回复、保存文件、群消息和错误日志中显示完整 Webhook。
【执行记录】
任务结束时输出:
- 查询日期:
- 查询时间范围:
- 实际查询页数:
- 接口总数 total:
- 各页数量之和:
- 唯一记录数:
- 全量获取状态:
- 分页失败页码:
- 完整文件位置:
- 详情获取成功数:
- 详情获取失败数:
- 来源网址获取成功数:
- 来源网址获取失败数:
- 群消息数量:
- 群消息发送状态:
- 失败原因:
只有全部页面已经查询到 hasNext=false、数量核对不存在未说明的差异、完整文件已经保存、每条记录都尝试补充详情和来源网址,并且所有群消息发送成功,才能将任务状态写为「成功」。
第二天检查执行记录
任务启用后的第二天,先看办公群是否收到消息,再打开 WorkBuddy 的执行记录。需要确认查询日期、实际页数、唯一记录数、详情失败数和文件保存位置。
群里没有消息时,依次检查任务是否启用、时区是否正确、查询技能是否仍被选中、群机器人是否有效,以及发送请求返回了什么错误。
连续运行几天没有分页缺口,日期和数量也都正常,再把它作为固定任务使用。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)