mirror of
https://github.com/multica-ai/multica.git
synced 2026-06-17 11:48:42 +02:00
Compare commits
5 Commits
agent/lamb
...
NevilleQin
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
765808e284 | ||
|
|
3abbdea70c | ||
|
|
000478b931 | ||
|
|
04bbda9be9 | ||
|
|
9b55d7148e |
@@ -12,7 +12,7 @@ Assign an [issue](/issues) to an [agent](/agents) and it works as the **official
|
||||
| **Assign** | Hand an agent ownership | Changes assignee | Issue + all comments | Inherits from issue | ✓ |
|
||||
| [**@-mention**](/mentioning-agents) | Pull it in to take a look | No changes | Issue + trigger comment | Inherits from issue | ✓ |
|
||||
| [**Chat**](/chat) | One-to-one conversation outside any issue | No issue involved | Current conversation history | Fixed medium | ✓ |
|
||||
| [**Routines**](/routines) | Scheduled or manual automation | Depends on mode | Depends on mode | Set by routine | ✗ |
|
||||
| [**Autopilots**](/autopilots) | Scheduled or manual automation | Depends on mode | Depends on mode | Set by autopilot | ✗ |
|
||||
|
||||
"Auto retry" refers to retries after infrastructure failures (runtime offline, timeout). Business errors on the agent side (for example, the model reporting an error) are not retried. See [**Tasks**](/tasks) for details.
|
||||
|
||||
@@ -78,4 +78,4 @@ But **different agents can work on the same issue in parallel** — for example,
|
||||
|
||||
- [**@-mention an agent in a comment**](/mentioning-agents) — a lighter trigger that leaves assignee and status untouched
|
||||
- [**Chat**](/chat) — one-to-one conversation outside any issue
|
||||
- [**Routines**](/routines) — let agents start work automatically on a schedule
|
||||
- [**Autopilots**](/autopilots) — let agents start work automatically on a schedule
|
||||
|
||||
@@ -12,7 +12,7 @@ import { Callout } from "fumadocs-ui/components/callout";
|
||||
| **分配** | 让智能体正式负责 | 改 assignee | issue + 全部 comments | 继承 issue | ✓ |
|
||||
| [**@ 提及**](/mentioning-agents) | 评论里让它看一眼 | 都不改 | issue + 触发评论 | 继承 issue | ✓ |
|
||||
| [**对话**](/chat) | 独立于 issue 的一对一聊天 | 不涉及 issue | 当前对话历史 | 固定中 | ✓ |
|
||||
| [**Routines**](/routines) | 定时 / 手动自动化 | 视模式 | 视模式 | routine 自定 | ✗ |
|
||||
| [**Autopilots**](/autopilots) | 定时 / 手动自动化 | 视模式 | 视模式 | autopilot 自定 | ✗ |
|
||||
|
||||
"自动重试"指基础设施故障(运行时离线、超时)导致的重试;智能体侧业务错误(比如模型自己报错)不会自动重试。详见 [**执行任务**](/tasks)。
|
||||
|
||||
@@ -78,4 +78,4 @@ multica issue assign MUL-42 --unassign
|
||||
|
||||
- [**在评论里 @ 智能体**](/mentioning-agents) —— 更轻量的触发方式,不改 assignee / status
|
||||
- [**对话**](/chat) —— 脱离 issue 和智能体一对一聊
|
||||
- [**Routines**](/routines) —— 让智能体定时自动开工
|
||||
- [**Autopilots**](/autopilots) —— 让智能体定时自动开工
|
||||
|
||||
85
apps/docs/content/docs/autopilots.mdx
Normal file
85
apps/docs/content/docs/autopilots.mdx
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
title: Autopilots
|
||||
description: Let agents start work on a cron schedule — or trigger once manually via the UI or CLI.
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Autopilots let [agents](/agents) **start work automatically on a schedule** — configure a cron expression and a timezone, and Multica dispatches a [`task`](/tasks) on its own, without you triggering anything. It fits periodic checks, recurring reports, and overnight cleanup jobs — the "standing order" shape of work. Compared to the other three trigger paths ([assigning](/assigning-issues), [@-mention](/mentioning-agents), and [chat](/chat), where you are the one kicking things off), the core difference with Autopilots is that they are **time-driven**.
|
||||
|
||||
## Configure an autopilot
|
||||
|
||||
Create a new autopilot on the workspace's **Autopilot** page. You set:
|
||||
|
||||
- **Name** — display name
|
||||
- **Agent** — who the run is dispatched to
|
||||
- **Priority** — inherited by the `task` it produces (same semantics as issue priority)
|
||||
- **Description / prompt** — the work description the agent receives each run
|
||||
- **Execution mode** — see below
|
||||
- **Triggers** — at least one `schedule` (cron + timezone)
|
||||
|
||||
## Pick an execution mode
|
||||
|
||||
An autopilot has two execution modes. **Start with "create issue" mode.**
|
||||
|
||||
- **Create issue mode** (`create_issue`) — default, **recommended**. Each trigger first creates an issue in the workspace (the title supports interpolation like `{{date}}`), then assigns the issue to the agent through the normal assignment flow. All work lands on the issue board with the same history, comments, and status as a manually assigned issue.
|
||||
- **Run-only mode** (`run_only`) — skips issue creation and enqueues a `task` directly. The run is invisible on the board — you can only see it in the autopilot's run history.
|
||||
|
||||
<Callout type="warning">
|
||||
**Run-only mode is currently unstable.** The CLI labels it "not yet supported end-to-end," and the dispatch path has known issues. New users should stick to create issue mode and wait for run-only mode to ship a stable release before switching.
|
||||
</Callout>
|
||||
|
||||
## Run it on a schedule
|
||||
|
||||
Every autopilot needs at least one `schedule` trigger. Cron uses the **standard 5-field format** (minute hour day month weekday), with **1-minute** minimum granularity (no seconds). Timezone is IANA-formatted (for example, `Asia/Shanghai`) and determines which timezone the cron expression is interpreted in.
|
||||
|
||||
A few examples:
|
||||
|
||||
- `0 9 * * 1-5`, `Asia/Shanghai` — 9 AM Beijing time on weekdays
|
||||
- `*/30 * * * *`, `UTC` — every 30 minutes
|
||||
- `0 3 * * *`, `UTC` — every day at 3 AM UTC
|
||||
|
||||
The Multica server scans for due triggers every **30 seconds** — **the actual fire time can lag by up to 30 seconds**, not down to the second. If the server is restarted across a fire time, it catches up missed triggers on startup (nothing is lost, but they fire right away).
|
||||
|
||||
## Trigger once manually
|
||||
|
||||
To avoid waiting for cron while debugging an autopilot, trigger it manually:
|
||||
|
||||
- UI: click "Run now" on the autopilot detail page
|
||||
- CLI:
|
||||
|
||||
```bash
|
||||
multica autopilot trigger <autopilot-id>
|
||||
```
|
||||
|
||||
A manual trigger goes through the exact same execution flow as a `schedule` trigger — only the `source` field on the run record is marked `manual`.
|
||||
|
||||
## View run history
|
||||
|
||||
Every trigger produces a **run record**, visible on the "History" tab of the autopilot detail page:
|
||||
|
||||
- Trigger source (`schedule` / `manual`)
|
||||
- Start time, completion time
|
||||
- Status (`issue_created` / `running` / `completed` / `failed`)
|
||||
- The linked issue (create issue mode) or `task` (run-only mode)
|
||||
- Failure reason (if failed)
|
||||
|
||||
## What happens when an autopilot fails
|
||||
|
||||
<Callout type="warning">
|
||||
**Autopilot failures are not auto-retried and do not send inbox notifications.** A failure leaves a `failed` entry in run history — no system-level re-enqueue like assign or @-mention, and no notification to anyone. If the autopilot is periodic, **the next cron fire will trigger a new run**, but the failed work is not automatically re-run.
|
||||
|
||||
If an autopilot is important, design your own monitoring — for example, have the agent post a comment on success, and catch failures by noticing missing comments.
|
||||
</Callout>
|
||||
|
||||
Why no auto-retry: autopilots are already periodic, so adding system-level retries stacks on top of the next scheduled run and creates duplicate executions. Leaving the schedule entirely to cron keeps it clean.
|
||||
|
||||
## What's not yet available
|
||||
|
||||
**Webhook and API triggers are not available yet.** The autopilot trigger schema reserves `webhook` and `api` types, but **they are not wired up to any ingress route** — the UI can create triggers of either type, but they will not actually fire. Today, **only `schedule` and manual triggers are end-to-end usable.**
|
||||
|
||||
## Next
|
||||
|
||||
- [**Assign issues to agents**](/assigning-issues) — a one-shot hand-off of an issue to an agent
|
||||
- [**@-mention agents in comments**](/mentioning-agents) — pull an agent in to take a look from a comment
|
||||
- [**Chat**](/chat) — one-to-one conversation outside any issue
|
||||
@@ -1,15 +1,15 @@
|
||||
---
|
||||
title: Routines
|
||||
title: Autopilots
|
||||
description: 让智能体按 cron 定时自己开工——或通过 UI / CLI 手动触发一次。
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Routines 让 [智能体](/agents) **按调度自动开工**——配好 cron 和时区,到点 Multica 自己派发 [`task`](/tasks),不需要你每次触发。适合定期巡检、周期性报告、凌晨跑的清理任务这类"standing order"场景。和前三种触发方式([分配](/assigning-issues) / [@ 提及](/mentioning-agents) / [对话](/chat) 都是你主动喊一声)相比,Routines 的核心差别是**时间驱动**。
|
||||
Autopilots 让 [智能体](/agents) **按调度自动开工**——配好 cron 和时区,到点 Multica 自己派发 [`task`](/tasks),不需要你每次触发。适合定期巡检、周期性报告、凌晨跑的清理任务这类"standing order"场景。和前三种触发方式([分配](/assigning-issues) / [@ 提及](/mentioning-agents) / [对话](/chat) 都是你主动喊一声)相比,Autopilots 的核心差别是**时间驱动**。
|
||||
|
||||
## 配置一个 Routine
|
||||
## 配置一个 Autopilot
|
||||
|
||||
在工作区的 **Routines** 页新建一条 routine,要定下:
|
||||
在工作区的 **Autopilot** 页新建一条 autopilot,要定下:
|
||||
|
||||
- **名字** — 显示名
|
||||
- **执行智能体** — 到点派给谁
|
||||
@@ -20,10 +20,10 @@ Routines 让 [智能体](/agents) **按调度自动开工**——配好 cron 和
|
||||
|
||||
## 选择执行模式
|
||||
|
||||
Routine 有两种执行模式,**建议从"先建 issue 模式"开始**:
|
||||
Autopilot 有两种执行模式,**建议从"先建 issue 模式"开始**:
|
||||
|
||||
- **先建 issue 模式**(`create_issue`)—— 默认,**推荐**。每次触发先在工作区里建一个 issue(标题支持 `{{date}}` 这样的插值),再按分配流程把 issue 派给智能体。所有工作都落在 issue 看板上,历史、评论、状态和手动分配的 issue 完全一致。
|
||||
- **直跑模式**(`run_only`)—— 不建 issue,直接入队一个 `task`。看板上看不到这一次运行——只能在 Routine 的运行历史里看到。
|
||||
- **直跑模式**(`run_only`)—— 不建 issue,直接入队一个 `task`。看板上看不到这一次运行——只能在 Autopilot 的运行历史里看到。
|
||||
|
||||
<Callout type="warning">
|
||||
**直跑模式当前不稳定**——目前在 CLI 里被标注为"not yet supported end-to-end",派发路径有已知问题。新用户只使用先建 issue 模式,等直跑模式 ship 稳定版再切。
|
||||
@@ -31,7 +31,7 @@ Routine 有两种执行模式,**建议从"先建 issue 模式"开始**:
|
||||
|
||||
## 让它按时间跑
|
||||
|
||||
每个 Routine 至少要一个 `schedule` 触发器。Cron 是**标准 5 字段格式**(分 时 日 月 周),最小粒度 **1 分钟**(没有秒级)。时区用 IANA 格式(例如 `Asia/Shanghai`),决定 cron 表达式按哪个时区解读。
|
||||
每个 Autopilot 至少要一个 `schedule` 触发器。Cron 是**标准 5 字段格式**(分 时 日 月 周),最小粒度 **1 分钟**(没有秒级)。时区用 IANA 格式(例如 `Asia/Shanghai`),决定 cron 表达式按哪个时区解读。
|
||||
|
||||
几个例子:
|
||||
|
||||
@@ -43,20 +43,20 @@ Multica 服务器每 **30 秒**扫一次到期的触发器——**触发时刻
|
||||
|
||||
## 手动触发一次
|
||||
|
||||
调试 Routine 时不想等 cron,可以手动触发一次:
|
||||
调试 Autopilot 时不想等 cron,可以手动触发一次:
|
||||
|
||||
- UI:在 Routine 详情页点"手动运行"
|
||||
- UI:在 Autopilot 详情页点"手动运行"
|
||||
- CLI:
|
||||
|
||||
```bash
|
||||
multica autopilot trigger <routine-id>
|
||||
multica autopilot trigger <autopilot-id>
|
||||
```
|
||||
|
||||
手动触发走和 `schedule` 触发完全相同的执行流程,只是运行记录里 `source` 字段标为 `manual`。
|
||||
|
||||
## 看运行历史
|
||||
|
||||
每次触发都会产生一条**运行记录**(run),可以在 Routine 详情页的"历史"tab 看到:
|
||||
每次触发都会产生一条**运行记录**(run),可以在 Autopilot 详情页的"历史"tab 看到:
|
||||
|
||||
- 触发源(`schedule` / `manual`)
|
||||
- 开始时间、完成时间
|
||||
@@ -64,29 +64,19 @@ multica autopilot trigger <routine-id>
|
||||
- 关联的 issue(先建 issue 模式)或 `task`(直跑模式)
|
||||
- 失败原因(如果失败)
|
||||
|
||||
## Routine 失败会怎样
|
||||
## Autopilot 失败会怎样
|
||||
|
||||
<Callout type="warning">
|
||||
**Routine 失败不自动重试,也不发 inbox 通知。** 失败后只在运行历史里留一条 `failed` 记录——不会像分配 / @ 提及那样由系统重新排队,也不会给任何人发通知。如果这条 Routine 是周期任务,**下一次 cron 到点会重新触发一次**(新的 run),但这一次失败的工作不会被自动补跑。
|
||||
**Autopilot 失败不自动重试,也不发 inbox 通知。** 失败后只在运行历史里留一条 `failed` 记录——不会像分配 / @ 提及那样由系统重新排队,也不会给任何人发通知。如果这条 Autopilot 是周期任务,**下一次 cron 到点会重新触发一次**(新的 run),但这一次失败的工作不会被自动补跑。
|
||||
|
||||
如果 Routine 很重要,要自己设计监控——例如让智能体在成功时给自己发个评论,通过缺失评论来发现失败。
|
||||
如果 Autopilot 很重要,要自己设计监控——例如让智能体在成功时给自己发个评论,通过缺失评论来发现失败。
|
||||
</Callout>
|
||||
|
||||
不自动重试的理由:Routine 本身是周期性的,系统层再加自动重试容易和下一次调度叠加,产生重复执行。调度权完全交给 cron 最干净。
|
||||
不自动重试的理由:Autopilot 本身是周期性的,系统层再加自动重试容易和下一次调度叠加,产生重复执行。调度权完全交给 cron 最干净。
|
||||
|
||||
## 两个遗留的命名 / 能力点
|
||||
## 暂不可用的能力
|
||||
|
||||
**CLI 里它叫 `autopilot`**。当前 CLI 子命令是 `multica autopilot` 而不是 `multica routine`:
|
||||
|
||||
```bash
|
||||
multica autopilot list
|
||||
multica autopilot create
|
||||
multica autopilot trigger <id>
|
||||
```
|
||||
|
||||
文档里一律用 Routines,后续版本 CLI 会统一。现在遇到 `autopilot` 字样把它当 Routines 看就行。
|
||||
|
||||
**Webhook 和 API 触发暂不可用**。Routine 的触发器类型在 schema 里预留了 `webhook` 和 `api` 两种,但**还没接入站路由**——UI 可以创建这两类触发器,不会真的触发。目前**只有 `schedule` 和手动触发是端到端可用的**。
|
||||
**Webhook 和 API 触发暂不可用**。Autopilot 的触发器类型在 schema 里预留了 `webhook` 和 `api` 两种,但**还没接入站路由**——UI 可以创建这两类触发器,不会真的触发。目前**只有 `schedule` 和手动触发是端到端可用的**。
|
||||
|
||||
## 下一步
|
||||
|
||||
@@ -59,5 +59,5 @@ Conversations you no longer want to see can be archived — right-click in the c
|
||||
|
||||
## Next
|
||||
|
||||
- [**Routines**](/routines) — let agents start work automatically on a schedule
|
||||
- [**Autopilots**](/autopilots) — let agents start work automatically on a schedule
|
||||
- [**Assign issues to agents**](/assigning-issues) — bring the topic back onto the issue board
|
||||
|
||||
@@ -59,5 +59,5 @@ import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
## 下一步
|
||||
|
||||
- [**Routines**](/routines) —— 让智能体定时自动开工
|
||||
- [**Autopilots**](/autopilots) —— 让智能体定时自动开工
|
||||
- [**分配 issue 给智能体**](/assigning-issues) —— 把话题放回 issue 看板上
|
||||
|
||||
@@ -74,15 +74,13 @@ For the difference between token types, see [Authentication and tokens](/auth-to
|
||||
| `multica skill import ...` | Import a skill from GitHub, ClawHub, or the local machine |
|
||||
| `multica skill files ...` | Nested: manage a skill's files |
|
||||
|
||||
## Routines (CLI command name: `autopilot`)
|
||||
|
||||
In the docs this feature is called **Routines**, but the CLI subcommand name is still `autopilot` — a future release will unify the two. If you're searching for "routines" and can't find it, try `multica autopilot --help`.
|
||||
## Autopilots
|
||||
|
||||
| Command | Purpose |
|
||||
|---|---|
|
||||
| `multica autopilot list` | List every routine in the workspace |
|
||||
| `multica autopilot get <id>` | Show a single routine |
|
||||
| `multica autopilot create ...` | Create a routine |
|
||||
| `multica autopilot list` | List every autopilot in the workspace |
|
||||
| `multica autopilot get <id>` | Show a single autopilot |
|
||||
| `multica autopilot create ...` | Create an autopilot |
|
||||
| `multica autopilot update <id> ...` | Update |
|
||||
| `multica autopilot delete <id>` | Delete |
|
||||
| `multica autopilot runs <id>` | Show run history |
|
||||
|
||||
@@ -74,15 +74,13 @@ Token 类型的详细区分见 [认证与令牌](/auth-tokens)。
|
||||
| `multica skill import ...` | 从 GitHub / ClawHub / 本机导入 Skill |
|
||||
| `multica skill files ...` | 嵌套:管理 Skill 的文件 |
|
||||
|
||||
## Routines(CLI 命令名:`autopilot`)
|
||||
|
||||
文档里叫 **Routines**,但 CLI 子命令名保留为 `autopilot`——后续版本会统一。如果你在搜索 "routines" 相关命令但找不到,用 `multica autopilot --help`。
|
||||
## Autopilots
|
||||
|
||||
| 命令 | 用途 |
|
||||
|---|---|
|
||||
| `multica autopilot list` | 列出工作区所有 routine |
|
||||
| `multica autopilot get <id>` | 查看单个 routine |
|
||||
| `multica autopilot create ...` | 创建 routine |
|
||||
| `multica autopilot list` | 列出工作区所有 autopilot |
|
||||
| `multica autopilot get <id>` | 查看单个 autopilot |
|
||||
| `multica autopilot create ...` | 创建 autopilot |
|
||||
| `multica autopilot update <id> ...` | 修改 |
|
||||
| `multica autopilot delete <id>` | 删除 |
|
||||
| `multica autopilot runs <id>` | 查看运行历史 |
|
||||
|
||||
@@ -34,7 +34,7 @@ Mentioning the same person multiple times in one comment still produces **only o
|
||||
`@all` is a special target: it pushes a notification to every member of the workspace. Both people and agents can use `@all` — which means an agent reporting progress could also `@all`, so remind agents in their instructions to use it sparingly.
|
||||
|
||||
<Callout type="warning">
|
||||
**Use `@all` carefully.** In a larger workspace, a single `@all` generates that many inbox notifications instantly. Reserve it for things everyone genuinely needs to know — not routine updates.
|
||||
**Use `@all` carefully.** In a larger workspace, a single `@all` generates that many inbox notifications instantly. Reserve it for things everyone genuinely needs to know — not day-to-day updates.
|
||||
</Callout>
|
||||
|
||||
## Editing and deleting a comment
|
||||
|
||||
@@ -75,7 +75,7 @@ Multica uses heartbeats to decide whether a runtime is online. Three key numbers
|
||||
Missing is not permanent — as soon as the daemon sends another heartbeat it returns to online, and the runtime record is preserved. Restarting the daemon does not lose runtimes.
|
||||
|
||||
<Callout type="warning">
|
||||
**Tasks running on a missing runtime are marked as failed** (failure reason `runtime_offline`). For retryable sources (issues, chat), Multica automatically requeues them; Routines-triggered tasks are not retried automatically. See [Tasks → Which failures retry automatically](/tasks#which-failures-retry-automatically-which-dont).
|
||||
**Tasks running on a missing runtime are marked as failed** (failure reason `runtime_offline`). For retryable sources (issues, chat), Multica automatically requeues them; Autopilot-triggered tasks are not retried automatically. See [Tasks → Which failures retry automatically](/tasks#which-failures-retry-automatically-which-dont).
|
||||
</Callout>
|
||||
|
||||
## How many tasks can run in parallel
|
||||
|
||||
@@ -75,7 +75,7 @@ Multica 用心跳判断运行时是否在线。三个关键数字:
|
||||
失联不是永久的——守护进程只要再次发出心跳就立刻回到在线,运行时记录也会保留。重启守护进程不会丢运行时。
|
||||
|
||||
<Callout type="warning">
|
||||
**失联的运行时上正在跑的执行任务会被标记为失败**(失败原因 `runtime_offline`)。对可重试的来源(issue、chat),Multica 会自动重新排队;Routines 触发的任务不自动重试。详见 [执行任务 → 哪些失败会自动重试](/tasks#哪些失败会自动重试哪些不会)。
|
||||
**失联的运行时上正在跑的执行任务会被标记为失败**(失败原因 `runtime_offline`)。对可重试的来源(issue、chat),Multica 会自动重新排队;Autopilots 触发的任务不自动重试。详见 [执行任务 → 哪些失败会自动重试](/tasks#哪些失败会自动重试哪些不会)。
|
||||
</Callout>
|
||||
|
||||
## 一次能并发跑多少任务
|
||||
|
||||
@@ -39,7 +39,7 @@ It's not only "assign an issue" — Multica has 4 triggers, one per collaboratio
|
||||
| **Assign an issue** | The most common. Assign an issue to an agent and it starts on its own | [Assigning issues](/assigning-issues) |
|
||||
| **@mention an agent in a comment** | "Take a look at this one for me" — don't change the assignee or status, just fire off a comment | [Mentioning agents](/mentioning-agents) |
|
||||
| **Direct chat** | Standalone conversation, not tied to an issue — ask questions, have it draft an issue | [Chat](/chat) |
|
||||
| **Routines (scheduled)** | Standing instructions — "do a standup summary every Monday morning" and the like | [Routines](/routines) |
|
||||
| **Autopilots (scheduled)** | Standing instructions — "do a standup summary every Monday morning" and the like | [Autopilots](/autopilots) |
|
||||
|
||||
## Runtimes: where it runs, and how many tools
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ Multica 是一个**分布式**平台。你看到的 Web 界面只是前台——
|
||||
| **分配 issue** | 最常见。把一条 issue 指派给智能体,它自动开工 | [分配 issue](/assigning-issues) |
|
||||
| **在评论里 @智能体** | "这条你帮我看一下"——不改 assignee、不改状态,用一条评论触发 | [在评论里 @智能体](/mentioning-agents) |
|
||||
| **直接聊天** | 独立对话,不绑 issue——问问题、让它帮起草任务 | [聊天](/chat) |
|
||||
| **Routines(定时)** | 长期指令——每周一早上做 standup 总结之类 | [Routines](/routines) |
|
||||
| **Autopilots(定时)** | 长期指令——每周一早上做 standup 总结之类 | [Autopilots](/autopilots) |
|
||||
|
||||
## 运行时:在哪里跑,跑几家工具
|
||||
|
||||
|
||||
@@ -54,5 +54,5 @@ This guard **only blocks direct self-references.** Agent A @-mentioning agent B
|
||||
## Next
|
||||
|
||||
- [**Chat**](/chat) — one-to-one conversation outside any issue
|
||||
- [**Routines**](/routines) — let agents start work automatically on a schedule
|
||||
- [**Autopilots**](/autopilots) — let agents start work automatically on a schedule
|
||||
- [**Comments**](/comments) — `@mention` syntax, the picker, and `@all` semantics
|
||||
|
||||
@@ -54,5 +54,5 @@ import { Callout } from "fumadocs-ui/components/callout";
|
||||
## 下一步
|
||||
|
||||
- [**对话**](/chat) —— 脱离 issue 和智能体一对一聊
|
||||
- [**Routines**](/routines) —— 让智能体定时自动开工
|
||||
- [**Autopilots**](/autopilots) —— 让智能体定时自动开工
|
||||
- [**评论**](/comments) —— `@mention` 的语法、picker、`@all` 的语义
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"assigning-issues",
|
||||
"mentioning-agents",
|
||||
"chat",
|
||||
"routines",
|
||||
"autopilots",
|
||||
"---Inbox---",
|
||||
"inbox",
|
||||
"---Self-hosting & ops---",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"assigning-issues",
|
||||
"mentioning-agents",
|
||||
"chat",
|
||||
"routines",
|
||||
"autopilots",
|
||||
"---收件箱---",
|
||||
"inbox",
|
||||
"---自部署运维---",
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
---
|
||||
title: Routines
|
||||
description: Let agents start work on a cron schedule — or trigger once manually via the UI or CLI.
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Routines let [agents](/agents) **start work automatically on a schedule** — configure a cron expression and a timezone, and Multica dispatches a [`task`](/tasks) on its own, without you triggering anything. It fits periodic checks, recurring reports, and overnight cleanup jobs — the "standing order" shape of work. Compared to the other three trigger paths ([assigning](/assigning-issues), [@-mention](/mentioning-agents), and [chat](/chat), where you are the one kicking things off), the core difference with Routines is that they are **time-driven**.
|
||||
|
||||
## Configure a routine
|
||||
|
||||
Create a new routine on the workspace's **Routines** page. You set:
|
||||
|
||||
- **Name** — display name
|
||||
- **Agent** — who the run is dispatched to
|
||||
- **Priority** — inherited by the `task` it produces (same semantics as issue priority)
|
||||
- **Description / prompt** — the work description the agent receives each run
|
||||
- **Execution mode** — see below
|
||||
- **Triggers** — at least one `schedule` (cron + timezone)
|
||||
|
||||
## Pick an execution mode
|
||||
|
||||
A routine has two execution modes. **Start with "create issue" mode.**
|
||||
|
||||
- **Create issue mode** (`create_issue`) — default, **recommended**. Each trigger first creates an issue in the workspace (the title supports interpolation like `{{date}}`), then assigns the issue to the agent through the normal assignment flow. All work lands on the issue board with the same history, comments, and status as a manually assigned issue.
|
||||
- **Run-only mode** (`run_only`) — skips issue creation and enqueues a `task` directly. The run is invisible on the board — you can only see it in the routine's run history.
|
||||
|
||||
<Callout type="warning">
|
||||
**Run-only mode is currently unstable.** The CLI labels it "not yet supported end-to-end," and the dispatch path has known issues. New users should stick to create issue mode and wait for run-only mode to ship a stable release before switching.
|
||||
</Callout>
|
||||
|
||||
## Run it on a schedule
|
||||
|
||||
Every routine needs at least one `schedule` trigger. Cron uses the **standard 5-field format** (minute hour day month weekday), with **1-minute** minimum granularity (no seconds). Timezone is IANA-formatted (for example, `Asia/Shanghai`) and determines which timezone the cron expression is interpreted in.
|
||||
|
||||
A few examples:
|
||||
|
||||
- `0 9 * * 1-5`, `Asia/Shanghai` — 9 AM Beijing time on weekdays
|
||||
- `*/30 * * * *`, `UTC` — every 30 minutes
|
||||
- `0 3 * * *`, `UTC` — every day at 3 AM UTC
|
||||
|
||||
The Multica server scans for due triggers every **30 seconds** — **the actual fire time can lag by up to 30 seconds**, not down to the second. If the server is restarted across a fire time, it catches up missed triggers on startup (nothing is lost, but they fire right away).
|
||||
|
||||
## Trigger once manually
|
||||
|
||||
To avoid waiting for cron while debugging a routine, trigger it manually:
|
||||
|
||||
- UI: click "Run now" on the routine detail page
|
||||
- CLI:
|
||||
|
||||
```bash
|
||||
multica autopilot trigger <routine-id>
|
||||
```
|
||||
|
||||
A manual trigger goes through the exact same execution flow as a `schedule` trigger — only the `source` field on the run record is marked `manual`.
|
||||
|
||||
## View run history
|
||||
|
||||
Every trigger produces a **run record**, visible on the "History" tab of the routine detail page:
|
||||
|
||||
- Trigger source (`schedule` / `manual`)
|
||||
- Start time, completion time
|
||||
- Status (`issue_created` / `running` / `completed` / `failed`)
|
||||
- The linked issue (create issue mode) or `task` (run-only mode)
|
||||
- Failure reason (if failed)
|
||||
|
||||
## What happens when a routine fails
|
||||
|
||||
<Callout type="warning">
|
||||
**Routine failures are not auto-retried and do not send inbox notifications.** A failure leaves a `failed` entry in run history — no system-level re-enqueue like assign or @-mention, and no notification to anyone. If the routine is periodic, **the next cron fire will trigger a new run**, but the failed work is not automatically re-run.
|
||||
|
||||
If a routine is important, design your own monitoring — for example, have the agent post a comment on success, and catch failures by noticing missing comments.
|
||||
</Callout>
|
||||
|
||||
Why no auto-retry: routines are already periodic, so adding system-level retries stacks on top of the next scheduled run and creates duplicate executions. Leaving the schedule entirely to cron keeps it clean.
|
||||
|
||||
## Two naming / capability carryovers
|
||||
|
||||
**In the CLI it is called `autopilot`.** The current CLI subcommand is `multica autopilot` rather than `multica routine`:
|
||||
|
||||
```bash
|
||||
multica autopilot list
|
||||
multica autopilot create
|
||||
multica autopilot trigger <id>
|
||||
```
|
||||
|
||||
The docs use Routines throughout; a future CLI release will unify the naming. For now, treat any `autopilot` wording as Routines.
|
||||
|
||||
**Webhook and API triggers are not available yet.** The routine trigger schema reserves `webhook` and `api` types, but **they are not wired up to any ingress route** — the UI can create triggers of either type, but they will not actually fire. Today, **only `schedule` and manual triggers are end-to-end usable.**
|
||||
|
||||
## Next
|
||||
|
||||
- [**Assign issues to agents**](/assigning-issues) — a one-shot hand-off of an issue to an agent
|
||||
- [**@-mention agents in comments**](/mentioning-agents) — pull an agent in to take a look from a comment
|
||||
- [**Chat**](/chat) — one-to-one conversation outside any issue
|
||||
@@ -6,7 +6,7 @@ description: The unit of work for every agent run, with a clear state machine, t
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
import { Mermaid } from "@/components/mermaid";
|
||||
|
||||
A **task** is the unit of every [agent](/agents) run — [assigning an issue to an agent](/assigning-issues), [@-mentioning an agent in a comment](/mentioning-agents), sending a message in [chat](/chat), or a [Routine](/routines) firing on schedule all produce a task. Multica puts it in a queue; a [daemon](/daemon-runtimes) picks it up and hands it off to the corresponding [AI coding tool](/providers), then writes the result back to the server when it finishes.
|
||||
A **task** is the unit of every [agent](/agents) run — [assigning an issue to an agent](/assigning-issues), [@-mentioning an agent in a comment](/mentioning-agents), sending a message in [chat](/chat), or an [Autopilot](/autopilots) firing on schedule all produce a task. Multica puts it in a queue; a [daemon](/daemon-runtimes) picks it up and hands it off to the corresponding [AI coding tool](/providers), then writes the result back to the server when it finishes.
|
||||
|
||||
Tasks and [issues](/issues) are two different objects. A single issue can be assigned, @-mentioned, and manually rerun many times — each produces a **new** task.
|
||||
|
||||
@@ -59,10 +59,10 @@ Failures fall into two categories: **retryable** and **non-retryable**.
|
||||
Automatic retry also has two extra conditions:
|
||||
|
||||
1. **At most 2 attempts** — 1 original + 1 retry. If the retry also fails, no further retries, even if the reason is retryable.
|
||||
2. **Only for issue- and chat-triggered tasks** — Routine-triggered tasks do **not** retry automatically.
|
||||
2. **Only for issue- and chat-triggered tasks** — Autopilot-triggered tasks do **not** retry automatically.
|
||||
|
||||
<Callout type="warning">
|
||||
**Routine tasks don't retry automatically** by design. A Routine has its own firing cadence (e.g. daily); automatic retries on failure would overlap with the next scheduled run. If you need an immediate re-run after failure, use a manual rerun (next section).
|
||||
**Autopilot tasks don't retry automatically** by design. An Autopilot has its own firing cadence (e.g. daily); automatic retries on failure would overlap with the next scheduled run. If you need an immediate re-run after failure, use a manual rerun (next section).
|
||||
</Callout>
|
||||
|
||||
## Manual rerun vs. automatic retry
|
||||
@@ -109,4 +109,4 @@ See [Providers Matrix → Session resumption](/providers#session-resumption-who-
|
||||
## Next
|
||||
|
||||
- [Providers Matrix](/providers) — capability differences across the 10 AI coding tools (including the exact session-resumption status)
|
||||
- [Assigning issues to agents](/assigning-issues) / [@-mentioning agents in comments](/mentioning-agents) / [Chat](/chat) / [Routines](/routines) — the four ways to trigger a task
|
||||
- [Assigning issues to agents](/assigning-issues) / [@-mentioning agents in comments](/mentioning-agents) / [Chat](/chat) / [Autopilots](/autopilots) — the four ways to trigger a task
|
||||
|
||||
@@ -6,7 +6,7 @@ description: 智能体每一次工作的单位,有明确的状态机、超时
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
import { Mermaid } from "@/components/mermaid";
|
||||
|
||||
**执行任务**(task)是 [智能体](/agents) 每一次工作的单位——把一个 [issue 分给智能体](/assigning-issues)、[在评论里 @提及智能体](/mentioning-agents)、在 [聊天](/chat) 里发一条消息、或者 [Routine](/routines) 到点触发,都会产生一个执行任务。Multica 把它放进队列,由 [守护进程](/daemon-runtimes) 领走后交给对应的 [AI 编程工具](/providers) 执行,结束时把结果写回服务器。
|
||||
**执行任务**(task)是 [智能体](/agents) 每一次工作的单位——把一个 [issue 分给智能体](/assigning-issues)、[在评论里 @提及智能体](/mentioning-agents)、在 [聊天](/chat) 里发一条消息、或者 [Autopilot](/autopilots) 到点触发,都会产生一个执行任务。Multica 把它放进队列,由 [守护进程](/daemon-runtimes) 领走后交给对应的 [AI 编程工具](/providers) 执行,结束时把结果写回服务器。
|
||||
|
||||
执行任务和 [issue](/issues) 是两层不同对象:一个 issue 可以反复分配、反复 @提及、手动重跑——每次都产生一个**新的**执行任务。
|
||||
|
||||
@@ -59,10 +59,10 @@ Multica 服务器每 30 秒扫描一次,有两种超时会触发失败:
|
||||
自动重试有两个额外条件:
|
||||
|
||||
1. **最多 2 次**——1 次原任务 + 1 次重试。重试也失败就不再重试,即使原因可重试。
|
||||
2. **只对 issue 和聊天触发的任务生效**——Routines 触发的任务**不自动重试**。
|
||||
2. **只对 issue 和聊天触发的任务生效**——Autopilots 触发的任务**不自动重试**。
|
||||
|
||||
<Callout type="warning">
|
||||
**Routines 任务不自动重试**是刻意设计。Routine 有自己的触发周期(例如每天一次);如果失败又自动重试,会和下一个周期的任务重叠。需要失败后立即重跑,用手动重跑(下一节)。
|
||||
**Autopilots 任务不自动重试**是刻意设计。Autopilot 有自己的触发周期(例如每天一次);如果失败又自动重试,会和下一个周期的任务重叠。需要失败后立即重跑,用手动重跑(下一节)。
|
||||
</Callout>
|
||||
|
||||
## 手动重跑和自动重试的区别
|
||||
@@ -109,4 +109,4 @@ Multica 在任务过程中**两次**保存会话 ID——任务一开始(AI
|
||||
## 下一步
|
||||
|
||||
- [Providers Matrix](/providers) —— 10 款 AI 编程工具的能力差异对照(包括会话恢复的精确状态)
|
||||
- [分配 issue 给智能体](/assigning-issues) / [在评论里 @智能体](/mentioning-agents) / [聊天](/chat) / [Routines](/routines) —— 触发执行任务的四种方式
|
||||
- [分配 issue 给智能体](/assigning-issues) / [在评论里 @智能体](/mentioning-agents) / [聊天](/chat) / [Autopilots](/autopilots) —— 触发执行任务的四种方式
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useLocale } from "../i18n";
|
||||
import { GitHubMark, githubUrl, heroButtonClassName } from "./shared";
|
||||
|
||||
export function HowItWorksSection() {
|
||||
const { t } = useLocale();
|
||||
const { t, locale } = useLocale();
|
||||
const user = useAuthStore((s) => s.user);
|
||||
|
||||
return (
|
||||
@@ -44,6 +44,12 @@ export function HowItWorksSection() {
|
||||
<Link href={user ? "/" : "/login"} className={heroButtonClassName("solid")}>
|
||||
{user ? t.header.dashboard : t.howItWorks.cta}
|
||||
</Link>
|
||||
<Link
|
||||
href={locale === "zh" ? "/docs/zh" : "/docs"}
|
||||
className={heroButtonClassName("ghost")}
|
||||
>
|
||||
{t.howItWorks.ctaDocs}
|
||||
</Link>
|
||||
<Link
|
||||
href={githubUrl}
|
||||
target="_blank"
|
||||
|
||||
@@ -144,6 +144,7 @@ export function createEnDict(allowSignup: boolean): LandingDict {
|
||||
],
|
||||
cta: "Get started",
|
||||
ctaGithub: "View on GitHub",
|
||||
ctaDocs: "Read the docs",
|
||||
},
|
||||
|
||||
openSource: {
|
||||
@@ -232,7 +233,7 @@ export function createEnDict(allowSignup: boolean): LandingDict {
|
||||
resources: {
|
||||
label: "Resources",
|
||||
links: [
|
||||
{ label: "Documentation", href: githubUrl },
|
||||
{ label: "Documentation", href: "/docs" },
|
||||
{ label: "API", href: githubUrl },
|
||||
{ label: "X (Twitter)", href: "https://x.com/MulticaAI" },
|
||||
],
|
||||
|
||||
@@ -43,6 +43,7 @@ export type LandingDict = {
|
||||
steps: { title: string; description: string }[];
|
||||
cta: string;
|
||||
ctaGithub: string;
|
||||
ctaDocs: string;
|
||||
};
|
||||
openSource: {
|
||||
label: string;
|
||||
|
||||
@@ -144,6 +144,7 @@ export function createZhDict(allowSignup: boolean): LandingDict {
|
||||
],
|
||||
cta: "\u5f00\u59cb\u4f7f\u7528",
|
||||
ctaGithub: "\u5728 GitHub \u4e0a\u67e5\u770b",
|
||||
ctaDocs: "\u9605\u8bfb\u6587\u6863",
|
||||
},
|
||||
|
||||
openSource: {
|
||||
@@ -232,7 +233,7 @@ export function createZhDict(allowSignup: boolean): LandingDict {
|
||||
resources: {
|
||||
label: "\u8d44\u6e90",
|
||||
links: [
|
||||
{ label: "\u6587\u6863", href: githubUrl },
|
||||
{ label: "\u6587\u6863", href: "/docs/zh" },
|
||||
{ label: "API", href: githubUrl },
|
||||
{ label: "X (Twitter)", href: "https://x.com/MulticaAI" },
|
||||
],
|
||||
|
||||
@@ -38,6 +38,15 @@ export function RuntimeAsidePanel() {
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<a
|
||||
href="https://multica.ai/docs/daemon-runtimes"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="self-start text-[13px] text-muted-foreground underline underline-offset-4 transition-colors hover:text-foreground"
|
||||
>
|
||||
Learn about runtimes →
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -327,6 +327,15 @@ function AboutAgentsSide() {
|
||||
Add more agents anytime. A small team of specialized agents beats
|
||||
one jack-of-all-trades.
|
||||
</p>
|
||||
|
||||
<a
|
||||
href="https://multica.ai/docs/agents-create"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="self-start text-[13px] text-muted-foreground underline underline-offset-4 transition-colors hover:text-foreground"
|
||||
>
|
||||
Creating your first agent →
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -328,6 +328,15 @@ function WhyWeAsk() {
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<a
|
||||
href="https://multica.ai/docs/agents"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="self-start text-[13px] text-muted-foreground underline underline-offset-4 transition-colors hover:text-foreground"
|
||||
>
|
||||
Learn how agents work →
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@ export function buildWelcomeIssueText(
|
||||
``,
|
||||
`This is your workspace's first issue. Below, your agent will reply in a moment — that's how work happens here: you write what you want, your agent (or a teammate) picks it up and replies in the comments.`,
|
||||
``,
|
||||
`[Learn how Multica works →](https://multica.ai/docs/how-multica-works)`,
|
||||
``,
|
||||
`---`,
|
||||
``,
|
||||
].join("\n");
|
||||
@@ -139,6 +141,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`**⚠️ Gotcha**: new issues default to Backlog. Agents pause on backlog. A hint dialog will pop up the first time — it's telling you "flip to Todo to start".`,
|
||||
``,
|
||||
`**You'll know it worked when**: the Live card shows your agent thinking, and the Status flips to **In Progress** automatically.`,
|
||||
``,
|
||||
`[Learn about assigning issues →](https://multica.ai/docs/assigning-issues)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -160,6 +164,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`**Bonus — @mention an agent inside a comment**: on any issue, scroll to the comment box at the bottom. Type \`@\` and a dropdown appears listing members, agents, and other issues. Pick an agent → write your question → send. The mentioned agent replies in the comments.`,
|
||||
``,
|
||||
`**You'll know it worked when**: the agent replies in the chat panel (or comment thread) within a few seconds.`,
|
||||
``,
|
||||
`[Learn about chat →](https://multica.ai/docs/chat)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -187,6 +193,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`Click **Save**.`,
|
||||
``,
|
||||
`**You'll know it worked when**: the next task you assign to an agent picks up details from this context without you explaining again.`,
|
||||
``,
|
||||
`[Learn about workspaces →](https://multica.ai/docs/workspaces)`,
|
||||
].join("\n"),
|
||||
},
|
||||
];
|
||||
@@ -211,6 +219,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`5. Click **Send invite**`,
|
||||
``,
|
||||
`They'll receive an email with a join link. Pending invites show in the collapsible "Pending Invitations" section below the member list — you can revoke from there.`,
|
||||
``,
|
||||
`[Learn about members and roles →](https://multica.ai/docs/members-roles)`,
|
||||
].join("\n"),
|
||||
});
|
||||
}
|
||||
@@ -259,6 +269,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`4. Click **Create**`,
|
||||
``,
|
||||
`**You'll know it worked when**: the new agent appears in the Assignee dropdown on any issue, and shows up in the left list on the Agents page.`,
|
||||
``,
|
||||
`[Learn about creating agents →](https://multica.ai/docs/agents-create)`,
|
||||
].join("\n"),
|
||||
});
|
||||
|
||||
@@ -305,6 +317,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`After the run finishes, the **Task Run History** below the card lists every past run. Click **View transcript** on any row to open the full interactive transcript — a timeline of every message, thinking step, tool call, and result.`,
|
||||
``,
|
||||
`**Try it next time you assign an agent**: keep the issue open and watch the Live card appear below the description.`,
|
||||
``,
|
||||
`[Learn about tasks →](https://multica.ai/docs/tasks)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -324,6 +338,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`- Top-right dropdown: **Mark all as read / Archive all / Archive all read / Archive completed** for bulk cleanup`,
|
||||
``,
|
||||
`**Tip**: "Archive completed" is the fastest way to clear the noise from issues already finished.`,
|
||||
``,
|
||||
`[Learn about the inbox →](https://multica.ai/docs/inbox)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -342,6 +358,8 @@ export function buildAgentGuidedSubIssues(
|
||||
`5. Click **Create**`,
|
||||
``,
|
||||
`**Good first autopilots**: daily digest of GitHub activity, weekly "what's blocked" check, or a Monday-morning triage of any issues still in Backlog.`,
|
||||
``,
|
||||
`[Learn about autopilots →](https://multica.ai/docs/autopilots)`,
|
||||
].join("\n"),
|
||||
},
|
||||
];
|
||||
@@ -383,6 +401,8 @@ export function buildSelfServeSubIssues(
|
||||
` The daemon keeps running after you close the terminal — you don't have to leave anything open.`,
|
||||
``,
|
||||
`**Verify**: sidebar → bottom **Configure** section → **Runtimes** → you should see at least one connected runtime.`,
|
||||
``,
|
||||
`[Learn about runtimes →](https://multica.ai/docs/daemon-runtimes)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -406,6 +426,8 @@ export function buildSelfServeSubIssues(
|
||||
`**Note**: an agent is just an LLM + instructions + workspace access. Nothing locks a "Coding Agent" to coding — same agent can do research, writing, planning. Keep it flexible.`,
|
||||
``,
|
||||
`**You'll know it worked when**: the new agent appears in the Assignee dropdown on any issue.`,
|
||||
``,
|
||||
`[Learn about creating agents →](https://multica.ai/docs/agents-create)`,
|
||||
].join("\n"),
|
||||
},
|
||||
];
|
||||
@@ -433,6 +455,8 @@ export function buildSelfServeSubIssues(
|
||||
`5. Watch the agent reply in the comments and a **Live card** appear in Activity`,
|
||||
``,
|
||||
`**⚠️ Gotcha**: new issues default to **Backlog**. You must flip to **Todo** to trigger the agent.`,
|
||||
``,
|
||||
`[Learn about assigning issues →](https://multica.ai/docs/assigning-issues)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -457,6 +481,8 @@ export function buildSelfServeSubIssues(
|
||||
`Click **Save**.`,
|
||||
``,
|
||||
`**You'll know it worked when**: the next task you assign to an agent picks up details from this context without you explaining again.`,
|
||||
``,
|
||||
`[Learn about workspaces →](https://multica.ai/docs/workspaces)`,
|
||||
].join("\n"),
|
||||
},
|
||||
];
|
||||
@@ -481,6 +507,8 @@ export function buildSelfServeSubIssues(
|
||||
`3. Type a question → press **Enter**`,
|
||||
``,
|
||||
`**Bonus**: inside any issue's comment box, type \`@\` to mention an agent or member.`,
|
||||
``,
|
||||
`[Learn about chat →](https://multica.ai/docs/chat)`,
|
||||
].join("\n"),
|
||||
},
|
||||
];
|
||||
@@ -517,6 +545,8 @@ export function buildSelfServeSubIssues(
|
||||
`1. Sidebar → **Settings** (⚙️, bottom)`,
|
||||
`2. Left tab list → **Members** (people icon)`,
|
||||
`3. Click **Add member** → enter email → pick role → **Send invite**`,
|
||||
``,
|
||||
`[Learn about members and roles →](https://multica.ai/docs/members-roles)`,
|
||||
].join("\n"),
|
||||
});
|
||||
}
|
||||
@@ -552,6 +582,8 @@ export function buildSelfServeSubIssues(
|
||||
`When an agent is working on an issue, a **Live card** appears at the top of the **Activity** section (it sticks to the top of the viewport as you scroll).`,
|
||||
``,
|
||||
`It shows in real time which tool the agent is calling, streaming thoughts, and current status. After the run finishes, the **Task Run History** below the card lists every past run — click **View transcript** to open the full timeline.`,
|
||||
``,
|
||||
`[Learn about tasks →](https://multica.ai/docs/tasks)`,
|
||||
].join("\n"),
|
||||
},
|
||||
{
|
||||
@@ -568,6 +600,8 @@ export function buildSelfServeSubIssues(
|
||||
`1. Sidebar → under **Workspace** group → click **Autopilot** (⚡ Zap icon)`,
|
||||
`2. Pick one of 6 templates, or click **+ New autopilot** top-right`,
|
||||
`3. Fill: **Name** / **Prompt** / **Agent** / **Schedule** (frequency + time + timezone) → **Create**`,
|
||||
``,
|
||||
`[Learn about autopilots →](https://multica.ai/docs/autopilots)`,
|
||||
].join("\n"),
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user