You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/server/main/tasks/prompts.py
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,7 @@
27
27
- `source`: The service that triggers the workflow (e.g., "gmail", "gcalendar").
28
28
- `event`: The specific event (e.g., "new_email", "new_event").
29
29
- `filter`: A dictionary of conditions to match (e.g., `{{"from": "boss@example.com"}}`).
30
+
The task will execute *after* the trigger occurs, using the event data (like the email content) as context.
30
31
- CRUCIAL DISTINCTION: Differentiate between the *task's execution time* (`run_at`) and the *event's time* mentioned in the prompt. A task to arrange a future event (e.g., 'book a flight for next month', 'schedule a meeting for Friday') should be executed *now* to make the arrangement. Therefore, its `run_at` should be null, since setting run_at to null makes the task run immediately. The future date belongs in the task `description`.
31
32
- Ambiguity: Phrases like "weekly hourly" are ambiguous. Interpret "weekly" as the frequency and ignore "hourly".
32
33
- Use the current time and user's timezone to resolve relative dates like "tomorrow", "next Friday at 2pm", etc. correctly.
Copy file name to clipboardExpand all lines: src/server/workers/planner/prompts.py
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@
15
15
6. Anticipate Information Gaps: If crucial information is still missing after checking context, the first step should be to use a tool to find it (e.g., `internet_search` for public information, `gpeople` for contacts, `memory` for personal information, `gcalendar` for upcoming events and so on).
16
16
7. Output a Clear Plan: Your final output must be a single, valid JSON object containing a concise description of the overall goal and a list of specific, actionable steps for the executor.
17
17
8. If the task is scheduled or recurring, only plan for an indivisual occurrence, not the entire series. The executor will handle scheduling. For example, if the user asks you to "Send a news summary every day at 8 AM", your plan should only include the steps for the indivisual run such as "Search for the news", "Summarize the news", "Send the news on WhatsApp". The executor will then handle the scheduling for future occurrences. Do NOT include any steps using the `gcalendar` tool to create a recurring or scheduled events.
18
+
9. If the task is triggered by an event (like a new email or calendar event), your plan should focus on the immediate actions to take after that event has occured, such as "Search for the email", "Extract relevant information", "Send a summary to the user". The executor will handle the triggering mechanism. The executor is receiving the incoming email or calendar event as input, along with your plan so write each plan step as if the event has already occured and you are now processing it. For example, if the triggered task is to send a summary for each new email, your plan should be to directly read the email and summarize it, you do not need to search for the email as it is part of the input trigger.
18
19
19
20
Here is the complete list of services (tools) available to the executor agent, that you can use in your plan:
0 commit comments