Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions docs/guides/agent-ui.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,33 @@ The agent can remember facts, preferences, and decisions across sessions. Memory

---

## Scheduled Tasks

Run a prompt on a recurring schedule — "every morning at 9, summarize my inbox" — without leaving the UI. Click the **Clock** icon in the sidebar to open the Schedule Manager.

Describe the schedule in natural language; the parser previews the interpretation live before you create it:

| Input | Meaning |
|-------|---------|
| `every 30m` | Every 30 minutes |
| `every 6 hours` | Every 6 hours |
| `daily at 9pm` | Once a day at 21:00 |
| `every monday at 8am` | Weekly on Mondays at 08:00 |
| `every hour from 8am to 6pm` | Hourly inside a time window |

Each schedule runs in its own chat session, so the full history of runs (prompt + response per run) is one click away via the session list. Pause, resume, or delete schedules from the panel; run counts and the next-run countdown update live.

Behavior notes:

- Scheduled runs execute through the local LLM — nothing leaves your machine.
- Runs are **suspended while mobile access (tunnel) is active**, matching the autonomous agent loop's security posture. Set `GAIA_AUTONOMOUS_ALLOW_TUNNEL=1` to override.
- One run executes at a time; overlapping schedules queue.
- Per-run timeout defaults to 300 s; override with `GAIA_SCHEDULE_TIMEOUT`.

The REST API lives at `/api/schedules` (create/list/get), `/api/schedules/{name}` (pause/resume/cancel via `PUT`, delete via `DELETE`), `/api/schedules/{name}/results` (run history), and `/api/schedules/parse` (natural-language preview).

---

## Policy Alerts and Receipts

When a governance-enabled agent blocks a tool call, the Agent UI shows a
Expand Down
2 changes: 1 addition & 1 deletion docs/plans/autonomy-engine.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ cost zero LLM tokens. Only escalate to the 0.6B model for triage, and only invok
| Issue | Title | Component |
|-------|-------|-----------|
| #634 | Always-on agent: heartbeat, scheduler, and event hooks | Core engine |
| #550 | Scheduled Autonomy: recurring task scheduler for Agent UI | Scheduler |
| #550 | Scheduled Autonomy: recurring task scheduler for Agent UI | Scheduler — **shipped** (Agent UI Schedule Manager, salvaged from #517; NL intervals, `/api/schedules`, run history per session) |
| #555 | Autonomous mode: agent schedules follow-up messages | Autonomous loop |
| #557 | Autonomous loop: think-act-schedule cycle | Autonomous loop |
| #558 | Agent Activity feed: sidebar timeline | Activity feed |
Expand Down
7 changes: 6 additions & 1 deletion src/gaia/apps/webui/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { WelcomeScreen } from './components/WelcomeScreen';
import { DocumentLibrary } from './components/DocumentLibrary';
import { FileBrowser } from './components/FileBrowser';
import { MemoryDashboard } from './components/MemoryDashboard';
import { ScheduleManager } from './components/ScheduleManager';
import { SettingsPage } from './components/SettingsPage';
import { MobileAccessModal } from './components/MobileAccessModal';
import { ConnectionBanner } from './components/ConnectionBanner';
Expand Down Expand Up @@ -70,6 +71,8 @@ function App() {
setShowSettings,
showMemoryDashboard,
setShowMemoryDashboard,
showSchedules,
setShowSchedules,
sidebarOpen,
toggleSidebar,
setSidebarOpen,
Expand Down Expand Up @@ -535,7 +538,7 @@ function App() {

<Sidebar
onNewTask={handleNewTask}
onHome={() => { setCurrentSession(null); setShowSettings(false); setShowMemoryDashboard(false); window.history.replaceState(null, '', window.location.pathname); }}
onHome={() => { setCurrentSession(null); setShowSettings(false); setShowMemoryDashboard(false); setShowSchedules(false); window.history.replaceState(null, '', window.location.pathname); }}
tunnelActive={tunnelActive}
tunnelLoading={tunnelLoading}
onMobileToggle={handleMobileToggle}
Expand All @@ -546,6 +549,8 @@ function App() {
<SettingsPage />
) : showMemoryDashboard ? (
<MemoryDashboard />
) : showSchedules ? (
<ScheduleManager />
) : (
<>
{/* Connection / LLM status banner */}
Expand Down
Loading
Loading