Install
openclaw skills install today-task通用任务结果推送器,当任务完成后将结果推送到负一屏。使用统一的标准数据格式,支持各种类型的任务结果推送。
openclaw skills install today-task这是一个通用的任务结果推送器,专门用于在任务完成后将结果推送到负一屏。使用统一的标准数据格式,支持各种类型的任务结果推送。
# 1. 创建JSON文件
{
"task_name": "任务名称",
"task_content": "# Markdown内容",
"task_result": "完成状态"
}
# 2. 推送
python scripts/task_push.py --data task.json
# 从markdown文件创建JSON
python scripts/create_task_json.py "任务名称" content.md
# 输出:已创建 任务名称_20260402.json
注意:不再支持--name、--content等命令行参数。
python scripts/update_checker.py
更新检查策略:
使用 JSON 推送成功 + 有更新时:
✅ 任务推送成功!
🔄 技能更新检查:
发现新版本可用!
当前版本: {当前版本}
最新版本: {最新版本}
💡 更新命令: `clawhub update today-task`
使用 JSON 推送成功 + 无更新/无需检查时:
✅ 任务推送成功!
(技能更新检查:配置未开启/时间间隔未满足/已是最新版本,无需提示)
使用 JSON 推送成功 + 更新检查异常时:
✅ 任务推送成功!
⚠️ 更新检查异常:无法从ClawHub获取版本信息,请检查网络或稍后重试
推送失败时:
❌ 任务推送失败!
{错误信息}
clawhub update today-task本技能已通过安全审查,不包含恶意代码。除可选的技能更新检查外,所有网络请求仅发送到用户配置的指定 URL。更新检查会联系 ClawHub 服务获取版本信息。
本技能会传输以下数据到配置的端点:
ABC*** 格式详细安全声明请查看 SECURITY.md。
本技能需要以下配置才能正常工作:
https://hiboard-claw-drcn.ai.dbankcloud.cn/distribution/message/cloud/claw/msg/upload本技能使用混合配置系统,支持灵活的配置优先级:
使用本技能时,您的数据将被发送到配置的推送端点:
https://hiboard-claw-drcn.ai.dbankcloud.cn/distribution/message/cloud/claw/msg/upload
authCode):用于服务认证的令牌task_content):您输入的任务文本内容# 设置授权码
openclaw config set skills.entries.today-task.config.authCode YOUR_AUTH_CODE
# 设置推送URL
openclaw config set skills.entries.today-task.config.pushServiceUrl YOUR_PUSH_URL
# 查看技能配置
openclaw config get skills.entries.today-task
# 删除配置
openclaw config unset skills.entries.today-task.config.authCode
openclaw config unset skills.entries.today-task.config.pushServiceUrl
其他配置项在技能目录的 config.json 文件中设置:
{
"timeout": 30,
"max_content_length": 5000,
"auto_generate_id": true,
"default_result": "任务已完成",
"log_level": "INFO",
"save_records": true,
"records_dir": "push_records",
"max_records": 100,
"pushServiceUrl": "https://hiboard-claw-drcn.ai.dbankcloud.cn/distribution/message/cloud/claw/msg/upload"
}
注意:如果缺少必需的授权码或推送 URL 配置,技能将无法正常工作并会显示明确的错误信息。
本技能会在本地创建以下目录用于运行记录:
logs/)Twe7*** 格式)log_level 配置项控制详细程度push_records/)save_records 配置项控制是否保存(默认:true)max_records 配置项控制最大记录数(默认:100)records_dir 配置项指定目录位置用户责任:请定期检查和管理这些本地文件,确保符合您的隐私要求。
{
"authCode": "string", // 授权码,负一屏上对openclaw进行账号关联之后生成的授权码
"msgContent": [ // MsgContent数组,消息内容
{
"scheduleTaskId": "string", // 任务ID,必填,对于周期性任务此ID需要保持一致
"scheduleTaskName": "string", // 任务名称,必填,如"生成日报任务、生成新闻任务"
"summary": "string", // 任务摘要,必填,说明具体是什么任务,以及任务的执行状态,比如 "生成新闻早报任务已完成"、"生成新闻早报任务异常"
"result": "string", // 任务执行结果,必填,说明是已成功完成了,还是异常中断了
"content": "string", // 任务的执行结果具体内容,markdown格式的长文本数据,必填
"source": "string", // 来源,人工是openclaw的任务,则值为OpenClaw,必填
"taskFinishTime": "number" // 任务完成的时间戳,秒的时间戳,必填
}
]
}
}
避免使用错误的时间戳获取方式,这可能导致推送时间显示不正确!
# PowerShell 中的错误方式(可能产生时区问题)
[int][double]::Parse((Get-Date -UFormat %s))
[int](Get-Date -UFormat %s)
import time
timestamp = int(time.time()) # UTC 时间戳,推荐使用
# 正确!使用 UTC 时间,避免时区问题
$timestamp = [DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
##### PowerShell需要设置控制台编码为UTF-8
```powershell
# 正确设置控制台编码为UTF-8
chcp 65001
本技能自动处理时间戳:
time.time() 获取 UTC 时间戳如果你在其他脚本中集成本技能,请验证时间戳:
# 验证时间戳是否在合理范围内
import time
def validate_timestamp(timestamp):
min_valid = 1609459200 # 2021-01-01
max_valid = int(time.time()) + 31536000 # 当前时间 + 1年
return min_valid <= timestamp <= max_valid
# 使用示例
current_ts = int(time.time())
if validate_timestamp(current_ts):
print(f"时间戳有效: {current_ts}")
else:
print(f"时间戳可能有问题: {current_ts}")
任务的执行结果具体内容使用 markdown 格式,遵循以下样式规范:
主标题文本
一级文本
二级文本
段落文本
分割线
AI 生成注释文本
{
"task_id": "string", // 任务ID(必填)
"task_name": "string", // 任务名称(必填)
"task_result": "string", // 任务执行结果描述(必填)
"task_content": "string", // 任务详细内容,markdown格式(必填)
"schedule_task_id": "string", // 周期性任务ID(必填,非周期性任务时等于task_id)
"auth_code": "string" // 授权码(可选,可在配置中设置)
}
// 格式1:完整格式
{
"task_id": "news_20240327_1001",
"task_name": "今日新闻汇总",
"task_result": "任务已完成",
"task_content": "# 今日新闻汇总\n\n## 热点新闻\n\n1. OpenAI发布新一代模型...",
"schedule_task_id": "news_20240327_1001",
"auth_code": "asdf166553"
}
{
"success": true,
"message": "任务结果推送成功",
"task_id": "news_20240327_1001",
"task_name": "今日新闻汇总",
"push_time": "2024-03-27 10:15:30",
"record_id": "push_20240327_101530",
"hiboard_response": {
"code": "0000000000",
"desc": "成功"
},
"update_check": {
// 版本更新检查
"status": "skipped_or_error",
"message": "更新检查异常或配置未开启",
"should_notify": false // 是否提示用户,true则提示用户
}
}
{
"success": false,
"message": "错误描述",
"task_id": "news_20240327_1001",
"task_name": "今日新闻汇总",
"error_type": "validation|format|network|system|auth|service",
"push_time": "2024-03-27 10:15:30",
"suggestion": "建议的解决方案",
"update_check": {
// 版本更新检查
"status": "skipped_or_error",
"message": "更新检查异常或配置未开启",
"should_notify": false // 是否提示用户,true则提示用户
}
}
系统提供了详细的错误码处理功能,当推送失败时会返回具体的错误信息和解决方案。
问题描述: 授权码无效或用户未在负一屏关联账号 解决方案:
问题描述: 负一屏云推送到服务动态云有报错,需要检查返回的 desc 字段
解决方案:
解决方案:
解决方案:
错误信息会包含详细的结构化内容:
错误代码: 0000900034
错误描述: 授权码无效
[问题分析] 授权码无效或未关联
[解决方案] 请您到负一屏 -> 我的页 -> 动态管理 -> 关联账号 -> 点击Claw智能体去获取授权码
[操作步骤]
1. 从手机桌面右滑进入负一屏
2. 点击左上角头像
3. 进入"我的"页面,点击右上角设置图标
4. 选择"动态管理"
5. 点击"关联账号"
6. 找到"Claw智能体"并点击获取授权码
[技术支持]
- 如问题无法解决,请记录错误代码并提供给技术支持
- 错误发生时间: 2026-03-30 17:10:00
1. 执行某个任务(如查询新闻、检查天气、生成报告等)
2. 任务完成后,生成markdown格式的结果
3. 调用本技能推送结果到负一屏
4. 用户可以在负一屏查看任务结果
# 在其他技能中调用本技能
def complete_task_and_push(task_name, task_content, task_result="任务已完成"):
# 1. 准备任务数据
task_data = {
"task_id": f"{task_name}_{datetime.now().strftime('%Y%m%d_%H%M%S')}",
"task_name": task_name,
"task_result": task_result,
"task_content": task_content
}
# 2. 调用推送技能
push_result = push_to_negative_screen(task_data)
return push_result
首次使用本技能时请注意:
hiboard-claw-drcn.ai.dbankcloud.cn(华为云服务)# 任务完成后
任务完成,推送到负一屏
# 1. 首先创建 JSON 文件(推荐使用工具)
python scripts/create_task_json.py "任务名称" content.md
# 2. 推送任务结果(实际发送)
python scripts/task_push.py --data task_result.json
# 3. 安全测试:使用 --dry-run 参数避免实际发送
python scripts/task_push.py --data task_result.json --dry-run
# 4. 使用配置文件中的授权码
python scripts/task_push.py --data task_result.json --config config.json
# 重要:不再支持 --name、--content、--result 参数
# 必须使用 JSON 文件确保 markdown 格式完整保留
--dry-run:模拟推送,不实际发送数据--verbose:显示详细日志,包括端点信息--validate-only:仅验证数据格式,不推送本技能包含自动版本更新检查功能:
当检测到更新时,脚本会输出:
[检查] 检查技能更新...
[信息] 本地版本: 1.0.12
[信息] 从ClawHub检查...
[信息] ClawHub版本: 1.0.13
[信息] 远程版本: 1.0.13
============================================================
[通知] 技能更新通知
============================================================
本地版本: 1.0.12
远程版本: 1.0.13
来源: clawhub
更新命令: clawhub update today-task
============================================================
clawhub update today-task--force 参数强制更新:clawhub update today-task --force重要:避免在命令行中直接传递授权码:
# ❌ 不安全:授权码在命令行历史中可见
python scripts/task_push.py --auth-code YOUR_AUTH_CODE --data task.json
# ✅ 安全:使用配置文件或 OpenClaw 全局配置
python scripts/task_push.py --data task.json
授权码安全建议:
openclaw config set skills.entries.today-task.config.authCode YOUR_CODEconfig.json 中配置授权码# 在技能脚本中调用
from task_pusher import TaskPusher
def skill_main():
# ... 执行任务逻辑 ...
# 生成markdown格式的结果
markdown_content = generate_markdown_result(data)
# 任务完成后推送结果
pusher = TaskPusher()
result = pusher.push({
"task_id": f"task_{int(time.time())}",
"task_name": "AI新闻汇总",
"task_result": "任务已完成",
"task_content": markdown_content
})
return result
本技能使用混合配置系统,支持灵活的配置优先级:
auth_code (授权码):
pushServiceUrl (推送 URL):
pushServiceUrl 配置其他配置项:使用本地 config.json 中的配置
openclaw config set skills.entries.today-task.config.authCode YOUR_AUTH_CODE
openclaw config set skills.entries.today-task.config.pushServiceUrl YOUR_PUSH_URL
openclaw config get skills.entries.today-task
# 删除授权码配置
openclaw config unset skills.entries.today-task.config.authCode
# 删除推送URL配置
openclaw config unset skills.entries.today-task.config.pushServiceUrl
# 设置授权码
openclaw config set skills.entries.today-task.config.authCode KzLEP2FjYPg1
# 设置推送URL
openclaw config set skills.entries.today-task.config.pushServiceUrl https://hiboard-claw-drcn.ai.dbankcloud.cn/distribution/message/cloud/claw/msg/upload
其他配置项在技能目录的 config.json 文件中设置:
{
"timeout": 30,
"max_content_length": 5000,
"auto_generate_id": true,
"default_result": "任务已完成",
"log_level": "INFO",
"save_records": true,
"records_dir": "push_records",
"max_records": 100,
"pushServiceUrl": "https://hiboard-claw-drcn.ai.dbankcloud.cn/distribution/message/cloud/claw/msg/upload"
}
配置优先级说明:
授权码是必填字段,用于验证推送权限。如果未设置授权码或授权码无效,推送将失败。
获取步骤:
推送 URL 说明:
https://hiboard-claw-drcn.ai.dbankcloud.cn/distribution/message/cloud/claw/msg/upload当用户在对话中提供授权码时,系统会自动检测并提示使用 OpenClaw 配置命令。
支持格式:
工作原理:
使用示例:
用户:我的授权码是 aqvIVhhWz7ir
系统:检测到授权码: aqvi***
请使用以下OpenClaw命令设置授权码:
openclaw config set skills.entries.today-task.config.authCode aqvIVhhWz7ir
授权码是必填字段,用于验证推送权限。如果未设置授权码或授权码无效,推送将失败并显示以下提示:
📱 请您到负一屏 -> 我的页 -> 动态管理 -> 关联账号 -> 点击Claw智能体去获取授权码
获取步骤:
常见授权码错误:
0000900034 - 授权码无效The authCode is invalid - 授权码无效新增功能:当用户在对话中提供授权码时,系统会自动检测并更新到配置文件中。
支持格式:
工作原理:
授权码格式要求:
aqvIVhhWz7ir, FrF2e6Pwqvpz, NWrU7qbN8vvx使用示例:
用户:我的授权码是 aqvIVhhWz7ir
系统:✅ 检测到授权码,已更新到配置文件
配置验证失败时会显示以下提示:
配置中缺少必需字段: auth_code, hiboards_url
请使用以下方式设置配置:
1. auth_code (授权码): 使用OpenClaw全局配置命令设置
命令: openclaw config set skills.entries.today-task.config.authCode YOUR_AUTH_CODE
2. hiboards_url (推送URL): 使用OpenClaw全局配置命令设置
命令: openclaw config set skills.entries.today-task.config.pushServiceUrl YOUR_PUSH_URL
其他配置项请在技能目录的config.json文件中设置。
push-task-to-negative-screen/
├── SKILL.md # 技能定义
├── README.md # 使用说明
├── config.json # 配置文件示例
├── scripts/
│ ├── task_push.py # 主推送脚本
│ ├── task_pusher.py # 推送器类
│ ├── config.py # 配置管理
│ ├── logger.py # 日志工具
│ ├── hiboards_client.py # 负一屏客户端
│ └── simple_test.py # 测试脚本
└── push_records/ # 推送记录目录(自动创建)
# 任务名称
## 执行结果
✅ 任务已完成
## 详细内容
- 项目 1: 结果描述
- 项目 2: 结果描述
- 项目 3: 结果描述
## 关键指标
| 指标 | 数值 | 状态 |
| ------ | ------ | ---- |
| 完成率 | 100% | ✅ |
| 用时 | 5 分钟 | ⏱️ |
---
_生成时间: 2026-03-30 10:30:00_
本技能设计为透明数据流:
用户输入 → 技能处理 → HTTPS传输 → 配置的端点
ai.dbankcloud.cn)--dry-run 避免网络传输每次推送包含:
| 数据字段 | 内容 | 敏感性 |
|---|---|---|
authCode | 授权令牌 | 🔴 高敏感 |
task_content | 任务文本内容 | 🟡 中敏感 |
| 任务元数据 | 名称、ID、时间等 | 🟢 低敏感 |
authCode 显示为 ABC***--dry-run 模拟推送--validate-only 仅验证格式--verbose 查看完整信息save_records: false--dry-run 验证功能push_records/如果发现安全问题:
logs/ 和 push_records/重要:详细安全声明请查看 SECURITY.md
最后更新: 2026-03-31