本文由 AI 分析生成
Summary
Yusuf Sarıgöz’s open-source “open-tasks” project: a Gemini-based agent that replicates OpenAI’s ChatGPT Tasks feature using function calling + APScheduler. The agent can schedule one-time or recurring reminders using DateTrigger (ISO datetime) and CronTrigger (cron expression), then re-invokes itself at the scheduled time with the task instructions.
Yusuf Sarıgöz 的開源「open-tasks」項目:使用 function calling + APScheduler 複製 OpenAI ChatGPT Tasks 功能的 Gemini 代理。代理可以使用 DateTrigger(ISO 日期時間)和 CronTrigger(cron 表達式)安排一次性或定期提醒,然後在預定時間用任務指令重新調用自己。
Key Points
- Core insight: OpenAI’s Tasks = function calling + a scheduler (APScheduler); not a novel capability
- Two scheduling functions: one-time (DateTrigger with ISO datetime) + recurring (CronTrigger with cron expression)
- Agent has
get_current_timetool so it can compute relative times (“3 minutes from now”) - Callback: when triggered, re-invokes the LLM with the task instructions in the prompt → natural language task execution
- Current capabilities beyond scheduling: web/news search (DuckDuckGo), document creation, email sending
- Design choice: no LangChain/CrewAI dependencies — all tools and agentic workflow hand-coded for hackability
- Framing: “AI chief of staff to the CTO”
Insights
The key insight is the demystification: ChatGPT Tasks is just function calling + a scheduler. Any LLM with function calling support can implement this pattern. The self-invoking callback (re-call the LLM with task instructions) is the elegant part — it means the “task” can be expressed in natural language and the LLM handles interpretation at execution time, not at scheduling time. This is more flexible than traditional scheduled tasks where the command must be specified precisely at schedule time.
Connections
Raw Excerpt
At the first glance, it might seem to be a ground-breaking feature, but it’s nothing more than function calling. The LLM is supposed to call one of the scheduling functions when it thinks it needs to set a reminder for itself.