agentscope-ai / agentscope-ai/QwenPaw

[Feature]: 支持类似 zcode 的“闲时任务调度”(利用模型厂商低谷时段 Token 折扣与 Batch API)

Open
#7,568 1 comment 2 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
34.9k
Forks
3.1k
Avg merge
1d 15h
Merged PRs (30d)
225

Description

## Summary

建议 QwenPaw 引入类似 zcode 的“闲时任务(Off-peak Task)”调度机制:允许用户将大批量、长耗时、非实时的 Agent 任务挂起为闲时任务,在模型厂商设定的“低谷/闲时折扣时段”(如 DeepSeek 00:30-08:30 半价、各大模型夜间优惠时段)自动唤醒并执行,或直接对接模型厂商的 Batch API,以大幅降低调用成本。

## Component(s) Affected

- [x] Core / Backend (app, agents, config, providers, utils, local_models)
- [x] Console (frontend web UI)
- [ ] Channels (DingTalk, Feishu, QQ, Discord, iMessage, etc.)
- [ ] Skills
- [ ] CLI
- [ ] Documentation (website)
- [ ] Tests
- [ ] CI/CD
- [ ] Scripts / Deploy

## Problem / Motivation

目前各大模型厂商针对非高峰期提供了显著的价格优惠:
1. **DeepSeek**:每天 00:30 至 08:30 提供 50% 的闲时折扣(半价);
2. **OpenAI / Anthropic**:提供 Batch API(批处理接口),在 24 小时内完成可享 50% 成本折扣;
3. **DashScope / 阿里百炼 / 硅基流动** 等也陆续提供批量或低谷计费方案。

而在 QwenPaw 中,用户处理较重的后台任务时,通常消耗数十万至数百万 Token。目前 QwenPaw 仅支持:
- 实时对话立即触发执行;
- 手动配置 `cron` 定时任务(需手动计算 cron 表达式并在指定时间触发特定 prompt)。

现存痛点:
- 缺乏便捷的“一键挂起到闲时”机制,普通用户难以灵活利用厂商的深夜折扣;
- 手动写 cron 无法做到在交互式会话中即时把当前上下文和长任务暂存;
- 任务执行完毕后缺少统一的“次日晨间完成通知与结果归档”。

## Proposed Solution

建议分为三层设计:

1. **Provider 层面配置“闲时时段(Off-peak Window)”**:
- 在 Settings -> Providers / Models 的模型配置项中,允许为模型指定“闲时生效窗口”,例如:
```json
{
"model": "deepseek-chat",
"off_peak_enabled": true,
"off_peak_window": "00:30-08:30",
"timezone": "Asia/Shanghai"
}
```

2. **WebUI / 控制台交互增强**:
- 在输入框发送区域增加“闲时执行 / Off-peak”复选框或快捷指令(如 `/offpeak `);
- 勾选后,当前任务保存完整上下文并进入 `PENDING_OFFPEAK` 挂起状态,不立即占用并发与白天额度;
- 界面提供专属的“待执行闲时任务清单”,用户可随时查看、取消或立即强制执行。

3. **后端调度器(Off-peak Scheduler)与通知**:
- 到达模型对应的闲时窗口后,后台守护线程/调度器自动按序唤醒任务并执行;
- 任务在清晨完成时,可通过配置的 Channel(如飞书/钉钉/微信)推送:“您的闲时任务已在 03:15 执行完成,请查收成果”。

4. **进阶(可选)**:对接厂商的原生 Batch API(如 OpenAI `/v1/batches`、Anthropic Message Batches)。

## Alternatives Considered

- **使用 QwenPaw Cron 定时任务**:目前只能通过 `qwenpaw cron create` 手动指定时间点,操作繁琐,无法无缝继承聊天上下文和会话状态。
- **第三方中转或外部脚本代理**:需要维护额外服务,割裂了 QwenPaw 的整体交互体验。

## Additional Context

- 业内参考:**zcode** 的闲时任务功能(允许用户在白天提交较重的批量任务,统一在夜间闲时执行)。
- 官方计费参考:DeepSeek API 官方定价文档明确支持每日 00:30~08:30 阶梯折扣。

## Willing to Contribute

- [ ] I am willing to open a PR for this feature (after discussion).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.