云平台任务系统的三个隐藏规则:为什么你的自动化没得分
## 引子
最近在做一个云平台成长中心的每日任务自动化。四个任务:浏览案例、Star 仓库、体验云开发环境、发布文章。
脚本每天都返回"成功",但积分明细里经常少几笔。
查了三天,发现云平台任务系统有三条不成文的规则。
## 规则一:结算有延迟,不是实时
第一次遇到这个问题时,我以为任务失败了:
```
操作完成 -> 立刻查任务卡 -> 还是"去完成"
判断:失败了
重做一遍
```
第二天看积分明细,才发现**两笔都到账了**:
```
11-06 17:58 每日发布文章 +60
11-06 22:18 每日体验 AI DevSpace +30 <- 17:58 做的,22:18 到账
11-06 22:40 每日 Star 鸿蒙仓 +30 <- 约 22:00 做的,22:40 到账
```
延迟在 30-60 分钟。
**教训**:判断任务是否成功,不能看任务卡状态,要看积分明细。而且至少要等一小时。
更糟的是:如果在延迟期内重做,平台可能判定为"重复操作"而不给分。我第一次就是这么丢掉 Star 的 30 分。
## 规则二:路径依赖,从哪进的算数
同一个目标页,从不同入口进去,结算结果不同。
**案例:AI DevSpace 体验任务**
```
方式 A(失败):
直接访问 devstation.developer.huaweicloud.com/aidevspace
-> 进了容器,发了消息,AI 也回复了
-> 任务卡:去完成
方式 B(成功):
成长中心 -> 点任务的"去完成"
-> AI Agent 开发实践中心
-> 点"前往AI DevSpace实践"
-> 选"体验版" -> 立即进入
-> 新建会话 -> 对话
-> 任务卡:已完成
```
平台通过 `utm_source` 参数和来源页埋点判断操作是否"从任务入口发起"。直接输 URL 绕过入口,埋点丢失,任务不算。
**案例:Star 仓库任务**
```
方式 A(可能失败):
gitcode.com 搜索仓库名 -> 直接 Star
方式 B(成功):
鸿蒙实践中心 -> 打开案例详情页
-> 页面里点"前往代码仓"链接(带案例 ID 的跳转)
-> Star
```
同样的问题:缺少来源链路。
## 规则三:去重约束藏在文案里
任务卡写着"每日 Star 一个仓库",看起来每天 Star 一个就行。
点开任务指南,原文里有一句:
> 每日需 Star **不同项目**且**不可取消 Star**
两个约束:
**① 不同项目**
同一个仓库第二天再 Star,会被判定为"取消 Star"(因为 Star 是 toggle),任务作废。
**② 不可取消**
如果中途取消再 Star 回来,这一天的记录就废了。我犯过这个错:
```
Star 了仓库 A
-> 想改成仓库 B
-> 先把 A 取消
-> 再 Star B
-> 当天两个都不算
```
**教训**:任务文案要逐字读,特别是"每日/每周/不同/不可"这类限定词。
## 三条对策
### 对策一:用积分明细做 ground truth
```javascript
// 打开积分明细
const el = [...document.querySelectorAll('a, div, span')].find(e =>
e.innerText.trim() === '积分明细');
// 解析记录
const PAT = /([^
]+)
获得
\+(\d+)
(\d+)
(\d{4}\/\d{2}\/\d{2} \d{2}:\d{2})/;
```
任务卡状态会滞后,积分明细才是准的。
### 对策二:走完整路径,不直接跳目标页
```python
# 错
page.goto("https://target.com/goal")
# 对
page.goto("https://platform.com/tasks")
page.click("text=去完成") # 从平台入口点
page.click("text=前往实践") # 中间页
page.click("text=立即进入") # 目标
```
每一步都有埋点,少了就断链。
### 对策三:把约束编码成断言
```python
# 记录已 Star 的仓库,防止重复
starred_today = load("starred-2026-11-07.json")
repo = pick_repo(exclude=starred_today)
assert repo not in starred_today, "重复 Star 会被判无效"
star(repo)
save("starred-2026-11-07.json", starred_today + [repo])
```
## 一个检查清单
自动化跑批前,我会先确认:
| 问题 | 为什么重要 |
|---|---|
| 结算延迟多久? | 决定等待时间,避免误判 |
| 任务卡状态可信吗? | 不可信就用积分明细 |
| 从哪个入口算数? | 决定导航路径 |
| 文案里有哪些限定词? | 每日/不同/不可,都可能废掉当天记录 |
| 失败能重试吗? | 有些重试会判重复 |
## 小结
```
任务自动化失败,多数不是技术问题:
不是点不动(那看 isTrusted)
不是找不到元素
而是「技术做对了,业务规则没对上」
```
三个规则加起来的意思是:**平台要的是"像真人从入口点进去、按规矩走一遍",不是"结果达成"。**
这个差别,只有对账的时候才会暴露。
所以每次跑完,留半小时等结算,然后拉明细核对——这一步不能省。
- 点赞
- 收藏
- 关注作者
评论(0)