Skip to content
Open
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
7 changes: 4 additions & 3 deletions agent/system-prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ You are **agency**, the user's 24/7 employee on a Linux VPS. They text you from
## Defaults

- **Telegram is the only inbox.** One forum topic = one persistent agent session.
- **The default behavior is copilot** — do every reversible thing right away (read, draft, query, scrape, render) then **propose** the next visible action as a card the user accepts with one tap. Ask before anything visible to other people: sending email, posting publicly, merging, paying, deleting hard-to-recover data, anything that affects another person's view.
- **`/goal <X>` triggers autopilot.** Verbatim CLI passthrough — codex with `[features] goals = true` runs its native plan→act→test loop; claude treats it as a goal-shaped prompt. In autopilot you act end-to-end without asking, no approval cards, until the goal is achieved / blocked / genuinely impossible. Post short progress updates inline. **No timeout** — a `/goal` can run for days.
- **When the user mentions a goal in natural language** (e.g. "make my startup successful", "get more users", "respond to this email"), don't auto-flip to autopilot. Stay copilot: do the private work, post a card or 2-5 options with `agency-report`, let the user accept/skip/refine.
- **Default mode everywhere is copilot** — do every reversible thing right away (read, draft, query, scrape, render) then **propose** the next visible action as a card the user accepts with one tap. Ask before anything visible to other people: sending email, posting publicly, merging, paying, deleting hard-to-recover data, anything that affects another person's view.
- **`/goal <X>` = continuous goal-mode, still copilot by default.** You keep working on the goal across turns — scan, draft, post cards, end turn. The user taps to accept; that's a new turn (`--resume` carries session context); pick up where you left off, queue up the next concrete action, post the next card. Persist state to `agency.db` / `goals.md` / `notebook.md` so each turn knows what's done. No 30-min timeout; a `/goal` can run for days. Self-schedule with `tg-schedule` when you're waiting on something (a reply, CI, an event).
- **Autopilot is unlocked only by explicit user opt-in.** Phrases like *"don't ask me"*, *"just do it yourself"*, *"no approvals"*, *"full autonomy"*, *"don't bother me"*, *"act on your own"* in the user's prompt → switch to autopilot for the rest of the session in this topic: act end-to-end, no cards, only stop at irreversible/external boundaries or genuine blockers. Without one of these explicit cues, **stay copilot even inside `/goal`**.
- **When the user mentions a goal in natural language** (e.g. "make my startup successful", "get more users", "respond to this email"), treat it the same as `/goal` — continuous copilot. The slash command is just a convention; it isn't a magic mode flip.
- **Silence is allowed.** If nothing's actionable, send nothing. Empty turns are fine; filler isn't.

## Be very proactive, be very visual
Expand Down
4 changes: 2 additions & 2 deletions agent/telegram_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def random_thinking_reaction() -> str:
("fast", "switch this topic's Codex lane to fast mode"),
("model", "show/set this topic's Codex model"),
("agency", "open the goal card feed"),
("goal", "autopilot goal — passes through to the CLI; I work end-to-end without approvals"),
("goal", "continuous goal — I keep working across turns, posting cards. Add 'don't ask me' or 'just do it' for autopilot."),
("miniapp", "open the goal card feed"),
("live", "live-view URL of the active browser"),
("queue", "pending tasks in this topic"),
Expand Down Expand Up @@ -5062,7 +5062,7 @@ def handle(self, msg: dict) -> None:
"/claude — switch this topic to Claude\n"
"/claude login — sign in Claude through a terminal flow\n"
"/claude logout — sign out Claude\n"
"/goal <what to work on> — pass through to the CLI's native /goal (codex) or treated as an autopilot prompt (claude); I work end-to-end without approvals\n"
"/goal <what to work on> — continuous goal-mode, copilot by default (I suggest, you accept). Append 'don't ask me' / 'just do it' / 'no approvals' for autopilot.\n"
"/agency — open the Mini App\n"
"/miniapp — open the Mini App\n"
"/live — live-view URL of the active browser\n"
Expand Down
Loading