@songsid/agend 2.1.4-beta.19 → 2.1.4-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tips.d.ts +5 -0
- package/dist/tips.js +303 -506
- package/dist/tips.js.map +1 -1
- package/package.json +1 -1
package/dist/tips.js
CHANGED
|
@@ -1,512 +1,309 @@
|
|
|
1
1
|
import { Cron } from "croner";
|
|
2
2
|
export const ADVANCED_TIP_UNLOCK_THRESHOLD = 30;
|
|
3
3
|
export const TIPS = [
|
|
4
|
-
// ── Beginner (
|
|
5
|
-
{ id: "tip-001", level: "beginner",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
{ id: "tip-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
{ id: "tip-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
{ id: "tip-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{ id: "tip-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{ id: "tip-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
{ id: "tip-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{ id: "tip-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{ id: "tip-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
{ id: "tip-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
{ id: "tip-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
{ id: "tip-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{ id: "tip-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{ id: "tip-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{ id: "tip-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
{ id: "tip-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
{ id: "tip-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
{ id: "tip-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
{ id: "tip-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{ id: "tip-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
{ id: "tip-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
{ id: "tip-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{ id: "tip-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
{ id: "tip-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{ id: "tip-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
{ id: "tip-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{ id: "tip-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
{ id: "tip-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{ id: "tip-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
{ id: "tip-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
{ id: "tip-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
{ id: "tip-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
{ id: "tip-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
{ id: "tip-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
{ id: "tip-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
{ id: "tip-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
{ id: "tip-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{ id: "tip-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
{ id: "tip-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
{ id: "tip-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
{ id: "tip-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
{ id: "tip-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
{ id: "tip-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
{ id: "tip-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
{ id: "tip-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
{ id: "tip-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
{ id: "tip-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
{ id: "tip-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
{ id: "tip-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
{ id: "tip-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
{ id: "tip-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
{ id: "tip-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
{ id: "tip-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
{ id: "tip-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
{ id: "tip-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
{ id: "tip-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
{ id: "tip-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
{ id: "tip-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
{ id: "tip-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
{ id: "tip-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
{ id: "tip-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
{ id: "tip-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
{ id: "tip-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
{ id: "tip-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
{ id: "tip-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
{ id: "tip-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
{ id: "tip-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
{ id: "tip-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
{ id: "tip-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
{ id: "tip-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
{ id: "tip-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
{ id: "tip-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
{ id: "tip-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
{ id: "tip-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
{ id: "tip-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
{ id: "tip-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
{ id: "tip-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
{ id: "tip-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
{ id: "tip-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
{ id: "tip-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
{ id: "tip-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
{ id: "tip-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
{ id: "tip-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
{ id: "tip-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
{ id: "tip-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
{ id: "tip-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
{ id: "tip-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
{ id: "tip-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
{ id: "tip-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
{ id: "tip-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
{ id: "tip-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
{ id: "tip-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
{ id: "tip-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
{ id: "tip-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
{ id: "tip-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
{ id: "tip-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
{ id: "tip-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
{ id: "tip-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
{ id: "tip-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
// ── Expanded Beginner (70) ─────────────────────────────────────────────
|
|
308
|
-
{ id: "tip-101", level: "beginner", text_en: "A fleet is the complete group of AgEnD-managed instances, channels, and defaults running under one manager.", text_zh: "Fleet 是由同一個 manager 管理的一組 instances、channels 與 defaults。" },
|
|
309
|
-
{ id: "tip-102", level: "beginner", text_en: "An instance is a single coding-agent CLI process, not a virtual machine or container.", text_zh: "Instance 是單一 coding-agent CLI process,不是虛擬機或 container。" },
|
|
310
|
-
{ id: "tip-103", level: "beginner", text_en: "A daemon supervises one instance, delivers messages, observes its pane, and connects AgEnD tools.", text_zh: "Daemon 會監督一個 instance、投遞訊息、觀察 pane,並連接 AgEnD tools。" },
|
|
311
|
-
{ id: "tip-104", level: "beginner", text_en: "A backend identifies the CLI implementation, such as Claude Code, Codex, Kiro CLI, Grok, Antigravity, or OpenCode.", text_zh: "Backend 代表所使用的 CLI,例如 Claude Code、Codex、Kiro CLI、Grok、Antigravity 或 OpenCode。" },
|
|
312
|
-
{ id: "tip-105", level: "beginner", text_en: "An adapter connects AgEnD to a messaging platform and bot account, such as one Discord or Telegram bot.", text_zh: "Adapter 連接 AgEnD 與訊息平台及 bot 帳號,例如一個 Discord 或 Telegram bot。" },
|
|
313
|
-
{ id: "tip-106", level: "beginner", text_en: "A persona is the visible bot identity used for a reply; `channel_id` can bind an instance to one persona.", text_zh: "Persona 是回覆時顯示的 bot 身分;`channel_id` 可將 instance 綁定到指定 persona。" },
|
|
314
|
-
{ id: "tip-107", level: "beginner", text_en: "Telegram calls a separated conversation a topic; Discord may use a channel or thread for the same role.", text_zh: "Telegram 將分隔的對話稱為 topic;Discord 的相同用途可能是 channel 或 thread。" },
|
|
315
|
-
{ id: "tip-108", level: "beginner", text_en: "General is the coordinator instance that helps route work and manage the fleet.", text_zh: "General 是協調 instance,負責協助路由工作與管理 fleet。" },
|
|
316
|
-
{ id: "tip-109", level: "beginner", text_en: "ClassicBot creates an ongoing agent conversation in an ordinary chat channel instead of a configured fleet topic.", text_zh: "ClassicBot 會在一般聊天 channel 建立持續的 agent 對話,而不是使用預先設定的 fleet topic。" },
|
|
317
|
-
{ id: "tip-110", level: "beginner", text_en: "MCP is a protocol that lets a CLI discover and call AgEnD tools through a structured interface.", text_zh: "MCP 是讓 CLI 透過結構化介面發現並呼叫 AgEnD tools 的協定。" },
|
|
318
|
-
{ id: "tip-111", level: "beginner", text_en: "A pane is the tmux terminal area where one instance's CLI is visible and accepts input.", text_zh: "Pane 是 tmux 中顯示單一 instance CLI 並接收輸入的 terminal 區域。" },
|
|
319
|
-
{ id: "tip-112", level: "beginner", text_en: "tmux keeps terminal programs running independently of the shell used to view them.", text_zh: "tmux 可讓 terminal 程式持續執行,不依賴用來查看它們的 shell。" },
|
|
320
|
-
{ id: "tip-113", level: "beginner", text_en: "A session is the conversation state maintained by the backend; resume behavior differs between CLIs.", text_zh: "Session 是 backend 維護的對話狀態;不同 CLI 的 resume 行為並不相同。" },
|
|
321
|
-
{ id: "tip-114", level: "beginner", text_en: "Context is the information available to the model for the current conversation, not permanent project storage.", text_zh: "Context 是 model 在目前對話可用的資訊,不是永久的專案儲存空間。" },
|
|
322
|
-
{ id: "tip-115", level: "beginner", text_en: "The working directory is the project folder a CLI reads and edits for that instance.", text_zh: "Working directory 是該 instance 的 CLI 讀取與修改專案檔案的位置。" },
|
|
323
|
-
{ id: "tip-116", level: "beginner", text_en: "Working means AgEnD sees evidence that the CLI is processing a turn or using tools.", text_zh: "Working 表示 AgEnD 偵測到 CLI 正在處理回合或使用 tools。" },
|
|
324
|
-
{ id: "tip-117", level: "beginner", text_en: "Idle means the CLI appears ready for input; it does not mean the instance has been stopped.", text_zh: "Idle 表示 CLI 看起來已可接受輸入,不代表 instance 已停止。" },
|
|
325
|
-
{ id: "tip-118", level: "beginner", text_en: "Paused means AgEnD intentionally stopped the CLI while keeping configuration and resume data.", text_zh: "Paused 表示 AgEnD 刻意停止 CLI,同時保留設定與 resume 資料。" },
|
|
326
|
-
{ id: "tip-119", level: "beginner", text_en: "Stopped is an orderly exit; crashed indicates an unexpected exit or repeated recovery failure.", text_zh: "Stopped 代表正常結束;crashed 則表示非預期退出或 recovery 多次失敗。" },
|
|
327
|
-
{ id: "tip-120", level: "beginner", text_en: "Fleet-topic instances are configured centrally; ClassicBot instances are created from ordinary messaging channels.", text_zh: "Fleet-topic instances 由中央設定管理;ClassicBot instances 則從一般訊息 channels 建立。" },
|
|
328
|
-
{ id: "tip-121", level: "beginner", text_en: "A CLI coding agent is an interactive terminal program that can inspect code, edit files, and run permitted commands.", text_zh: "CLI coding agent 是可在 terminal 互動、檢查程式碼、修改檔案及執行獲准指令的程式。" },
|
|
329
|
-
{ id: "tip-122", level: "beginner", text_en: "AgEnD sends text to the same TUI a person would use, while supervising delivery and replies around it.", text_zh: "AgEnD 會把文字送進人類也能操作的 TUI,並在外層監督投遞與回覆。" },
|
|
330
|
-
{ id: "tip-123", level: "beginner", text_en: "`agend attach <instance>` opens that instance's tmux window for direct observation or approved manual input.", text_zh: "`agend attach <instance>` 會開啟該 instance 的 tmux window,供直接觀察或進行獲准的人工輸入。" },
|
|
331
|
-
{ id: "tip-124", level: "beginner", text_en: "View mirrors pane output in a browser; its ordinary viewing route does not resize or control the terminal.", text_zh: "View 會在瀏覽器呈現 pane output;一般瀏覽路徑不會 resize 或控制 terminal。" },
|
|
332
|
-
{ id: "tip-125", level: "beginner", text_en: "The View sidebar selects an instance, while the terminal area shows that instance's current pane.", text_zh: "View 左側可選擇 instance,terminal 區域則顯示該 instance 目前的 pane。" },
|
|
333
|
-
{ id: "tip-126", level: "beginner", text_en: "Settings and editable-dashboard links contain a persistent bearer token. Obtain them through `/dashboard`, do not share them publicly, and rotate `~/.agend/web.token` when a link must be invalidated.", text_zh: "Settings 與可編輯 dashboard links 含有持久 bearer token;應透過 `/dashboard` 取得且不要公開分享,需要使連結失效時可輪替 `~/.agend/web.token`。" },
|
|
334
|
-
{ id: "tip-127", level: "beginner", text_en: "An inbound message travels from the platform adapter to the fleet manager, then through IPC into the instance daemon and pane.", text_zh: "Inbound message 會由平台 adapter 進入 fleet manager,再經 IPC 到 instance daemon 與 pane。" },
|
|
335
|
-
{ id: "tip-128", level: "beginner", text_en: "An agent reply travels through its AgEnD tool connection, which selects the bound adapter and conversation destination.", text_zh: "Agent reply 會經由 AgEnD tool connection,選擇綁定的 adapter 與對話目的地。" },
|
|
336
|
-
{ id: "tip-129", level: "beginner", text_en: "A queued delivery has been accepted by AgEnD but may still be waiting for a safe moment to enter the CLI.", text_zh: "Queued delivery 已被 AgEnD 接受,但可能仍在等待安全時機送進 CLI。" },
|
|
337
|
-
{ id: "tip-130", level: "beginner", text_en: "Cancel sends the backend's interrupt key and retires the active cancel control for that turn.", text_zh: "Cancel 會送出 backend 對應的 interrupt key,並收回該回合的 cancel control。" },
|
|
338
|
-
{ id: "tip-131", level: "beginner", text_en: "Cancel drops deliveries queued before the click; messages arriving afterward form a new queue and are kept.", text_zh: "Cancel 會丟棄按下前排隊的 deliveries;之後才到達的訊息會形成新 queue 並保留。" },
|
|
339
|
-
{ id: "tip-132", level: "beginner", text_en: "Pausing saves resources by stopping the CLI process; it does not delete the instance configuration.", text_zh: "Pause 會停止 CLI process 以節省資源,不會刪除 instance 設定。" },
|
|
340
|
-
{ id: "tip-133", level: "beginner", text_en: "Waking recreates the CLI process and asks the backend to resume when its session mechanism supports it.", text_zh: "Wake 會重建 CLI process,並在 backend 支援時使用其 session resume 機制。" },
|
|
341
|
-
{ id: "tip-134", level: "beginner", text_en: "A fleet restart restarts the manager and runnable instances; persisted paused instances remain paused.", text_zh: "Fleet restart 會重啟 manager 與可執行 instances;已持久化的 paused instances 仍保持 paused。" },
|
|
342
|
-
{ id: "tip-135", level: "beginner", text_en: "For one unhealthy instance, ask General for an instance restart instead of using the fleet-wide `/restart` command.", text_zh: "只有單一 instance 異常時,應請 General 重啟該 instance,而不是使用 fleet-wide `/restart`。" },
|
|
343
|
-
{ id: "tip-136", level: "beginner", text_en: "Permission prompts are deliberate safety boundaries; review the requested action before approving it.", text_zh: "Permission prompt 是刻意設置的安全邊界;核准前應先檢查所要求的操作。" },
|
|
344
|
-
{ id: "tip-137", level: "beginner", text_en: "In a channel shared by multiple bots, mention the intended bot so the correct ClassicBot receives the turn.", text_zh: "多個 bots 共用 channel 時,應 mention 預期的 bot,讓正確的 ClassicBot 收到該回合。" },
|
|
345
|
-
{ id: "tip-138", level: "beginner", text_en: "Attachments are copied to a local inbox path before delivery; the agent receives that path rather than the platform URL alone.", text_zh: "Attachments 會先複製到本機 inbox path,agent 收到的是該路徑,而不只是平台 URL。" },
|
|
346
|
-
{ id: "tip-139", level: "beginner", text_en: "On supported Discord replies, images in the referenced message are included so the agent can inspect the intended visual context.", text_zh: "在支援的 Discord reply 中,被引用訊息的圖片會一併投遞,讓 agent 能檢查預期的視覺 context。" },
|
|
347
|
-
{ id: "tip-140", level: "beginner", text_en: "A user reaction can be included as recent context, except for AgEnD delivery-status and intentionally ignored emoji.", text_zh: "使用者 reaction 可作為近期 context,但 AgEnD delivery-status 與明確忽略的 emoji 除外。" },
|
|
348
|
-
{ id: "tip-141", level: "beginner", text_en: "Delivery-status emoji describe transport progress, not whether the model's answer is correct.", text_zh: "Delivery-status emoji 表示 transport 進度,不代表 model 的答案是否正確。" },
|
|
349
|
-
{ id: "tip-142", level: "beginner", text_en: "Agent reactions should avoid 👀, ⏳, ✅, and ❌ because AgEnD reserves them for delivery status.", text_zh: "Agent reaction 應避免 👀、⏳、✅、❌,因為 AgEnD 將它們保留給 delivery status。" },
|
|
350
|
-
{ id: "tip-143", level: "beginner", text_en: "Separate instances are useful for unrelated work because each keeps an independent CLI conversation.", text_zh: "互不相關的工作適合使用不同 instances,因為各自保有獨立的 CLI conversation。" },
|
|
351
|
-
{ id: "tip-144", level: "beginner", text_en: "Two instances editing the same files can conflict even when their conversations are independent.", text_zh: "即使 conversations 彼此獨立,兩個 instances 同時修改相同檔案仍可能衝突。" },
|
|
352
|
-
{ id: "tip-145", level: "beginner", text_en: "Backend chooses the CLI; model chooses the model requested from that CLI or its provider.", text_zh: "Backend 決定使用哪個 CLI;model 則是向該 CLI 或其 provider 要求的模型。" },
|
|
353
|
-
{ id: "tip-146", level: "beginner", text_en: "Leaving `model` unset usually lets fleet defaults or the CLI account choose; this is often safer than guessing a name.", text_zh: "不設定 `model` 時通常由 fleet defaults 或 CLI 帳號選擇;這通常比猜測名稱更安全。" },
|
|
354
|
-
{ id: "tip-147", level: "beginner", text_en: "Reasoning effort changes how much thinking a supported model applies; it does not switch the backend.", text_zh: "Reasoning effort 會調整支援 model 的思考強度,不會切換 backend。" },
|
|
355
|
-
{ id: "tip-148", level: "beginner", text_en: "Context percentage is an estimate parsed from backend data or pane output and may be unavailable.", text_zh: "Context percentage 是由 backend 資料或 pane output 解析的估計值,也可能無法取得。" },
|
|
356
|
-
{ id: "tip-149", level: "beginner", text_en: "Compaction usually asks a backend to summarize or reduce context while aiming to continue the same task; Antigravity maps `/compact` to a full conversation clear.", text_zh: "Compaction 通常會要求 backend 摘要或縮減 context,以繼續同一項工作;Antigravity 則會把 `/compact` 對應為完整清除對話。" },
|
|
357
|
-
{ id: "tip-150", level: "beginner", text_en: "Clear removes conversation context on supported backends and therefore asks for confirmation before it runs.", text_zh: "Clear 會移除支援 backend 的 conversation context,因此執行前需要再次確認。" },
|
|
358
|
-
{ id: "tip-151", level: "beginner", text_en: "Daily tips are optional and appear in General; `/tips off` disables automatic delivery.", text_zh: "每日 tips 是可選功能,會出現在 General;`/tips off` 可關閉自動投遞。" },
|
|
359
|
-
{ id: "tip-152", level: "beginner", text_en: "The Got it button records a tip as dismissed so that item is excluded from later selection.", text_zh: "「我知道了」按鈕會將 tip 記為 dismissed,之後選取時會排除該項。" },
|
|
360
|
-
{ id: "tip-153", level: "beginner", text_en: "Beginner and intermediate tips are available immediately; advanced tips require a later explicit unlock.", text_zh: "入門與中階 tips 一開始即可使用;進階 tips 則需要之後明確解鎖。" },
|
|
361
|
-
{ id: "tip-154", level: "beginner", text_en: "Settings provides a browser editor for common fleet and instance configuration fields.", text_zh: "Settings 提供瀏覽器介面,可編輯常見的 fleet 與 instance 設定欄位。" },
|
|
362
|
-
{ id: "tip-155", level: "beginner", text_en: "A hot setting applies without restarting the instance; a cold setting changes startup behavior and requires a restart.", text_zh: "Hot setting 不需重啟 instance 即可生效;cold setting 會改變啟動行為,因此需要 restart。" },
|
|
363
|
-
{ id: "tip-156", level: "beginner", text_en: "fleet.yaml is the persistent fleet configuration file; keep a backup before large manual edits.", text_zh: "fleet.yaml 是持久化的 fleet 設定檔;大量手動修改前應保留備份。" },
|
|
364
|
-
{ id: "tip-157", level: "beginner", text_en: "Instance fields omitted from fleet.yaml inherit matching defaults, keeping the file smaller.", text_zh: "Instance 在 fleet.yaml 省略的欄位會繼承對應 defaults,讓檔案保持精簡。" },
|
|
365
|
-
{ id: "tip-158", level: "beginner", text_en: "Descriptions and tags help people and General understand an instance's intended responsibility.", text_zh: "Descriptions 與 tags 可協助使用者及 General 理解 instance 的預期責任。" },
|
|
366
|
-
{ id: "tip-159", level: "beginner", text_en: "For General and fleet-topic instances in a multi-bot fleet, set Channel binding in Settings to keep replies on the intended bot. ClassicBot collaboration replies follow the receiving adapter.", text_zh: "多 bot fleet 中,General 與 fleet-topic instances 可在 Settings 設定 Channel binding,讓回覆固定使用預期 bot;ClassicBot 協作回覆則會跟隨收到訊息的 adapter。" },
|
|
367
|
-
{ id: "tip-160", level: "beginner", text_en: "Logs record lifecycle and routing evidence; they are useful for diagnosis but may contain project details.", text_zh: "Logs 會記錄 lifecycle 與 routing 證據,適合診斷,但可能包含專案細節。" },
|
|
368
|
-
{ id: "tip-161", level: "beginner", text_en: "Use `/status` for a channel summary and `agend ls` for a terminal-oriented instance list.", text_zh: "可用 `/status` 查看 channel 摘要,或用 `agend ls` 查看 terminal 形式的 instance 清單。" },
|
|
369
|
-
{ id: "tip-162", level: "beginner", text_en: "Use `/doctor` to check the configured backend CLI; use `agend doctor` in a terminal for service, tmux, fleet PID, and IPC checks.", text_zh: "可用 `/doctor` 檢查目前設定的 backend CLI;service、tmux、fleet PID 與 IPC 則應在終端執行 `agend doctor` 檢查。" },
|
|
370
|
-
{ id: "tip-163", level: "beginner", text_en: "`/sysinfo` provides versions and host facts that help reproduce environment-specific issues.", text_zh: "`/sysinfo` 會提供版本與主機資訊,有助於重現特定環境的問題。" },
|
|
371
|
-
{ id: "tip-164", level: "beginner", text_en: "`/usage` reports provider data when available; no data can mean unsupported telemetry rather than zero usage.", text_zh: "`/usage` 會在可用時顯示 provider 資料;no data 可能代表不支援 telemetry,而不是用量為零。" },
|
|
372
|
-
{ id: "tip-165", level: "beginner", text_en: "`/dashboard` is the normal way to obtain authenticated browser links for fleet pages.", text_zh: "`/dashboard` 是取得 fleet 網頁 authenticated links 的一般方式。" },
|
|
373
|
-
{ id: "tip-166", level: "beginner", text_en: "`/update` changes the installed AgEnD version and restarts the fleet, so active work should be considered first.", text_zh: "`/update` 會變更已安裝的 AgEnD 版本並重啟 fleet,執行前應先考量進行中的工作。" },
|
|
374
|
-
{ id: "tip-167", level: "beginner", text_en: "Schedules deliver a message later or repeatedly; the target instance still processes it as a normal turn.", text_zh: "Schedules 可在之後或週期性投遞訊息;target instance 仍會把它當作一般回合處理。" },
|
|
375
|
-
{ id: "tip-168", level: "beginner", text_en: "Ask General for fleet-wide coordination, instance lifecycle actions, or help choosing the right worker.", text_zh: "需要 fleet-wide 協調、instance lifecycle 操作或選擇 worker 時,可詢問 General。" },
|
|
376
|
-
{ id: "tip-169", level: "beginner", text_en: "Do not send passwords or private tokens through chat; enter secrets directly in the trusted terminal when required.", text_zh: "不要透過 chat 傳送密碼或 private tokens;必要時應直接在可信任的 terminal 輸入。" },
|
|
377
|
-
{ id: "tip-170", level: "beginner", text_en: "Before changing paths, credentials, or access rules, preserve a recoverable copy of the current configuration.", text_zh: "變更 paths、credentials 或 access rules 前,應保留可復原的目前設定副本。" },
|
|
378
|
-
// ── Expanded Intermediate (60) ─────────────────────────────────────────
|
|
379
|
-
{ id: "tip-171", level: "intermediate", text_en: "Use `/steer <message>` to redirect an active turn on Claude Code, Codex, or Grok without waiting for idle.", text_zh: "可用 `/steer <訊息>` 在 Claude Code、Codex 或 Grok 工作途中調整方向,不必等待 idle。" },
|
|
380
|
-
{ id: "tip-172", level: "intermediate", text_en: "Use `/btw <message>` for a labelled follow-up on Claude Code. AgEnD sends it through the normal reply path so the answer reaches the channel and transcript; other backends report unsupported.", text_zh: "可用 `/btw <訊息>` 向 Claude Code 提出標記過的附帶問題;AgEnD 會透過一般回覆路徑投遞,讓答案進入 channel 與 transcript,其他 backends 則回報不支援。" },
|
|
381
|
-
{ id: "tip-173", level: "intermediate", text_en: "Use admin-only `/raw <text>` only when the normal inbound wrapper would change the intended CLI command.", text_zh: "只有一般 inbound wrapper 會改變預期 CLI command 時,才使用 admin-only `/raw <文字>`。" },
|
|
382
|
-
{ id: "tip-174", level: "intermediate", text_en: "Use `/compact` when context is becoming crowded but the current conversation should continue; backend behavior differs, and Antigravity performs a full clear instead.", text_zh: "Context 逐漸擁擠但仍要延續目前對話時,可用 `/compact`;實際行為依 backend 而異,Antigravity 會改為完整清除。" },
|
|
383
|
-
{ id: "tip-175", level: "intermediate", text_en: "Use `/clear` for a fresh conversation on supported backends; the confirmation exists because prior context is not retained.", text_zh: "支援的 backend 可用 `/clear` 開始新對話;由於先前 context 不會保留,因此需要確認。" },
|
|
384
|
-
{ id: "tip-176", level: "intermediate", text_en: "Use `/ctx` to verify the effective backend and model before attributing behavior to a particular CLI.", text_zh: "判斷某個行為屬於哪個 CLI 前,可先用 `/ctx` 確認 effective backend 與 model。" },
|
|
385
|
-
{ id: "tip-177", level: "intermediate", text_en: "Use `/model` without an argument to inspect choices; use `/model <name>` only after checking the target backend's catalog.", text_zh: "可先執行不帶參數的 `/model` 查看選項;確認 target backend catalog 後再用 `/model <名稱>`。" },
|
|
386
|
-
{ id: "tip-178", level: "intermediate", text_en: "Use `/effort` without an argument to inspect supported levels before applying an effort override.", text_zh: "套用 effort override 前,可先執行不帶參數的 `/effort` 查看支援等級。" },
|
|
387
|
-
{ id: "tip-179", level: "intermediate", text_en: "Use `/save <name>` only on Kiro CLI or Claude Code; the exported format and destination are backend-defined.", text_zh: "`/save <名稱>` 只支援 Kiro CLI 與 Claude Code;匯出格式與位置由 backend 決定。" },
|
|
388
|
-
{ id: "tip-180", level: "intermediate", text_en: "Use `/cancel` to interrupt the current turn and discard older pending deliveries; it does not delete conversation history.", text_zh: "可用 `/cancel` 中斷目前回合並丟棄較早的 pending deliveries;它不會刪除 conversation history。" },
|
|
389
|
-
{ id: "tip-181", level: "intermediate", text_en: "Use `/pause` only when an instance is idle; General cannot be paused because fleet coordination must remain available.", text_zh: "只有 instance idle 時才使用 `/pause`;General 不可 pause,以維持 fleet 協調能力。" },
|
|
390
|
-
{ id: "tip-182", level: "intermediate", text_en: "Use `/wake` to start a paused instance immediately; sending it a normal message can also trigger wake.", text_zh: "可用 `/wake` 立即啟動 paused instance;傳送一般訊息也能觸發 wake。" },
|
|
391
|
-
{ id: "tip-183", level: "intermediate", text_en: "Use `/restart` only when the whole fleet should restart; ask General for a single-instance restart.", text_zh: "只有整個 fleet 都需要 restart 時才使用 `/restart`;單一 instance 應請 General 重啟。" },
|
|
392
|
-
{ id: "tip-184", level: "intermediate", text_en: "Use `/update` after active work reaches a safe point because installation is followed by a fleet restart.", text_zh: "`/update` 安裝後會重啟 fleet,因此應等進行中的工作到達安全點再執行。" },
|
|
393
|
-
{ id: "tip-185", level: "intermediate", text_en: "Use `/usage` to compare available provider windows; telemetry labels and refresh timing differ by provider.", text_zh: "可用 `/usage` 比較可取得的 provider windows;telemetry labels 與 refresh timing 依 provider 而異。" },
|
|
394
|
-
{ id: "tip-186", level: "intermediate", text_en: "Use `/dashboard` to obtain current authenticated links rather than reusing a URL from another machine or fleet.", text_zh: "應用 `/dashboard` 取得目前 authenticated links,不要重用其他機器或 fleet 的 URL。" },
|
|
395
|
-
{ id: "tip-187", level: "intermediate", text_en: "Use `/doctor` for backend checks in chat and `agend doctor` for broader host, service, tmux, and IPC checks.", text_zh: "Chat 中可用 `/doctor` 檢查 backend;更完整的 host、service、tmux 與 IPC 檢查則用 `agend doctor`。" },
|
|
396
|
-
{ id: "tip-188", level: "intermediate", text_en: "Use `/sysinfo` when a report depends on operating system, architecture, Node, tmux, or AgEnD version.", text_zh: "問題與 OS、architecture、Node、tmux 或 AgEnD version 有關時,可使用 `/sysinfo`。" },
|
|
397
|
-
{ id: "tip-189", level: "intermediate", text_en: "Use `/tips` for an on-demand item, `/tips off` to stop daily delivery, and `/tips on` to restore it.", text_zh: "可用 `/tips` 主動查看、`/tips off` 停止每日投遞,或 `/tips on` 重新開啟。" },
|
|
398
|
-
{ id: "tip-190", level: "intermediate", text_en: "Use `/status` for a fleet overview; access is admin-gated because it includes cross-instance operational details.", text_zh: "可用 `/status` 查看 fleet overview;其中含跨 instance 營運資訊,因此限管理員使用。" },
|
|
399
|
-
{ id: "tip-191", level: "intermediate", text_en: "Claude Code supports specialized subagents; they are useful for independent research or review while the main agent coordinates results.", text_zh: "Claude Code 支援 specialized subagents,適合在 main agent 協調結果時進行獨立研究或 review。" },
|
|
400
|
-
{ id: "tip-192", level: "intermediate", text_en: "Claude Code discovers skills that package reusable instructions; availability depends on the installed CLI and workspace configuration.", text_zh: "Claude Code 可發現封裝重複 instructions 的 skills;實際可用性取決於已安裝 CLI 與 workspace 設定。" },
|
|
401
|
-
{ id: "tip-193", level: "intermediate", text_en: "Claude Code permission modes control whether file and command actions are allowed, denied, or require approval.", text_zh: "Claude Code permission modes 可控制檔案與 command actions 是允許、拒絕或需要核准。" },
|
|
402
|
-
{ id: "tip-194", level: "intermediate", text_en: "Claude Code can continue or resume sessions, but continuity still depends on the project path and available session data.", text_zh: "Claude Code 可 continue 或 resume sessions,但能否延續仍取決於 project path 與可用 session data。" },
|
|
403
|
-
{ id: "tip-195", level: "intermediate", text_en: "Codex applies a sandbox policy to model-generated shell commands; approval policy and sandbox scope are separate controls.", text_zh: "Codex 會對 model 產生的 shell commands 套用 sandbox policy;approval policy 與 sandbox scope 是不同控制。" },
|
|
404
|
-
{ id: "tip-196", level: "intermediate", text_en: "Codex can accept queued input while working, so AgEnD delivers follow-up messages without waiting for a false idle gap.", text_zh: "Codex 工作時可接受 queued input,因此 AgEnD 不需等待可能誤判的 idle gap 才投遞 follow-up。" },
|
|
405
|
-
{ id: "tip-197", level: "intermediate", text_en: "Codex skills keep reusable workflows discoverable and load detailed instructions when the task calls for them.", text_zh: "Codex skills 可讓重複 workflows 保持可發現,並在任務需要時載入詳細 instructions。" },
|
|
406
|
-
{ id: "tip-198", level: "intermediate", text_en: "Codex custom providers are selected by AgEnD, while provider URLs and credential environment variables remain in Codex configuration.", text_zh: "AgEnD 只負責選擇 Codex custom provider;provider URL 與 credential environment variables 仍由 Codex config 管理。" },
|
|
407
|
-
{ id: "tip-199", level: "intermediate", text_en: "Codex model metadata warnings can occur for custom models; the provider's actual response determines whether the model works.", text_zh: "Custom models 可能出現 Codex model metadata warning;model 是否可用仍以 provider 實際回應為準。" },
|
|
408
|
-
{ id: "tip-200", level: "intermediate", text_en: "Kiro Specs provide a requirements, design, tasks, and execution workflow stored under `.kiro/specs/`.", text_zh: "Kiro Specs 提供 requirements、design、tasks 與 execution workflow,內容存放於 `.kiro/specs/`。" },
|
|
409
|
-
{ id: "tip-201", level: "intermediate", text_en: "Kiro steering files provide persistent project guidance so conventions do not need to be repeated in every message.", text_zh: "Kiro steering files 可提供持久的專案指引,不需在每則訊息重複 conventions。" },
|
|
410
|
-
{ id: "tip-202", level: "intermediate", text_en: "Kiro skills use progressive disclosure: metadata is discovered first and detailed instructions are loaded when relevant.", text_zh: "Kiro skills 採 progressive disclosure:先發現 metadata,再於相關任務載入詳細 instructions。" },
|
|
411
|
-
{ id: "tip-203", level: "intermediate", text_en: "Kiro CLI distinguishes steer and queue follow-ups; its native Ctrl+S mode changes how busy-time input is handled.", text_zh: "Kiro CLI 區分 steer 與 queue follow-ups;原生 Ctrl+S mode 會改變 busy-time input 的處理方式。" },
|
|
412
|
-
{ id: "tip-204", level: "intermediate", text_en: "Kiro `auto` lets the CLI choose among available models dynamically. An unset instance model first inherits `defaults.model`; only when neither is set does Kiro use its CLI default, currently `auto`. Set `model: auto` explicitly to override a fleet model default.", text_zh: "Kiro `auto` 會讓 CLI 動態選擇可用 models。Instance 未設定 model 時會先繼承 `defaults.model`;兩者都未設定時,Kiro 才會使用目前為 `auto` 的 CLI default。若要覆寫 fleet 的 model default,應明確設定 `model: auto`。" },
|
|
413
|
-
{ id: "tip-205", level: "intermediate", text_en: "Grok includes web search and fetch capabilities when enabled; availability can depend on CLI policy and account access.", text_zh: "Grok 在啟用時可使用 web search 與 fetch;實際可用性可能取決於 CLI policy 與 account access。" },
|
|
414
|
-
{ id: "tip-206", level: "intermediate", text_en: "Grok supports subagents for parallel or specialized work; the CLI can also disable subagent spawning.", text_zh: "Grok 支援 subagents 進行平行或 specialized work;CLI 也能停用 subagent spawning。" },
|
|
415
|
-
{ id: "tip-207", level: "intermediate", text_en: "Grok exposes permission modes and sandbox profiles; choose them according to the repository's risk level.", text_zh: "Grok 提供 permission modes 與 sandbox profiles;應依 repository risk level 選擇。" },
|
|
416
|
-
{ id: "tip-208", level: "intermediate", text_en: "Grok's `models` command lists models visible to the current account; the list is more reliable than a static tip.", text_zh: "Grok 的 `models` command 會列出目前 account 可見 models;它比靜態 tip 更可靠。" },
|
|
417
|
-
{ id: "tip-209", level: "intermediate", text_en: "Antigravity CLI supports multi-step reasoning, multi-file edits, tool calls, and conversation history in a terminal TUI.", text_zh: "Antigravity CLI 在 terminal TUI 中支援 multi-step reasoning、multi-file edits、tool calls 與 conversation history。" },
|
|
418
|
-
{ id: "tip-210", level: "intermediate", text_en: "Antigravity can connect Google and third-party services through configured MCP servers; approvals still apply.", text_zh: "Antigravity 可透過 configured MCP servers 連接 Google 與第三方 services;操作仍受 approvals 控制。" },
|
|
419
|
-
{ id: "tip-211", level: "intermediate", text_en: "Antigravity skills provide reusable domain workflows, but skill discovery paths can differ between its desktop and CLI products.", text_zh: "Antigravity skills 可提供可重用的 domain workflows,但 desktop 與 CLI products 的 discovery paths 可能不同。" },
|
|
420
|
-
{ id: "tip-212", level: "intermediate", text_en: "Antigravity's model selector reflects the current Google account or project; check it before pinning a model in AgEnD.", text_zh: "Antigravity model selector 反映目前 Google account 或 project;在 AgEnD 固定 model 前應先確認。" },
|
|
421
|
-
{ id: "tip-213", level: "intermediate", text_en: "Antigravity is a CLI backend in AgEnD; Google service access still comes from the CLI's own authentication and tools.", text_zh: "Antigravity 在 AgEnD 中是 CLI backend;Google service access 仍由 CLI 自己的 authentication 與 tools 提供。" },
|
|
422
|
-
{ id: "tip-214", level: "intermediate", text_en: "OpenCode has primary agents for main work and subagents for focused tasks; configuration can be project-specific.", text_zh: "OpenCode 有處理主要工作的 primary agents 與專注任務的 subagents,設定可放在 project scope。" },
|
|
423
|
-
{ id: "tip-215", level: "intermediate", text_en: "OpenCode model identifiers commonly include a provider prefix; use its model list rather than assuming a bare model name.", text_zh: "OpenCode model identifiers 通常包含 provider prefix;應查看其 model list,不要假設 bare model name。" },
|
|
424
|
-
{ id: "tip-216", level: "intermediate", text_en: "OpenCode permissions can separately govern reading, editing, shell commands, external directories, and subagent tasks.", text_zh: "OpenCode permissions 可分別管理 reading、editing、shell commands、external directories 與 subagent tasks。" },
|
|
425
|
-
{ id: "tip-217", level: "intermediate", text_en: "OpenCode's Build and Plan agents have different permission intent; select the one matching the requested level of change.", text_zh: "OpenCode 的 Build 與 Plan agents 有不同 permission intent;應依需求的變更程度選擇。" },
|
|
426
|
-
{ id: "tip-218", level: "intermediate", text_en: "OpenCode provider definitions belong in `opencode.json`; AgEnD's model value selects from what OpenCode exposes.", text_zh: "OpenCode provider definitions 應放在 `opencode.json`;AgEnD model value 則從 OpenCode 提供的項目中選擇。" },
|
|
427
|
-
{ id: "tip-219", level: "intermediate", text_en: "Claude model families often trade capability, speed, and cost differently; use the account's current selector for exact availability.", text_zh: "Claude model families 通常在能力、速度與成本間有不同取捨;精確 availability 應以 account 當前 selector 為準。" },
|
|
428
|
-
{ id: "tip-220", level: "intermediate", text_en: "Opus is generally positioned for demanding work, Sonnet for balanced work, and Haiku for faster lighter work; current model docs remain authoritative.", text_zh: "Opus 通常定位於高難度工作、Sonnet 偏平衡、Haiku 偏快速輕量;仍應以最新 model docs 為準。" },
|
|
429
|
-
{ id: "tip-221", level: "intermediate", text_en: "GPT model variants can target different capability, latency, and cost points; names visible in the CLI are the source of truth.", text_zh: "GPT model variants 可能針對不同能力、latency 與成本;CLI 實際顯示的名稱才是 source of truth。" },
|
|
430
|
-
{ id: "tip-222", level: "intermediate", text_en: "When available, Sol targets frontier work, Terra balances capability and cost, and Luna targets cost-sensitive, high-volume work; verify current account access.", text_zh: "在可用時,Sol 偏向 frontier work、Terra 平衡能力與成本、Luna 適合重視成本的大量工作;仍需確認目前 account access。" },
|
|
431
|
-
{ id: "tip-223", level: "intermediate", text_en: "Automatic model selection can change models between turns, so pin a model only when repeatability matters more than flexibility.", text_zh: "Automatic model selection 可能在不同回合使用不同 models;只有 repeatability 比 flexibility 更重要時才固定 model。" },
|
|
432
|
-
{ id: "tip-224", level: "intermediate", text_en: "A model unavailable to one account may work on another; an AgEnD compatibility warning is not an entitlement check.", text_zh: "某 account 不可用的 model 可能在另一 account 可用;AgEnD compatibility warning 不是 entitlement check。" },
|
|
433
|
-
{ id: "tip-225", level: "intermediate", text_en: "For a complex request, specify the desired outcome and verification evidence rather than prescribing every implementation step.", text_zh: "複雜需求應說明預期結果與 verification evidence,不一定要指定每個 implementation step。" },
|
|
434
|
-
{ id: "tip-226", level: "intermediate", text_en: "When work is read-only, state that explicitly so the agent does not infer permission to modify files.", text_zh: "若工作只需 read-only,應明確說明,避免 agent 推定可修改檔案。" },
|
|
435
|
-
{ id: "tip-227", level: "intermediate", text_en: "When requesting a fix, include the observed symptom, a reproduction path, and the expected behavior.", text_zh: "要求修正時,應包含 observed symptom、reproduction path 與 expected behavior。" },
|
|
436
|
-
{ id: "tip-228", level: "intermediate", text_en: "A screenshot can show TUI state, but logs and timestamps are usually needed to identify routing or timing causes.", text_zh: "Screenshot 可呈現 TUI state,但 routing 或 timing 根因通常仍需要 logs 與 timestamps。" },
|
|
437
|
-
{ id: "tip-229", level: "intermediate", text_en: "For parallel work, separate file ownership or use distinct worktrees so successful edits do not overwrite one another.", text_zh: "平行工作時應分開 file ownership 或使用不同 worktrees,避免成功修改互相覆蓋。" },
|
|
438
|
-
{ id: "tip-230", level: "intermediate", text_en: "Before accepting a generated change, review the diff and the tests that exercise production code rather than copied logic.", text_zh: "接受 generated change 前,應檢查 diff 與真正覆蓋 production code 的 tests,而不是複製出的邏輯。" },
|
|
439
|
-
// ── Expanded Advanced (70) ─────────────────────────────────────────────
|
|
440
|
-
{ id: "tip-231", level: "advanced", text_en: "Keep the automatic fleet.yaml backup until the slimmed or migrated configuration has completed a successful restart.", text_zh: "Fleet.yaml 自動備份應保留到瘦身或 migration 後成功完成 restart。" },
|
|
441
|
-
{ id: "tip-232", level: "advanced", text_en: "AgEnD's lossless YAML patcher aims to preserve comments, but comments attached to removed redundant fields may not have a remaining node.", text_zh: "AgEnD lossless YAML patcher 會盡量保留 comments,但附著於被移除 redundant fields 的 comments 可能沒有可保留的節點。" },
|
|
442
|
-
{ id: "tip-233", level: "advanced", text_en: "Raw instance config can omit inherited values; inspect effective config when diagnosing what a daemon actually received.", text_zh: "Raw instance config 可省略 inherited values;診斷 daemon 實際收到什麼時,應查看 effective config。" },
|
|
443
|
-
{ id: "tip-234", level: "advanced", text_en: "A SIGHUP reload reconciles hot fields in place and sends daemon config updates without recreating the CLI process.", text_zh: "SIGHUP reload 會原地 reconcile hot fields,並傳送 daemon config updates,不會重建 CLI process。" },
|
|
444
|
-
{ id: "tip-235", level: "advanced", text_en: "Cold-field reconciliation restarts only affected instances; adapter-wide changes can still require a fleet restart.", text_zh: "Cold-field reconciliation 只會重啟受影響 instances;adapter-wide changes 仍可能需要 fleet restart。" },
|
|
445
|
-
{ id: "tip-236", level: "advanced", text_en: "Run `agend validate` before reload after manual YAML edits; a rejected reload leaves the prior running configuration intact.", text_zh: "手動修改 YAML 後,reload 前應先執行 `agend validate`;被拒絕的 reload 會保留先前 running config。" },
|
|
446
|
-
{ id: "tip-237", level: "advanced", text_en: "The fleet singleton lock prevents a second manager from racing for the same tmux session, sockets, and bot polling connections.", text_zh: "Fleet singleton lock 可防止第二個 manager 爭用相同 tmux session、sockets 與 bot polling connections。" },
|
|
447
|
-
{ id: "tip-238", level: "advanced", text_en: "A service-managed fleet should fail closed when the user service bus is unavailable instead of launching an untracked duplicate.", text_zh: "Service-managed fleet 在 user service bus 不可用時應 fail closed,而不是啟動未追蹤的 duplicate。" },
|
|
448
|
-
{ id: "tip-239", level: "advanced", text_en: "scheduler.db stores schedules, decisions, tasks, and tip state; back it up consistently before direct database maintenance.", text_zh: "scheduler.db 儲存 schedules、decisions、tasks 與 tip state;直接維護資料庫前應做一致性備份。" },
|
|
449
|
-
{ id: "tip-240", level: "advanced", text_en: "SQLite base files and their WAL, SHM, or journal sidecars must stay together; splitting them across homes can make a database unusable.", text_zh: "SQLite base file 與 WAL、SHM 或 journal sidecars 必須保持一致;分散到不同 homes 可能使資料庫無法使用。" },
|
|
450
|
-
{ id: "tip-241", level: "advanced", text_en: "Do not place provider secrets in fleet.yaml when a CLI supports environment-key references; configuration files are easier to expose accidentally.", text_zh: "CLI 支援 environment-key reference 時,不應把 provider secrets 放進 fleet.yaml;設定檔較容易被意外暴露。" },
|
|
451
|
-
{ id: "tip-242", level: "advanced", text_en: "Configure locked channel access in Settings' Advanced & Access section or fleet.yaml, and verify at least one administrator remains in `allowed_users` before restart.", text_zh: "受控 fleet 可在 Settings 的 Advanced & Access section 或 fleet.yaml 設定 locked channel access;restart 前應確認 `allowed_users` 至少保留一位管理員。" },
|
|
452
|
-
{ id: "tip-243", level: "advanced", text_en: "Treat bot tokens, dashboard tokens, provider keys, and session exports as secrets with different rotation procedures.", text_zh: "Bot tokens、dashboard tokens、provider keys 與 session exports 都應視為 secrets,但各自有不同 rotation procedures。" },
|
|
453
|
-
{ id: "tip-244", level: "advanced", text_en: "The persistent web token keeps dashboard URLs valid across fleet restarts. To invalidate them, remove or replace `~/.agend/web.token`, restart the fleet, then run `/dashboard` for a new link.", text_zh: "Persistent web token 可讓 dashboard URLs 跨 fleet restart 仍有效;需要使連結失效時,應移除或替換 `~/.agend/web.token`、重啟 fleet,再執行 `/dashboard` 取得新連結。" },
|
|
454
|
-
{ id: "tip-245", level: "advanced", text_en: "Sensitive token and state files should remain owner-readable only; avoid copying them into shared project directories.", text_zh: "敏感 token 與 state files 應只允許 owner 讀取,避免複製到 shared project directories。" },
|
|
455
|
-
{ id: "tip-246", level: "advanced", text_en: "Destructive and assistance confirmation prompts use nonce-bound callbacks tied to adapter, chat, thread, and message so copied callback data cannot authorize another context.", text_zh: "破壞性操作與協助確認提示會使用綁定 adapter、chat、thread 與 message 的 nonce callbacks,避免複製 callback data 後授權其他 context。" },
|
|
456
|
-
{ id: "tip-247", level: "advanced", text_en: "An allowlist is an authorization boundary, not merely a UI filter; test both permitted and rejected identities after changes.", text_zh: "Allowlist 是 authorization boundary,不只是 UI filter;變更後應同時測試允許與拒絕的 identities。" },
|
|
457
|
-
{ id: "tip-248", level: "advanced", text_en: "In multi-world fleets, bind General and fleet-topic instances explicitly so callbacks and replies remain in the intended adapter world.", text_zh: "Multi-world fleets 應明確綁定 General 與 fleet-topic instances,讓 callbacks 與 replies 留在預期 adapter world。" },
|
|
458
|
-
{ id: "tip-249", level: "advanced", text_en: "Set terminal columns and rows through Settings' advanced YAML editor or fleet.yaml. Geometry affects both TUI layout and captured line wrapping, so validate prompt detection after changes.", text_zh: "可透過 Settings 的 advanced YAML editor 或 fleet.yaml 設定 terminal columns 與 rows;geometry 同時影響 TUI layout 與 captured line wrapping,因此變更後應驗證 prompt detection。" },
|
|
459
|
-
{ id: "tip-250", level: "advanced", text_en: "AgEnD enables tmux mouse mode only for its own session, allowing scrollback after attach without changing unrelated sessions.", text_zh: "AgEnD 只在自己的 tmux session 啟用 mouse mode,attach 後可捲動 scrollback,不影響其他 sessions。" },
|
|
460
|
-
{ id: "tip-251", level: "advanced", text_en: "`capture-pane` without joined wrapping reflects the screen's physical lines, so width changes can alter parser input even when text is unchanged.", text_zh: "未 join wrapping 的 `capture-pane` 會反映畫面實際行,因此即使文字相同,width changes 也可能改變 parser input。" },
|
|
461
|
-
{ id: "tip-252", level: "advanced", text_en: "Ready, busy, and error patterns are heuristics over pane text; keep real CLI samples when adjusting them.", text_zh: "Ready、busy 與 error patterns 是對 pane text 的 heuristics;調整時應保留真實 CLI samples。" },
|
|
462
|
-
{ id: "tip-253", level: "advanced", text_en: "A false idle can retire controls or deliver too early; a false working can delay messages and trigger hang alerts.", text_zh: "False idle 可能提早收回 controls 或投遞;false working 則可能延遲訊息並觸發 hang alerts。" },
|
|
463
|
-
{ id: "tip-254", level: "advanced", text_en: "Tune hang detection in Settings' Detection section or fleet.yaml, keeping timeouts above normal silent work intervals; inspect pane evidence before forcing a restart.", text_zh: "可在 Settings 的 Detection section 或 fleet.yaml 調整 hang detection,timeout 應高於正常 silent work intervals;force restart 前先查看 pane evidence。" },
|
|
464
|
-
{ id: "tip-255", level: "advanced", text_en: "Interactive-prompt detection requires both a prompt pattern and stable output time, reducing alerts caused by ordinary discussion of password commands.", text_zh: "Interactive-prompt detection 同時要求 prompt pattern 與穩定 output 時間,可減少一般討論 password commands 所造成的 alerts。" },
|
|
465
|
-
{ id: "tip-256", level: "advanced", text_en: "Lightweight mode is an instance setting that reduces supervision overhead by omitting several monitors; change it in Settings only when those missing safeguards are understood.", text_zh: "Lightweight mode 是會省略多項 monitors 以降低 supervision overhead 的 instance setting;只有理解缺少哪些 safeguards 時才在 Settings 變更。" },
|
|
466
|
-
{ id: "tip-257", level: "advanced", text_en: "Set tool progress in Settings. Verbose mode can expose command previews in chat history, so use standard or off where operational details are sensitive.", text_zh: "可在 Settings 設定 tool progress;verbose mode 可能在 chat history 顯示 command previews,因此敏感環境應使用 standard 或 off。" },
|
|
467
|
-
{ id: "tip-258", level: "advanced", text_en: "Adjust log level in Settings only temporarily for diagnosis, then restore it to avoid noise and unnecessary exposure of operational details.", text_zh: "診斷時可在 Settings 暫時調整 log level,完成後應恢復,以避免噪音與不必要的營運細節暴露。" },
|
|
468
|
-
{ id: "tip-259", level: "advanced", text_en: "A listening health endpoint is required before dashboard links are considered ready; port conflicts should fail closed.", text_zh: "Health endpoint 必須成功 listening,dashboard links 才算 ready;port conflict 應 fail closed。" },
|
|
469
|
-
{ id: "tip-260", level: "advanced", text_en: "IPC disconnect, overflow, and reconnect events should be correlated by instance; repeated clients can otherwise duplicate outbound handling.", text_zh: "IPC disconnect、overflow 與 reconnect events 應依 instance 關聯;重複 clients 否則可能重複處理 outbound。" },
|
|
470
|
-
{ id: "tip-261", level: "advanced", text_en: "If two fleet processes appear, collect PID, parent PID, lock owner, service state, and command line before terminating either one.", text_zh: "若出現兩個 fleet processes,終止前應收集 PID、parent PID、lock owner、service state 與 command line。" },
|
|
471
|
-
{ id: "tip-262", level: "advanced", text_en: "Recovery paths should serialize per instance so health checks, MCP recovery, and manual restart cannot spawn competing replacements.", text_zh: "Recovery paths 應依 instance 序列化,避免 health checks、MCP recovery 與 manual restart 建立互相競爭的 replacements。" },
|
|
472
|
-
{ id: "tip-263", level: "advanced", text_en: "Crash-loop protection pauses repeated recovery after a bounded number of failures and reports crashed state instead of idle.", text_zh: "Crash-loop protection 會在有限次數失敗後暫停 repeated recovery,並顯示 crashed 而不是 idle。" },
|
|
473
|
-
{ id: "tip-264", level: "advanced", text_en: "Restart backoff prevents a broken CLI from consuming CPU and logs in a tight spawn-fail loop.", text_zh: "Restart backoff 可避免故障 CLI 在緊密 spawn-fail loop 中持續消耗 CPU 與 logs。" },
|
|
474
|
-
{ id: "tip-265", level: "advanced", text_en: "MCP auto-restart is idle-gated and deduplicated; it recreates the instance because the CLI owns the MCP child pipes.", text_zh: "MCP auto-restart 會進行 idle gate 與 deduplication;由於 CLI 掌握 MCP child pipes,因此需重建 instance。" },
|
|
475
|
-
{ id: "tip-266", level: "advanced", text_en: "Configure `mcp_proxy_reply` through Settings' advanced YAML editor or fleet.yaml. It is a last-resort transport that may include sanitized terminal remnants, so keep it disabled for secret-heavy panes.", text_zh: "可透過 Settings 的 advanced YAML editor 或 fleet.yaml 設定 `mcp_proxy_reply`;它是可能包含 sanitized terminal remnants 的最後手段 transport,因此含大量 secrets 的 pane 應保持停用。" },
|
|
476
|
-
{ id: "tip-267", level: "advanced", text_en: "Session resume is backend-owned; AgEnD can preserve identifiers and paths but cannot guarantee semantic continuity.", text_zh: "Session resume 由 backend 掌控;AgEnD 可保留 identifiers 與 paths,但無法保證語意 continuity。" },
|
|
477
|
-
{ id: "tip-268", level: "advanced", text_en: "OpenCode resume uses a recorded session identifier to avoid global `--continue` selecting an unrelated directory's latest session.", text_zh: "OpenCode resume 使用已記錄 session identifier,避免 global `--continue` 選到其他 directory 的最新 session。" },
|
|
478
|
-
{ id: "tip-269", level: "advanced", text_en: "Per-instance Codex homes isolate MCP servers and decisions so one instance cannot inherit another instance's tools or private context.", text_zh: "Per-instance Codex homes 會隔離 MCP servers 與 decisions,避免某 instance 繼承其他 instance 的 tools 或 private context。" },
|
|
479
|
-
{ id: "tip-270", level: "advanced", text_en: "Claude Code project-session lookup depends on its path encoding; changing workspace paths can make an existing session appear absent.", text_zh: "Claude Code project-session lookup 依賴 path encoding;變更 workspace paths 可能讓既有 session 看起來不存在。" },
|
|
480
|
-
{ id: "tip-271", level: "advanced", text_en: "Adjust startup concurrency in Settings' Startup section or fleet.yaml to reflect available memory and CLI startup cost; a higher number is not always faster.", text_zh: "可在 Settings 的 Startup section 或 fleet.yaml 調整 startup concurrency,使其配合可用 memory 與 CLI startup cost;數值更高不一定更快。" },
|
|
481
|
-
{ id: "tip-272", level: "advanced", text_en: "Adjust stagger delay in Settings' Startup section or fleet.yaml to spread process creation and authentication load, reducing simultaneous CPU, memory, and provider spikes.", text_zh: "可在 Settings 的 Startup section 或 fleet.yaml 調整 stagger delay,以分散 process creation 與 authentication load,降低同時發生的 CPU、memory 與 provider spikes。" },
|
|
482
|
-
{ id: "tip-273", level: "advanced", text_en: "Persisted paused instances are excluded before startup staggering, so they do not consume delay slots.", text_zh: "Persisted paused instances 會在 startup staggering 前排除,因此不會占用 delay slots。" },
|
|
483
|
-
{ id: "tip-274", level: "advanced", text_en: "Set warm cap in Settings or fleet.yaml. Its eviction considers idle recency and excludes General; it is a capacity control rather than a fixed timeout.", text_zh: "可在 Settings 或 fleet.yaml 設定 warm cap;其 eviction 會考量 idle recency 並排除 General,是 capacity control 而不是固定 timeout。" },
|
|
484
|
-
{ id: "tip-275", level: "advanced", text_en: "Set auto-pause in Settings or fleet.yaml. It is time-based and disabled at zero; combine it with warm cap only after observing workload patterns.", text_zh: "可在 Settings 或 fleet.yaml 設定 auto-pause;它是 time-based 且設為零時停用,應先觀察 workload patterns 再考慮與 warm cap 搭配。" },
|
|
485
|
-
{ id: "tip-276", level: "advanced", text_en: "Many warm CLIs can consume substantial resident memory even while idle, although idle alone does not spend model tokens.", text_zh: "大量 warm CLIs 即使 idle 也可能占用可觀的 resident memory,但 idle 本身不會消耗 model tokens。" },
|
|
486
|
-
{ id: "tip-277", level: "advanced", text_en: "Every exposed tool schema consumes model context; smaller tool sets can improve prompt efficiency when capabilities are not needed.", text_zh: "每個 exposed tool schema 都會占用 model context;不需要相關能力時,較小 tool set 可提高 prompt efficiency。" },
|
|
487
|
-
{ id: "tip-278", level: "advanced", text_en: "Choose an instance Tool set in Settings: minimal or standard for narrowly scoped workers, and full only when broader fleet operations are justified.", text_zh: "可在 Settings 選擇 instance 的 Tool set:範圍明確的 workers 使用 minimal 或 standard,只有確實需要更廣 fleet operations 時才使用 full。" },
|
|
488
|
-
{ id: "tip-279", level: "advanced", text_en: "General receives its internal coordinator tool profile when `tool_set` is inherited; explicitly selecting full, standard, or minimal in Settings overrides that profile, and standard or minimal omits coordinator tools.", text_zh: "General 在 `tool_set` 繼承時會取得內部 coordinator profile;若在 Settings 明確選擇 full、standard 或 minimal 會覆蓋該 profile,其中 standard 與 minimal 不含協調工具。" },
|
|
489
|
-
{ id: "tip-280", level: "advanced", text_en: "Bundled skills are distributed by role: General receives all eligible skills, workers receive shared skills, and ClassicBot is skipped.", text_zh: "Bundled skills 會依 role 分發:General 取得所有 eligible skills、workers 取得 shared skills,ClassicBot 則跳過。" },
|
|
490
|
-
{ id: "tip-281", level: "advanced", text_en: "The managed-skill manifest distinguishes AgEnD-owned copies from user skills so upgrades do not overwrite unrelated content.", text_zh: "Managed-skill manifest 可區分 AgEnD-owned copies 與 user skills,避免升級覆寫無關內容。" },
|
|
491
|
-
{ id: "tip-282", level: "advanced", text_en: "Use separate git worktrees for parallel write tasks; a detached inspection checkout should remain read-only.", text_zh: "平行 write tasks 應使用不同 git worktrees;detached inspection checkout 應保持 read-only。" },
|
|
492
|
-
{ id: "tip-283", level: "advanced", text_en: "Templates are defined in fleet.yaml for repeatable instance groups. Ask General to coordinate deployment through a full-operations instance after reviewing branch, workspace, and teardown expectations.", text_zh: "Templates 可在 fleet.yaml 定義可重複部署的 instance groups;檢查 branch、workspace 與 teardown expectations 後,應請 General 透過 full-operations instance 協調部署。" },
|
|
493
|
-
{ id: "tip-284", level: "advanced", text_en: "Teams are routing groups, not shared memory; each member still has an independent context and workspace boundary.", text_zh: "Teams 是 routing groups,不是 shared memory;每個 member 仍有獨立 context 與 workspace boundary。" },
|
|
494
|
-
{ id: "tip-285", level: "advanced", text_en: "A silent schedule injects work without requiring a channel reply; use it only when missing user-visible output is intentional.", text_zh: "Silent schedule 會注入工作但不要求 channel reply;只有確定不需 user-visible output 時才使用。" },
|
|
495
|
-
{ id: "tip-286", level: "advanced", text_en: "Schedule timezone is part of execution semantics; verify daylight-saving behavior when the chosen zone observes it.", text_zh: "Schedule timezone 是 execution semantics 的一部分;所選 zone 有 daylight-saving 時應確認其行為。" },
|
|
496
|
-
{ id: "tip-287", level: "advanced", text_en: "Fleet decisions preserve durable architectural context. Ask General to retire or supersede stale decisions so agents do not follow conflicting guidance.", text_zh: "Fleet decisions 可保存持久 architectural context;可請 General retire 或 supersede 過時 decisions,避免 agents 遵循衝突指引。" },
|
|
497
|
-
{ id: "tip-288", level: "advanced", text_en: "Event logs support operational diagnosis but are not a substitute for source-of-truth configuration or provider audit logs.", text_zh: "Event logs 可支援營運診斷,但不能取代 source-of-truth config 或 provider audit logs。" },
|
|
498
|
-
{ id: "tip-289", level: "advanced", text_en: "Chat exports can contain messages, tool summaries, names, and project details; review and redact before external sharing.", text_zh: "Chat exports 可能包含 messages、tool summaries、names 與 project details;對外分享前應 review 並 redact。" },
|
|
499
|
-
{ id: "tip-290", level: "advanced", text_en: "Model failover depends on compatible usage telemetry and applies on a later rotation; it is not an immediate mid-turn switch.", text_zh: "Model failover 依賴 compatible usage telemetry,並在之後 rotation 生效;不是立即 mid-turn switch。" },
|
|
500
|
-
{ id: "tip-291", level: "advanced", text_en: "Cost guards are only as accurate as backend telemetry; missing or delayed cost data limits enforcement precision.", text_zh: "Cost guards 的準確度取決於 backend telemetry;缺失或延遲的 cost data 會限制 enforcement precision。" },
|
|
501
|
-
{ id: "tip-292", level: "advanced", text_en: "Usage caches reduce provider calls. After token renewal, use the View usage panel's Refresh control for an immediate fetch; ordinary `/usage` continues to use the cache.", text_zh: "Usage caches 可減少 provider calls;token renewal 後,可用 View 用量面板的 Refresh 立即重新擷取,普通 `/usage` 仍會使用 cache。" },
|
|
502
|
-
{ id: "tip-293", level: "advanced", text_en: "Custom-provider credentials should be loaded before the fleet service starts because child CLIs inherit the manager environment.", text_zh: "Custom-provider credentials 應在 fleet service 啟動前載入,因為 child CLIs 會繼承 manager environment。" },
|
|
503
|
-
{ id: "tip-294", level: "advanced", text_en: "Installation prompts such as sudo passwords or confirmations require direct human review; AgEnD never enters them automatically.", text_zh: "安裝時的 sudo password 或 confirmation prompts 需要人類直接檢查;AgEnD 不會自動輸入。" },
|
|
504
|
-
{ id: "tip-295", level: "advanced", text_en: "Keep the previous package version and config backup available until update health checks and representative instance canaries pass.", text_zh: "Update health checks 與代表性 instance canaries 通過前,應保留先前 package version 與 config backup。" },
|
|
505
|
-
{ id: "tip-296", level: "advanced", text_en: "`agend doctor` can distinguish a missing service, an inactive service, an unreachable user bus, and an unhealthy fleet.", text_zh: "`agend doctor` 可區分 service 不存在、inactive、user bus 無法連線,以及 fleet unhealthy。" },
|
|
506
|
-
{ id: "tip-297", level: "advanced", text_en: "On Linux over SSH, a missing D-Bus session can make `systemctl --user` unavailable even when the service file exists.", text_zh: "Linux SSH session 缺少 D-Bus 時,即使 service file 存在,`systemctl --user` 仍可能無法使用。" },
|
|
507
|
-
{ id: "tip-298", level: "advanced", text_en: "A health-port conflict can indicate a stale manager or another service; identify the listener before choosing a new port or stopping it.", text_zh: "Health-port conflict 可能代表 stale manager 或其他 service;更換 port 或停止 process 前應先識別 listener。" },
|
|
508
|
-
{ id: "tip-299", level: "advanced", text_en: "A safe rollback restores both code and compatible configuration; reverting only one side can preserve the failure.", text_zh: "安全 rollback 應同時恢復 code 與 compatible config;只 revert 一側可能保留故障。" },
|
|
509
|
-
{ id: "tip-300", level: "advanced", text_en: "For difficult incidents, preserve timestamps, fleet logs, process trees, socket counts, and pane captures before restarting away the evidence.", text_zh: "困難 incident 應在 restart 清除證據前保留 timestamps、fleet logs、process trees、socket counts 與 pane captures。" },
|
|
4
|
+
// ── Beginner: mobile-first onboarding (100) ───────────────────────────
|
|
5
|
+
{ id: "tip-001", level: "beginner", text_en: "Send a message to an AI assistant in Telegram or Discord just as you would in any other chat.", text_zh: "在 Telegram 或 Discord 傳訊息給 AI 助手,操作方式和一般聊天相同。" },
|
|
6
|
+
{ id: "tip-002", level: "beginner", text_en: "Start with the outcome you want, then add the details the assistant needs.", text_zh: "可先說明希望得到的結果,再補上 AI 助手需要的細節。" },
|
|
7
|
+
{ id: "tip-003", level: "beginner", text_en: "A clear request can include the goal, important limits, and the preferred answer format.", text_zh: "清楚的需求可包含目標、重要限制,以及希望的回答格式。" },
|
|
8
|
+
{ id: "tip-004", level: "beginner", text_en: "If wording matters, include a short example of what a good answer should look like.", text_zh: "在意措辭時,可附上一小段理想回答的範例。" },
|
|
9
|
+
{ id: "tip-005", level: "beginner", text_en: "Say which details must not be changed when asking the assistant to revise something.", text_zh: "請 AI 助手修改內容時,可說明哪些細節不能更動。" },
|
|
10
|
+
{ id: "tip-006", level: "beginner", text_en: "For a long request, separate the must-have items from the optional ones.", text_zh: "需求較長時,可把必要項目與可選項目分開列出。" },
|
|
11
|
+
{ id: "tip-007", level: "beginner", text_en: "If a task has a deadline, state the date and time zone clearly.", text_zh: "工作有期限時,請清楚寫出日期與時區。" },
|
|
12
|
+
{ id: "tip-008", level: "beginner", text_en: "A longer task may take time. A delayed reply alone does not mean the message was lost.", text_zh: "較長的工作可能需要一些時間;回覆較慢不代表訊息已遺失。" },
|
|
13
|
+
{ id: "tip-009", level: "beginner", text_en: "When the Cancel button appears, tap it to stop the work currently in progress.", text_zh: "看到取消按鈕時,可按下它停止目前正在進行的工作。" },
|
|
14
|
+
{ id: "tip-010", level: "beginner", text_en: "Use `/cancel` when you prefer typing a command instead of tapping the Cancel button.", text_zh: "不方便按取消按鈕時,可輸入 `/cancel` 停止目前工作。" },
|
|
15
|
+
{ id: "tip-011", level: "beginner", text_en: "Cancel also discards older messages that are still waiting to be delivered to that assistant.", text_zh: "按下取消時,也會丟棄先前仍在等待送出的訊息。" },
|
|
16
|
+
{ id: "tip-012", level: "beginner", text_en: "A message sent after Cancel is treated as a new request and is not discarded with older waiting messages.", text_zh: "取消後才送出的訊息會視為新需求,不會和先前等待中的訊息一起被丟棄。" },
|
|
17
|
+
{ id: "tip-013", level: "beginner", text_en: "If an answer is going in the wrong direction, send a short correction instead of repeating the whole request.", text_zh: "發現回答方向偏離時,可直接補充簡短修正,不必重貼整份需求。" },
|
|
18
|
+
{ id: "tip-014", level: "beginner", text_en: "Where available, `/steer <message>` adjusts work already in progress without starting the request over.", text_zh: "在可使用的聊天室中,`/steer <訊息>` 可調整正在進行的工作,不必從頭重來。" },
|
|
19
|
+
{ id: "tip-015", level: "beginner", text_en: "Use a steering message for a change of direction, not for an unrelated new task.", text_zh: "調整方向的訊息適合修正目前工作,不適合加入無關的新任務。" },
|
|
20
|
+
{ id: "tip-016", level: "beginner", text_en: "Reply to an earlier chat message when the assistant needs to know exactly which message you mean.", text_zh: "需要指出特定內容時,可直接回覆較早的聊天訊息,讓 AI 助手知道所指的是哪一則。" },
|
|
21
|
+
{ id: "tip-017", level: "beginner", text_en: "When you reply to a message, its quoted text is included with the new request.", text_zh: "回覆某則訊息時,被引用的文字會和新需求一起送出。" },
|
|
22
|
+
{ id: "tip-018", level: "beginner", text_en: "Add a short note explaining why the quoted message matters to the new request.", text_zh: "引用舊訊息時,可補一句說明它與新需求的關係。" },
|
|
23
|
+
{ id: "tip-019", level: "beginner", text_en: "If several requests depend on one another, sending them as one clear message can reduce confusion.", text_zh: "多個需求彼此相關時,整理成一則清楚的訊息可減少混淆。" },
|
|
24
|
+
{ id: "tip-020", level: "beginner", text_en: "If requests are unrelated, send them separately so each answer has a clear purpose.", text_zh: "需求彼此無關時,可分開傳送,讓每份回答都有明確目的。" },
|
|
25
|
+
{ id: "tip-021", level: "beginner", text_en: "AgEnD is the system that connects your Telegram or Discord chats to AI assistants.", text_zh: "AgEnD 是把 Telegram 或 Discord 聊天室連接到 AI 助手的系統。" },
|
|
26
|
+
{ id: "tip-022", level: "beginner", text_en: "AgEnD uses ⏳ to show that a message is waiting to be delivered.", text_zh: "AgEnD 會用 ⏳ 表示訊息正在等待送出。" },
|
|
27
|
+
{ id: "tip-023", level: "beginner", text_en: "AgEnD uses 👀 to show that the assistant has received the message.", text_zh: "AgEnD 會用 👀 表示 AI 助手已收到訊息。" },
|
|
28
|
+
{ id: "tip-024", level: "beginner", text_en: "AgEnD uses ✅ to show that this request was accepted.", text_zh: "AgEnD 會用 ✅ 表示這次任務已被接受。" },
|
|
29
|
+
{ id: "tip-025", level: "beginner", text_en: "AgEnD uses ❌ when a message could not be delivered.", text_zh: "AgEnD 會用 ❌ 表示訊息未能送達。" },
|
|
30
|
+
{ id: "tip-026", level: "beginner", text_en: "The delivery symbols belong to AgEnD, so they may appear before the assistant writes a reply.", text_zh: "投遞狀態符號由 AgEnD 顯示,因此可能在 AI 助手回覆前先出現。" },
|
|
31
|
+
{ id: "tip-027", level: "beginner", text_en: "Avoid sending the same request repeatedly while it is marked ⏳; it may simply be waiting its turn.", text_zh: "訊息仍標示 ⏳ 時,先不要連續重送;它可能只是在等待處理。" },
|
|
32
|
+
{ id: "tip-028", level: "beginner", text_en: "If a message shows ❌, check whether the assistant is available before sending it again.", text_zh: "訊息顯示 ❌ 時,建議先確認 AI 助手是否可用,再決定是否重送。" },
|
|
33
|
+
{ id: "tip-029", level: "beginner", text_en: "A busy assistant may hold incoming messages briefly and handle them after the current step.", text_zh: "AI 助手忙碌時,後續訊息可能暫時等待,並在目前步驟後處理。" },
|
|
34
|
+
{ id: "tip-030", level: "beginner", text_en: "Duplicate requests can produce duplicate work, so resend only after checking the delivery symbol.", text_zh: "重複送出可能造成重複工作,因此重送前請先查看投遞狀態符號。" },
|
|
35
|
+
{ id: "tip-031", level: "beginner", text_en: "Attach a photo or file to the same message as your instructions so the assistant receives both together.", text_zh: "可把圖片或檔案和說明放在同一則訊息中,讓 AI 助手一起收到。" },
|
|
36
|
+
{ id: "tip-032", level: "beginner", text_en: "For image questions, say what should be checked instead of sending only the picture.", text_zh: "詢問圖片內容時,建議同時說明要檢查什麼,不要只傳圖片。" },
|
|
37
|
+
{ id: "tip-033", level: "beginner", text_en: "For a document, mention the page, section, or question that deserves attention.", text_zh: "傳送文件時,可指出要留意的頁面、段落或問題。" },
|
|
38
|
+
{ id: "tip-034", level: "beginner", text_en: "If several files are attached, explain what each file is for.", text_zh: "一次附上多個檔案時,可說明每個檔案的用途。" },
|
|
39
|
+
{ id: "tip-035", level: "beginner", text_en: "On supported Discord replies, pictures from the quoted message are included for the assistant to inspect.", text_zh: "在支援的 Discord 回覆中,被引用訊息裡的圖片也會一併交給 AI 助手查看。" },
|
|
40
|
+
{ id: "tip-036", level: "beginner", text_en: "A pasted image link is still a link; include the image as an attachment when the assistant must inspect the file itself.", text_zh: "貼上的圖片網址仍是網址;需要 AI 助手查看圖片檔本身時,請把圖片附加到訊息。" },
|
|
41
|
+
{ id: "tip-037", level: "beginner", text_en: "A Telegram voice message is passed to the assistant as audio.", text_zh: "Telegram 語音訊息會以音訊形式交給 AI 助手。" },
|
|
42
|
+
{ id: "tip-038", level: "beginner", text_en: "If speech-to-text has been enabled, a Telegram voice message also includes a written transcript.", text_zh: "若已啟用語音轉文字,Telegram 語音訊息也會附上文字稿。" },
|
|
43
|
+
{ id: "tip-039", level: "beginner", text_en: "For names or numbers in a voice message, repeat them in text when exact spelling matters.", text_zh: "語音訊息中若有姓名或數字,且拼寫必須精確,建議再用文字補充。" },
|
|
44
|
+
{ id: "tip-040", level: "beginner", text_en: "A Telegram sticker is delivered as its emoji when available.", text_zh: "Telegram 貼圖若有對應表情,會以該表情送給 AI 助手。" },
|
|
45
|
+
{ id: "tip-041", level: "beginner", text_en: "A Telegram sticker without an emoji is shown to the assistant as `[Sticker]`.", text_zh: "Telegram 貼圖沒有對應表情時,會以 `[Sticker]` 顯示給 AI 助手。" },
|
|
46
|
+
{ id: "tip-042", level: "beginner", text_en: "Use words instead of only a reaction when the assistant must act on an important instruction.", text_zh: "需要 AI 助手執行重要指示時,請使用文字,不要只用表情回應。" },
|
|
47
|
+
{ id: "tip-043", level: "beginner", text_en: "In a chat shared by several bots, mention the bot you want so the intended assistant receives the message.", text_zh: "多個 bot 共用同一聊天室時,請標記想使用的 bot,讓正確的 AI 助手收到訊息。" },
|
|
48
|
+
{ id: "tip-044", level: "beginner", text_en: "When asking a follow-up question, say whether the earlier answer should be revised or only explained.", text_zh: "提出後續問題時,可說明要修改先前回答,或只是進一步解釋。" },
|
|
49
|
+
{ id: "tip-045", level: "beginner", text_en: "Ask for a short progress update when you need reassurance during a long task.", text_zh: "長時間工作中需要確認狀況時,可請 AI 助手提供簡短進度。" },
|
|
50
|
+
{ id: "tip-046", level: "beginner", text_en: "If the assistant asks a question, answer the missing point directly before adding a new request.", text_zh: "AI 助手提出問題時,可先直接回答缺少的資訊,再加入新需求。" },
|
|
51
|
+
{ id: "tip-047", level: "beginner", text_en: "If you change your mind, say which earlier instruction should be replaced.", text_zh: "改變決定時,請說明要取代哪一項先前指示。" },
|
|
52
|
+
{ id: "tip-048", level: "beginner", text_en: "For a correction, quote the exact sentence or value that should change.", text_zh: "需要更正時,可引用要修改的句子或數值。" },
|
|
53
|
+
{ id: "tip-049", level: "beginner", text_en: "Before sending a very long message, place the main request in the first few lines.", text_zh: "傳送很長的訊息前,可把主要需求放在最前面幾行。" },
|
|
54
|
+
{ id: "tip-050", level: "beginner", text_en: "At the end of a long discussion, ask for a concise summary of decisions and unfinished items.", text_zh: "長時間討論結束時,可請 AI 助手整理決定事項與尚未完成的項目。" },
|
|
55
|
+
{ id: "tip-051", level: "beginner", text_en: "An AI model is the version of intelligence used to answer; when no choice is made, the account usually uses its usual default.", text_zh: "AI 模型是用來回答的智慧版本;未特別選擇時,帳號通常會使用原本的預設值。" },
|
|
56
|
+
{ id: "tip-052", level: "beginner", text_en: "Different AI models can vary in speed, reasoning style, and available features.", text_zh: "不同 AI 模型在速度、推理方式與可用功能上可能有所差異。" },
|
|
57
|
+
{ id: "tip-053", level: "beginner", text_en: "If a chosen AI model is unavailable, the service may reject it instead of silently choosing another one.", text_zh: "所選 AI 模型無法使用時,服務可能直接拒絕,而不是默默改用另一個模型。" },
|
|
58
|
+
{ id: "tip-054", level: "beginner", text_en: "An AI engine is the service that runs an assistant; an unsupported-model message means that service or account cannot use the selected model.", text_zh: "AI 引擎是執行 AI 助手的服務;模型不支援的訊息表示該服務或帳號無法使用所選模型。" },
|
|
59
|
+
{ id: "tip-055", level: "beginner", text_en: "Different AI engines may offer different commands and models.", text_zh: "不同 AI 引擎可提供不同的指令與模型。" },
|
|
60
|
+
{ id: "tip-056", level: "beginner", text_en: "Some commands are not available with every AI engine; an unsupported message is expected when a feature is absent.", text_zh: "部分指令並非每種 AI 引擎都支援;功能不存在時,收到不支援訊息是正常情況。" },
|
|
61
|
+
{ id: "tip-057", level: "beginner", text_en: "Reasoning strength means how much effort an AI may spend thinking through a request; stronger levels can take longer.", text_zh: "推理強度是 AI 可投入多少心力思考需求;較高強度可能需要更久時間。" },
|
|
62
|
+
{ id: "tip-058", level: "beginner", text_en: "Not every AI model offers the same reasoning-strength choices.", text_zh: "不同 AI 模型不一定提供相同的推理強度選項。" },
|
|
63
|
+
{ id: "tip-059", level: "beginner", text_en: "Quota means the amount of AI service use included with an account or subscription.", text_zh: "額度是帳號或訂閱方案所包含的 AI 服務使用量。" },
|
|
64
|
+
{ id: "tip-060", level: "beginner", text_en: "Use `/usage` to view the quota information that currently used AI services make available.", text_zh: "可用 `/usage` 查看目前使用中的 AI 服務所提供的額度資訊。" },
|
|
65
|
+
{ id: "tip-061", level: "beginner", text_en: "A service may show no quota data when the account is signed out or the service does not provide that information.", text_zh: "帳號未登入或服務未提供相關資訊時,額度可能顯示為無資料。" },
|
|
66
|
+
{ id: "tip-062", level: "beginner", text_en: "Quota information can be delayed briefly while sign-in details are renewed.", text_zh: "登入資料更新期間,額度資訊可能短暫延遲。" },
|
|
67
|
+
{ id: "tip-063", level: "beginner", text_en: "A quota warning does not always stop the current answer, but future requests may need another available model.", text_zh: "額度警告不一定會中止目前回答,但後續需求可能需要改用其他可用模型。" },
|
|
68
|
+
{ id: "tip-064", level: "beginner", text_en: "Conversation space means how much of the current discussion the AI can keep readily available while answering.", text_zh: "對話空間是 AI 回答時能隨時保留多少目前討論內容。" },
|
|
69
|
+
{ id: "tip-065", level: "beginner", text_en: "Use `/ctx` to view available conversation-space information when the selected AI engine can report it.", text_zh: "所選 AI 引擎能提供相關資料時,可用 `/ctx` 查看對話空間資訊。" },
|
|
70
|
+
{ id: "tip-066", level: "beginner", text_en: "A missing conversation-space percentage is not necessarily an error; some AI engines do not report one.", text_zh: "沒有對話空間百分比不一定代表錯誤;部分 AI 引擎不會提供此數值。" },
|
|
71
|
+
{ id: "tip-067", level: "beginner", text_en: "Use `/compact` when a long discussion needs to be shortened while retaining useful information where possible.", text_zh: "對話過長時,可用 `/compact` 嘗試縮短內容並保留有用資訊。" },
|
|
72
|
+
{ id: "tip-068", level: "beginner", text_en: "The effect of `/compact` varies by AI engine; some shorten the discussion while others may clear it.", text_zh: "`/compact` 的效果會依 AI 引擎而異;有些會縮短討論,有些則可能清除內容。" },
|
|
73
|
+
{ id: "tip-069", level: "beginner", text_en: "A saved conversation is a copy kept for later reference; `/save <name>` works only where the selected AI engine supports it.", text_zh: "已儲存對話是留供日後查看的副本;只有所選 AI 引擎支援時,`/save <名稱>` 才能使用。" },
|
|
74
|
+
{ id: "tip-070", level: "beginner", text_en: "If `/save` is unavailable, ask the assistant for a summary that can be copied into personal notes.", text_zh: "無法使用 `/save` 時,可請 AI 助手整理摘要,再複製到自己的筆記。" },
|
|
75
|
+
{ id: "tip-071", level: "beginner", text_en: "General is the coordinating assistant that can help choose another assistant for a request.", text_zh: "General 是負責協調的 AI 助手,可協助為需求選擇另一位助手。" },
|
|
76
|
+
{ id: "tip-072", level: "beginner", text_en: "Ask General to split independent parts of a large request among several assistants.", text_zh: "大型需求有互不相依的部分時,可請 General 分給多位 AI 助手處理。" },
|
|
77
|
+
{ id: "tip-073", level: "beginner", text_en: "Parallel help means several assistants work at the same time and General gathers their results.", text_zh: "平行協助是由多位 AI 助手同時工作,再由 General 彙整結果。" },
|
|
78
|
+
{ id: "tip-074", level: "beginner", text_en: "A separate assistant keeps a separate conversation, which can reduce unrelated information mixing together.", text_zh: "另一位 AI 助手會保有另一份對話,可減少不相關資訊混在一起。" },
|
|
79
|
+
{ id: "tip-075", level: "beginner", text_en: "Separate assistants do not automatically know one another's complete discussion history.", text_zh: "不同 AI 助手不會自動知道彼此的完整討論歷程。" },
|
|
80
|
+
{ id: "tip-076", level: "beginner", text_en: "When work moves to another assistant, include the goal, current result, and important limits.", text_zh: "把工作交給另一位 AI 助手時,應附上目標、目前結果與重要限制。" },
|
|
81
|
+
{ id: "tip-077", level: "beginner", text_en: "Several assistants can work at once, but changes to the same files still need coordination.", text_zh: "多位 AI 助手可以同時工作,但若會修改相同檔案,仍需要協調。" },
|
|
82
|
+
{ id: "tip-078", level: "beginner", text_en: "For an important change, ask one assistant to do the work and another to review the result.", text_zh: "重要變更可請一位 AI 助手處理,再請另一位檢查結果。" },
|
|
83
|
+
{ id: "tip-079", level: "beginner", text_en: "A paused assistant is temporarily asleep but keeps saved information for a later return.", text_zh: "已暫停的 AI 助手是暫時休息,仍會保留之後恢復所需的已存資料。" },
|
|
84
|
+
{ id: "tip-080", level: "beginner", text_en: "Sending a message to a paused assistant begins waking it automatically.", text_zh: "傳訊息給已暫停的 AI 助手時,系統會自動開始喚醒。" },
|
|
85
|
+
{ id: "tip-081", level: "beginner", text_en: "Waking can take a little time while the assistant restores its working state.", text_zh: "喚醒時需要一些時間,讓 AI 助手恢復工作狀態。" },
|
|
86
|
+
{ id: "tip-082", level: "beginner", text_en: "Working means the assistant is handling a request; idle means it appears ready for another one.", text_zh: "工作中表示 AI 助手正在處理需求;閒置表示它看起來已準備好接受下一項需求。" },
|
|
87
|
+
{ id: "tip-083", level: "beginner", text_en: "Stopped means an assistant ended normally; crashed means it ended unexpectedly or could not recover after repeated attempts.", text_zh: "已停止表示 AI 助手正常結束;已故障表示它意外結束,或多次嘗試後仍無法恢復。" },
|
|
88
|
+
{ id: "tip-084", level: "beginner", text_en: "If one assistant appears unhealthy, tell General its name and what you observed.", text_zh: "單一 AI 助手看起來異常時,可把名稱與觀察到的情況告訴 General。" },
|
|
89
|
+
{ id: "tip-085", level: "beginner", text_en: "A progress history is a short list of actions shown while an assistant works.", text_zh: "進度歷程是 AI 助手工作時顯示的簡短動作清單。" },
|
|
90
|
+
{ id: "tip-086", level: "beginner", text_en: "When progress history is available, it may remain after the Cancel button disappears so it can be reviewed later.", text_zh: "有進度歷程時,取消按鈕消失後,歷程可能仍會保留供日後查看。" },
|
|
91
|
+
{ id: "tip-087", level: "beginner", text_en: "Detailed progress may include command previews, so avoid sharing screenshots before checking for private information.", text_zh: "詳細進度可能包含指令預覽,因此分享截圖前應先檢查是否有私密資訊。" },
|
|
92
|
+
{ id: "tip-088", level: "beginner", text_en: "An interactive prompt is a question that waits for a password, permission, or confirmation before work can continue.", text_zh: "互動提示是等待密碼、權限或確認的問題,回答後工作才能繼續。" },
|
|
93
|
+
{ id: "tip-089", level: "beginner", text_en: "AgEnD does not type passwords automatically; a person must decide how to handle an interactive prompt.", text_zh: "AgEnD 不會自動輸入密碼,互動提示必須由人判斷如何處理。" },
|
|
94
|
+
{ id: "tip-090", level: "beginner", text_en: "Review any password, permission, or confirmation request before approving it.", text_zh: "遇到密碼、權限或確認要求時,應先檢查內容再決定是否允許。" },
|
|
95
|
+
{ id: "tip-091", level: "beginner", text_en: "If sign-in expires, complete the requested sign-in again before expecting normal replies.", text_zh: "登入狀態過期時,需先重新完成登入,再等待正常回覆。" },
|
|
96
|
+
{ id: "tip-092", level: "beginner", text_en: "A problem report is easier to investigate when it includes the time, assistant name, request, and unexpected result.", text_zh: "問題回報若包含時間、AI 助手名稱、需求與非預期結果,通常更容易查明原因。" },
|
|
97
|
+
{ id: "tip-093", level: "beginner", text_en: "A screenshot of the live work screen on the View page can help explain a prompt or a message that appears stuck.", text_zh: "遇到提示或訊息卡住時,View 頁面的即時工作畫面截圖有助於說明情況。" },
|
|
98
|
+
{ id: "tip-094", level: "beginner", text_en: "Before sharing a chat export or screenshot, check it for names, project details, passwords, and other private information.", text_zh: "分享聊天匯出檔或截圖前,應先檢查姓名、專案細節、密碼及其他私密資訊。" },
|
|
99
|
+
{ id: "tip-095", level: "beginner", text_en: "Use `/tips` to request another available tip at any time.", text_zh: "可隨時輸入 `/tips` 取得另一則可用提示。" },
|
|
100
|
+
{ id: "tip-096", level: "beginner", text_en: "Choose “I know this” on a tip to prevent that same tip from appearing again.", text_zh: "在提示上選擇「我知道了」,可讓同一則提示不再出現。" },
|
|
101
|
+
{ id: "tip-097", level: "beginner", text_en: "Daily tips present short features and habits gradually rather than all at once.", text_zh: "每日提示會逐步介紹功能與使用習慣,不會一次塞入全部內容。" },
|
|
102
|
+
{ id: "tip-098", level: "beginner", text_en: "After enough intermediate tips are marked as known, an option to unlock advanced tips may appear.", text_zh: "標記足夠的中階提示為已知後,可能會出現解鎖進階提示的選項。" },
|
|
103
|
+
{ id: "tip-099", level: "beginner", text_en: "An AI answer can still be mistaken, so verify important facts before acting on them.", text_zh: "AI 回答仍可能有誤,因此重要事實應先確認再採取行動。" },
|
|
104
|
+
{ id: "tip-100", level: "beginner", text_en: "For sensitive work, share only the information the assistant needs to complete the request.", text_zh: "處理敏感工作時,只提供 AI 助手完成需求所需的資訊。" },
|
|
105
|
+
// ── Intermediate: concepts and guided operation (100) ────────────────
|
|
106
|
+
{ id: "tip-101", level: "intermediate", text_en: "An Instance is one independent AI assistant. Each instance keeps its own conversation and can be assigned a different project.", text_zh: "Instance(獨立的 AI 助手)各自保有自己的對話,也可以分別負責不同專案。" },
|
|
107
|
+
{ id: "tip-102", level: "intermediate", text_en: "A Fleet is the group of instances managed together by AgEnD. Fleet-wide actions can affect every running assistant.", text_zh: "Fleet(由 AgEnD 一起管理的一組 AI 助手)可統一執行管理操作;整體操作可能影響所有運行中的助手。" },
|
|
108
|
+
{ id: "tip-103", level: "intermediate", text_en: "General is the coordinator assistant that manages work. Ask General to choose a suitable instance, divide independent tasks, or manage the fleet.", text_zh: "General(協調工作的總管助手)可協助選擇合適的 Instance、拆分互不相依的任務,或管理整個 Fleet。" },
|
|
109
|
+
{ id: "tip-104", level: "intermediate", text_en: "A Backend is the engine that decides which AI service an instance uses, such as Claude Code, Codex, Kiro CLI, Grok, Antigravity, or OpenCode.", text_zh: "Backend(決定 Instance 使用哪種 AI 服務的引擎)可以是 Claude Code、Codex、Kiro CLI、Grok、Antigravity 或 OpenCode。" },
|
|
110
|
+
{ id: "tip-105", level: "intermediate", text_en: "Context is the amount of information the AI can keep from the current conversation. It is limited and is not permanent project storage.", text_zh: "Context(目前對話可保留的資訊量)有容量限制,也不是永久的專案儲存空間。" },
|
|
111
|
+
{ id: "tip-106", level: "intermediate", text_en: "MCP is the channel that lets an AI use reply, file, and collaboration tools. Users normally ask for an outcome rather than operate MCP directly.", text_zh: "MCP(讓 AI 使用回覆、檔案與協作工具的通道)通常不需由使用者直接操作,只要說明預期結果即可。" },
|
|
112
|
+
{ id: "tip-107", level: "intermediate", text_en: "A Model is the particular AI selected inside a backend. Leaving it unset normally uses the fleet or account default.", text_zh: "Model(Backend 內實際選用的 AI 模型)若未指定,通常會沿用 Fleet 或帳號的預設值。" },
|
|
113
|
+
{ id: "tip-108", level: "intermediate", text_en: "A Session is a backend's saved conversation state. Whether it resumes after a restart depends on that backend's session support.", text_zh: "Session(Backend 保存的對話狀態)能否在重啟後延續,取決於該 Backend 的支援方式。" },
|
|
114
|
+
{ id: "tip-109", level: "intermediate", text_en: "A Working directory is the project folder an instance reads and edits. Separate instances may share one, but simultaneous edits can conflict.", text_zh: "Working directory(Instance 讀取與修改的專案資料夾)可以共用,但多個 Instance 同時修改時可能產生衝突。" },
|
|
115
|
+
{ id: "tip-110", level: "intermediate", text_en: "ClassicBot is the mode that creates an ongoing assistant in an ordinary Telegram or Discord conversation, rather than a preconfigured fleet conversation.", text_zh: "ClassicBot(在一般 Telegram 或 Discord 對話中建立持續助手的模式)不需要預先配置 Fleet 對話。" },
|
|
116
|
+
{ id: "tip-111", level: "intermediate", text_en: "An Adapter is AgEnD's connection to one messaging bot account. In a multi-bot setup, an instance can be bound to a specific bot identity.", text_zh: "Adapter(AgEnD 與某個訊息 Bot 帳號的連線)在多 Bot 環境中可讓 Instance 固定使用指定身分回覆。" },
|
|
117
|
+
{ id: "tip-112", level: "intermediate", text_en: "Telegram separates fleet conversations with topics; Discord may use channels or threads. These spaces serve the same routing purpose in AgEnD.", text_zh: "Telegram 以 Topic 分隔 Fleet 對話,Discord 則可能使用 Channel 或 Thread;這些空間在 AgEnD 中都用來把訊息送到正確的 Instance。" },
|
|
118
|
+
{ id: "tip-113", level: "intermediate", text_en: "A Tool is an action an AI can call, such as reading a file or sending a reply. Tool availability depends on the backend and permissions.", text_zh: "Tool(AI 可呼叫的操作,例如讀取檔案或發送回覆)是否可用,取決於 Backend 與權限設定。" },
|
|
119
|
+
{ id: "tip-114", level: "intermediate", text_en: "A delivery queue holds messages until they can safely enter a busy assistant. A queued message is delayed, not necessarily lost.", text_zh: "Delivery queue(等待安全時機送入忙碌助手的訊息佇列)代表訊息延後處理,不一定是遺失。" },
|
|
120
|
+
{ id: "tip-115", level: "intermediate", text_en: "Idle means an instance appears ready for input; Working means AgEnD sees it processing a turn. These states are observations, not guarantees about answer quality.", text_zh: "Idle(看起來可接收輸入)與 Working(偵測到正在處理工作)是 AgEnD 觀察到的狀態,不代表回答品質。" },
|
|
121
|
+
{ id: "tip-116", level: "intermediate", text_en: "Paused means AgEnD intentionally stopped the AI engine while preserving its configuration for a later wake.", text_zh: "Paused(暫停)表示 AgEnD 刻意停止 AI 引擎,但保留設定,之後仍可喚醒。" },
|
|
122
|
+
{ id: "tip-117", level: "intermediate", text_en: "Stopped is an orderly exit; Crashed indicates an unexpected exit or repeated recovery failure. General can help inspect either state.", text_zh: "Stopped(正常停止)與 Crashed(非預期退出或多次恢復失敗)原因不同,可請 General 協助檢查。" },
|
|
123
|
+
{ id: "tip-118", level: "intermediate", text_en: "Settings is the browser editor for common AgEnD options. Hot settings apply immediately; cold settings change startup behavior and restart the affected instance.", text_zh: "Settings(常用設定的網頁編輯器)會即時套用 Hot 設定;Cold 設定會改變啟動方式,因此會重啟受影響的 Instance。" },
|
|
124
|
+
{ id: "tip-119", level: "intermediate", text_en: "View is the browser page that mirrors an instance's live terminal screen. It is useful when a prompt or progress display needs visual inspection.", text_zh: "View(在瀏覽器顯示 Instance 即時終端畫面的頁面)適合查看互動提示或工作進度。" },
|
|
125
|
+
{ id: "tip-120", level: "intermediate", text_en: "A CLI is an AI program that runs from a computer terminal, and a TUI is the text-based screen it displays there. AgEnD sends messages into that screen, which users can inspect through View or from a computer terminal.", text_zh: "CLI(在電腦終端中運行的 AI 程式)會顯示 TUI(以文字構成的操作畫面);AgEnD 會把訊息送進該畫面,使用者可透過 View 或電腦終端查看。" },
|
|
126
|
+
{ id: "tip-121", level: "intermediate", text_en: "Use `/ctx` to check the current instance, backend, model, and available context estimate. Some backends cannot report a percentage.", text_zh: "使用 `/ctx` 可查看目前的 Instance、Backend、Model 與可取得的 Context 估計值;部分 Backend 無法提供百分比。" },
|
|
127
|
+
{ id: "tip-122", level: "intermediate", text_en: "Use `/model` without an argument to open the model selector. Administrators can use `/model <name>` to request a specific model.", text_zh: "不帶參數的 `/model` 會開啟模型選單;管理員可用 `/model <名稱>` 指定模型。" },
|
|
128
|
+
{ id: "tip-123", level: "intermediate", text_en: "AgEnD passes a safely formed model name to the backend even when its local pattern does not recognize it. The backend remains the authority and may reject it.", text_zh: "即使 AgEnD 的本機規則不認得某個格式安全的模型名稱,仍會交給 Backend 判斷;Backend 可能接受,也可能回報不可用。" },
|
|
129
|
+
{ id: "tip-124", level: "intermediate", text_en: "Use `/effort` without an argument to inspect available reasoning levels. Administrators can use `/effort <level>` when the backend and model support that level.", text_zh: "不帶參數的 `/effort` 可查看推理強度選項;管理員可在 Backend 與 Model 支援時使用 `/effort <等級>`。" },
|
|
130
|
+
{ id: "tip-125", level: "intermediate", text_en: "Reasoning effort changes how much work a supported model spends thinking; it does not change the backend or guarantee a better answer.", text_zh: "Reasoning effort(推理強度)會調整支援模型投入思考的程度,不會切換 Backend,也不保證答案一定更好。" },
|
|
131
|
+
{ id: "tip-126", level: "intermediate", text_en: "Use `/compact` when the context is crowded but the conversation should continue. Backend behavior differs; Antigravity maps this action to a full clear.", text_zh: "Context 擁擠但仍要延續對話時可用 `/compact`;各 Backend 行為不同,Antigravity 會改為完整清除。" },
|
|
132
|
+
{ id: "tip-127", level: "intermediate", text_en: "Use `/clear` to reset the conversation on a supported backend. It is administrator-only and asks for confirmation because prior context is removed.", text_zh: "支援的 Backend 可用 `/clear` 重設對話;此指令限管理員使用,且因先前 Context 會被移除而需要再次確認。" },
|
|
133
|
+
{ id: "tip-128", level: "intermediate", text_en: "Use `/cancel` or the Cancel button to interrupt the current turn. It also discards messages queued before the cancellation, but keeps messages arriving afterward.", text_zh: "使用 `/cancel` 或取消按鈕可中斷目前回合;按下前排隊的訊息會被丟棄,之後到達的新訊息則會保留。" },
|
|
134
|
+
{ id: "tip-129", level: "intermediate", text_en: "Use `/pause` on an idle non-General instance to save resources. General cannot be paused because fleet coordination must remain available.", text_zh: "可對 Idle 且非 General 的 Instance 使用 `/pause` 以節省資源;General 必須維持協調能力,因此不能暫停。" },
|
|
135
|
+
{ id: "tip-130", level: "intermediate", text_en: "Use `/wake` to start a paused instance immediately. Sending a normal message to a paused instance can also begin its wake process.", text_zh: "使用 `/wake` 可立即啟動 Paused Instance;傳送一般訊息也能觸發喚醒流程。" },
|
|
136
|
+
{ id: "tip-131", level: "intermediate", text_en: "Use `/restart` only when the entire fleet should restart. Ask General for an instance-specific restart when one assistant is unhealthy.", text_zh: "只有整個 Fleet 都需要重啟時才使用 `/restart`;若只有一個助手異常,應請 General 單獨重啟該 Instance。" },
|
|
137
|
+
{ id: "tip-132", level: "intermediate", text_en: "Use `/update` after active work reaches a safe point. Updating installs the selected AgEnD release and then restarts the fleet.", text_zh: "應等進行中的工作到達安全點後再用 `/update`;更新會安裝選定的 AgEnD 版本,接著重啟整個 Fleet。" },
|
|
138
|
+
{ id: "tip-133", level: "intermediate", text_en: "Use `/usage` to view available subscription metrics for backends used by running or paused instances. No data can mean unavailable telemetry, not zero usage.", text_zh: "使用 `/usage` 可查看 Running 或 Paused Instance 所用 Backend 的訂閱資料;無資料可能代表無法取得統計,不等於用量為零。" },
|
|
139
|
+
{ id: "tip-134", level: "intermediate", text_en: "Use `/dashboard` to obtain current View and Settings links. Links containing an access token should be treated like a password and not shared publicly.", text_zh: "使用 `/dashboard` 可取得目前的 View 與 Settings 連結;含存取 Token 的連結應視同密碼,不要公開分享。" },
|
|
140
|
+
{ id: "tip-135", level: "intermediate", text_en: "Use `/status` for an administrator-only fleet summary, including running, paused, stopped, and crashed instances.", text_zh: "管理員可用 `/status` 查看 Fleet 摘要,包括 Running、Paused、Stopped 與 Crashed Instance。" },
|
|
141
|
+
{ id: "tip-136", level: "intermediate", text_en: "Use `/sysinfo` to collect host and version details for an environment-specific problem report.", text_zh: "問題可能與執行環境有關時,可用 `/sysinfo` 收集主機與版本資訊。" },
|
|
142
|
+
{ id: "tip-137", level: "intermediate", text_en: "Use `/doctor` in General to check configured AI engines. Run `agend doctor` from a trusted computer terminal for broader service and connection checks.", text_zh: "在 General 使用 `/doctor` 可檢查已設定的 AI 引擎;更完整的服務與連線檢查需從可信任的電腦終端執行 `agend doctor`。" },
|
|
143
|
+
{ id: "tip-138", level: "intermediate", text_en: "Use `/tips` to request another tip, `/tips off` to stop daily delivery, and `/tips on` to enable it again.", text_zh: "使用 `/tips` 可立即查看另一則提示;`/tips off` 可停止每日投遞,`/tips on` 可重新開啟。" },
|
|
144
|
+
{ id: "tip-139", level: "intermediate", text_en: "Use `/steer <message>` to redirect an active turn on Claude Code, Codex, or Grok. Unsupported backends return an explicit message.", text_zh: "使用 `/steer <訊息>` 可在 Claude Code、Codex 或 Grok 工作途中調整方向;不支援的 Backend 會明確回報。" },
|
|
145
|
+
{ id: "tip-140", level: "intermediate", text_en: "Use `/btw <message>` for a side question on Claude Code without asking it to abandon the current task. Other backends report it as unsupported.", text_zh: "使用 `/btw <訊息>` 可向 Claude Code 提出附帶問題,而不要求放棄目前任務;其他 Backend 會回報不支援。" },
|
|
146
|
+
{ id: "tip-141", level: "intermediate", text_en: "From General, administrators can use `/pause <instance>` or `/wake <instance>` to target a named assistant instead of opening its conversation first.", text_zh: "管理員可在 General 使用 `/pause <Instance 名稱>` 或 `/wake <Instance 名稱>`,不必先進入該助手的對話。" },
|
|
147
|
+
{ id: "tip-142", level: "intermediate", text_en: "Use `/save <name>` only with Kiro CLI or Claude Code. Kiro saves a chat and Claude Code exports a Markdown file; other backends report unsupported.", text_zh: "`/save <名稱>` 僅支援 Kiro CLI 與 Claude Code;Kiro 會保存 Chat,Claude Code 會匯出 Markdown,其他 Backend 會回報不支援。" },
|
|
148
|
+
{ id: "tip-143", level: "intermediate", text_en: "In a ClassicBot conversation, `/start` creates or resumes its assistant and `/stop` removes that channel binding. Both are administrator actions.", text_zh: "在 ClassicBot 對話中,管理員可用 `/start` 建立或恢復助手,並用 `/stop` 移除該頻道的綁定。" },
|
|
149
|
+
{ id: "tip-144", level: "intermediate", text_en: "Use `/collab` as an administrator to toggle whether bot messages may participate in a configured fleet conversation. Access rules still apply.", text_zh: "管理員可用 `/collab` 切換 Bot 訊息是否能參與已設定的 Fleet 對話;既有存取規則仍會套用。" },
|
|
150
|
+
{ id: "tip-145", level: "intermediate", text_en: "Settings stages edits until Apply is pressed. Review the pending changes before applying them, especially when a cold field will restart an instance.", text_zh: "Settings 會先暫存修改,按下 Apply 才套用;若 Cold 欄位會重啟 Instance,送出前應先檢查變更內容。" },
|
|
151
|
+
{ id: "tip-146", level: "intermediate", text_en: "Backend is a cold setting. Changing it in Settings selects a different AI engine and restarts the affected instance.", text_zh: "Backend 屬於 Cold 設定;在 Settings 切換 AI 引擎後,受影響的 Instance 會重啟。" },
|
|
152
|
+
{ id: "tip-147", level: "intermediate", text_en: "Working directory is a cold setting. Confirm the destination exists and contains the intended project before applying it in Settings.", text_zh: "Working directory 屬於 Cold 設定;在 Settings 套用前,應確認目標資料夾存在且包含預期專案。" },
|
|
153
|
+
{ id: "tip-148", level: "intermediate", text_en: "Model overrides can be changed with `/model` or Settings. If no override is needed, leave the field unset so normal defaults apply.", text_zh: "Model Override 可透過 `/model` 或 Settings 調整;不需指定時可留空,讓既有預設值生效。" },
|
|
154
|
+
{ id: "tip-149", level: "intermediate", text_en: "Tool progress controls how much live tool history appears under the working message. Choose off, standard, or verbose in Settings; it applies without restarting.", text_zh: "Tool progress(工作訊息下顯示多少工具歷程)可在 Settings 選擇 off、standard 或 verbose,且不需重啟即可生效。" },
|
|
155
|
+
{ id: "tip-150", level: "intermediate", text_en: "Display name changes how an instance is presented without changing its internal name. It is a hot setting in Settings.", text_zh: "Display name(對外顯示名稱)不會改變 Instance 的內部名稱,可在 Settings 即時調整。" },
|
|
156
|
+
{ id: "tip-151", level: "intermediate", text_en: "Description and tags document an instance's responsibility and help General choose it. Both can be edited in Settings without a restart.", text_zh: "Description 與 Tags 可說明 Instance 的責任並協助 General 選擇,兩者都能在 Settings 即時修改。" },
|
|
157
|
+
{ id: "tip-152", level: "intermediate", text_en: "Auto-pause is an optional idle timer. It is disabled when set to zero and can be enabled or adjusted in Settings without restarting the instance.", text_zh: "Auto-pause(閒置後自動暫停的計時)設為 0 時停用,可在 Settings 啟用或調整,且不需重啟 Instance。" },
|
|
158
|
+
{ id: "tip-153", level: "intermediate", text_en: "Warm cap limits how many non-General instances remain active. Ask General to adjust it, or change `defaults.warm_cap` in fleet.yaml under advanced configuration and reload; existing instances do not need to restart.", text_zh: "Warm cap(最多保留多少個非 General Instance 運行)可請 General 協助調整,或在進階設定中修改 fleet.yaml 的 `defaults.warm_cap` 後重新載入;既有 Instance 不需重啟。" },
|
|
159
|
+
{ id: "tip-154", level: "intermediate", text_en: "Log level controls diagnostic detail. It is a hot setting, but more detailed logs may contain project or routing information.", text_zh: "Log level(診斷紀錄的詳細程度)屬於 Hot 設定;較詳細的 Log 也可能包含專案或路由資訊。" },
|
|
160
|
+
{ id: "tip-155", level: "intermediate", text_en: "Channel binding selects which configured bot identity a fleet instance uses. Set it in Settings when several bot accounts share a server or group.", text_zh: "Channel binding(Fleet Instance 固定使用的 Bot 身分)可在 Settings 設定,適合多個 Bot 帳號共用同一伺服器或群組的情況。" },
|
|
161
|
+
{ id: "tip-156", level: "intermediate", text_en: "Kiro UI controls whether Kiro starts with its interactive interface. It is backend-specific and changing it restarts the instance.", text_zh: "Kiro UI(Kiro 是否使用互動畫面)只適用 Kiro;變更後會重啟該 Instance。" },
|
|
162
|
+
{ id: "tip-157", level: "intermediate", text_en: "Terminal columns and rows define the logical screen size seen by the AI engine. Change them cautiously because narrow layouts can hide or wrap permission prompts.", text_zh: "Terminal columns 與 rows(AI 引擎看到的邏輯畫面尺寸)應謹慎調整;過窄的畫面可能讓權限提示換行或漏判。" },
|
|
163
|
+
{ id: "tip-158", level: "intermediate", text_en: "Settings reads effective values after defaults are applied, while saved instance entries can omit repeated defaults. Missing repeated fields are not necessarily lost settings.", text_zh: "Settings 會顯示套用 Defaults 後的有效值;保存時可省略與 Defaults 重複的 Instance 欄位,因此缺少重複欄位不一定代表設定遺失。" },
|
|
164
|
+
{ id: "tip-159", level: "intermediate", text_en: "A Schedule is a message delivered later or repeatedly. Ask General to create it for the instance responsible for the work.", text_zh: "Schedule(稍後或週期性投遞的訊息)可請 General 建立,並指定由負責該工作的 Instance 處理。" },
|
|
165
|
+
{ id: "tip-160", level: "intermediate", text_en: "A recurring schedule uses a cron expression, which describes a pattern such as every day at 09:00. A one-time schedule uses an ISO date and time, such as `2026-08-25T09:00:00+08:00`; use only one form per schedule.", text_zh: "週期排程使用 Cron Expression(描述重複時間的格式),例如每天 09:00;單次排程使用 ISO 日期時間,例如 `2026-08-25T09:00:00+08:00`,每個排程只應選一種。" },
|
|
166
|
+
{ id: "tip-161", level: "intermediate", text_en: "A timezone tells a recurring schedule which local clock to follow. For example, `Asia/Taipei` makes “every day at 09:00” mean 09:00 in Taiwan rather than the server's local time.", text_zh: "Timezone(週期排程依循的當地時鐘)可避免時間誤解;例如 `Asia/Taipei` 會讓「每天 09:00」代表台灣時間 09:00,而不是伺服器所在地時間。" },
|
|
167
|
+
{ id: "tip-162", level: "intermediate", text_en: "A silent schedule hides the trigger message from the conversation, but the assigned assistant may still post a result when the task requires one.", text_zh: "Silent Schedule(不在聊天室顯示觸發文字的排程)仍可能在任務需要時由指定助手回傳結果。" },
|
|
168
|
+
{ id: "tip-163", level: "intermediate", text_en: "A Team is a reusable group of instances for recurring collaboration, such as implementation plus review. Ask General to manage team membership.", text_zh: "Team(可重複使用的 Instance 協作群組)適合固定的實作與審查搭配;成員可請 General 管理。" },
|
|
169
|
+
{ id: "tip-164", level: "intermediate", text_en: "A shared Decision records an agreed fleet-wide choice so assistants can reuse it after restarts. Ask General to record durable architectural decisions.", text_zh: "Shared Decision(讓各助手在重啟後仍可沿用的共同決定)適合記錄長期有效的架構選擇,可請 General 保存。" },
|
|
170
|
+
{ id: "tip-165", level: "intermediate", text_en: "Instances can exchange selected questions and results, but their full conversation histories and project folders are not automatically shared.", text_zh: "Instance 之間可以交換特定問題與結果,但完整對話歷程與專案資料夾不會自動共用。" },
|
|
171
|
+
{ id: "tip-166", level: "intermediate", text_en: "Ask General to parallelize only independent work. Two assistants editing the same files should coordinate ownership or work in separate copies.", text_zh: "只應請 General 平行處理互不相依的工作;若兩個助手會修改相同檔案,應先協調責任或使用不同副本。" },
|
|
172
|
+
{ id: "tip-167", level: "intermediate", text_en: "A sender-side timeout—a notice that waiting for a reply took too long—does not prove a cross-instance message failed. Avoid resending solely because the sender stopped waiting.", text_zh: "發送端 Timeout(等待回覆逾時的提示)不代表跨 Instance 訊息一定失敗;不應只因等待逾時就重複發送。" },
|
|
173
|
+
{ id: "tip-168", level: "intermediate", text_en: "When an assistant waits for a password or confirmation, AgEnD can notify General. Review the visible prompt before authorizing any manual input.", text_zh: "助手等待密碼或確認時,AgEnD 可通知 General;進行任何人工輸入前,都應先檢查畫面上的實際提示。" },
|
|
174
|
+
{ id: "tip-169", level: "intermediate", text_en: "Do not send passwords, access tokens, or private keys through chat. Enter secrets only in a trusted terminal when an authorized prompt requires them.", text_zh: "不要透過聊天室傳送密碼、存取 Token 或私鑰;只有獲准的提示需要時,才在可信任的終端直接輸入。" },
|
|
175
|
+
{ id: "tip-170", level: "intermediate", text_en: "Delivery-status reactions mean ⏳ queued, 👀 delivered, ✅ turn confirmed, and ❌ failed. They describe transport, not whether the answer is correct.", text_zh: "投遞狀態 Reaction 中,⏳ 代表排隊、👀 代表已送達、✅ 代表回合已確認、❌ 代表失敗;它們不評價答案是否正確。" },
|
|
176
|
+
{ id: "tip-171", level: "intermediate", text_en: "Avoid using 👀, ⏳, ✅, or ❌ as ordinary reactions because AgEnD reserves them for delivery status.", text_zh: "一般 Reaction 應避免使用 👀、⏳、✅、❌,因為 AgEnD 會將它們保留給投遞狀態。" },
|
|
177
|
+
{ id: "tip-172", level: "intermediate", text_en: "Replying to an earlier message gives the assistant quoted context. Supported Discord replies can also include images from the referenced message.", text_zh: "回覆較早的訊息時,助手會收到引用內容;支援的 Discord 回覆也能包含被引用訊息中的圖片。" },
|
|
178
|
+
{ id: "tip-173", level: "intermediate", text_en: "Attachments are copied to a local inbox before delivery. The assistant receives a local file path, so sensitive files should be shared only with an appropriate instance.", text_zh: "附件會先複製到本機收件區,再以本機路徑交給助手;敏感檔案只應傳給合適的 Instance。" },
|
|
179
|
+
{ id: "tip-174", level: "intermediate", text_en: "A permission prompt is a safety boundary from the AI engine. Read the requested file or command scope before approving it.", text_zh: "Permission prompt(AI 引擎要求授權的安全關卡)應先確認檔案或指令範圍,再決定是否核准。" },
|
|
180
|
+
{ id: "tip-175", level: "intermediate", text_en: "After thirty intermediate tips are dismissed, AgEnD offers an Advanced Tips unlock button. Advanced tips remain hidden until that button is confirmed.", text_zh: "標記已讀 30 則中階提示後,AgEnD 會提供「開始看進階」按鈕;確認前,進階提示仍保持隱藏。" },
|
|
181
|
+
{ id: "tip-176", level: "intermediate", text_en: "Claude Code supports subagents, which are focused helper AIs inside the same CLI. They can research or review while the main agent coordinates the result.", text_zh: "Claude Code 支援 Subagent(同一個 CLI 內負責特定工作的輔助 AI),可在主助手整合結果時進行研究或審查。" },
|
|
182
|
+
{ id: "tip-177", level: "intermediate", text_en: "Claude Code permission modes decide whether file and command actions are allowed, denied, or require approval. Choose a mode that matches the project's risk.", text_zh: "Claude Code 的 Permission mode(檔案與指令操作的授權方式)可設為允許、拒絕或要求核准,應依專案風險選擇。" },
|
|
183
|
+
{ id: "tip-178", level: "intermediate", text_en: "Claude Code can resume saved sessions, but continuity depends on the same project path and available session data.", text_zh: "Claude Code 可恢復已保存的 Session,但能否延續仍取決於相同的專案路徑與可用 Session 資料。" },
|
|
184
|
+
{ id: "tip-179", level: "intermediate", text_en: "Claude model families usually trade capability, speed, and cost differently. Use the current account selector for exact availability rather than relying on a static list.", text_zh: "Claude 各模型系列通常在能力、速度與成本間有不同取捨;實際可用項目應以目前帳號的選單為準。" },
|
|
185
|
+
{ id: "tip-180", level: "intermediate", text_en: "Opus is generally aimed at demanding work, Sonnet at balanced work, and Haiku at lighter faster work. Current provider documentation remains authoritative.", text_zh: "Opus 通常偏向高難度工作、Sonnet 偏向平衡、Haiku 偏向快速輕量;仍應以供應商最新文件為準。" },
|
|
186
|
+
{ id: "tip-181", level: "intermediate", text_en: "Codex uses a sandbox, which is a boundary around model-generated commands. Sandbox scope and approval policy are separate controls.", text_zh: "Codex 使用 Sandbox(限制模型所產生指令作用範圍的邊界);Sandbox 範圍與核准政策是兩項不同控制。" },
|
|
187
|
+
{ id: "tip-182", level: "intermediate", text_en: "Codex accepts queued input while it is working. Follow-up messages can enter its native queue instead of waiting for an idle gap.", text_zh: "Codex 工作時可接受 Queued input(由 CLI 自己排隊的後續訊息),因此不必等待空閒間隔才送入。" },
|
|
188
|
+
{ id: "tip-183", level: "intermediate", text_en: "Codex Skills are reusable instruction packages discovered when relevant. They keep detailed workflows outside the always-loaded conversation.", text_zh: "Codex Skills(按任務需要載入的可重用指引)可把詳細流程放在平時不必完整載入的位置。" },
|
|
189
|
+
{ id: "tip-184", level: "intermediate", text_en: "A custom provider is an alternate model service configured in Codex. AgEnD can select it, while its URL and credential environment variable remain in Codex configuration.", text_zh: "Custom provider(Codex 中另行設定的模型服務)可由 AgEnD 選用;服務網址與憑證環境變數仍由 Codex 設定管理。" },
|
|
190
|
+
{ id: "tip-185", level: "intermediate", text_en: "Custom Codex models may show a metadata warning because built-in model details are absent. The provider's actual response determines whether the model works.", text_zh: "自訂 Codex Model 可能因缺少內建資料而出現 Metadata Warning;是否可用仍以 Provider 實際回應為準。" },
|
|
191
|
+
{ id: "tip-186", level: "intermediate", text_en: "Kiro Specs are project documents that organize requirements, design, tasks, and execution. They are useful when a feature benefits from an explicit plan.", text_zh: "Kiro Specs(整理需求、設計、任務與執行的專案文件)適合需要明確規劃的功能工作。" },
|
|
192
|
+
{ id: "tip-187", level: "intermediate", text_en: "Kiro Steering files are persistent project guidance. They can keep conventions available without repeating them in every conversation.", text_zh: "Kiro Steering files(持續套用的專案指引)可保存慣例,不必在每次對話重複說明。" },
|
|
193
|
+
{ id: "tip-188", level: "intermediate", text_en: "Kiro Skills use progressive disclosure: the CLI first sees a short description and loads detailed instructions only when relevant.", text_zh: "Kiro Skills 採漸進式載入:CLI 先看到簡短說明,只有任務相關時才讀取詳細指引。" },
|
|
194
|
+
{ id: "tip-189", level: "intermediate", text_en: "Kiro's `auto` model mode lets the CLI choose dynamically. Set `model: auto` explicitly only when it should override a fleet-level model default.", text_zh: "Kiro 的 `auto` 模型模式會讓 CLI 動態選擇;只有要覆寫 Fleet 層級的模型預設時,才需要明確設定 `model: auto`。" },
|
|
195
|
+
{ id: "tip-190", level: "intermediate", text_en: "Grok can provide web search and page retrieval when enabled by the installed CLI, account, and policy. Availability should be checked in the current environment.", text_zh: "Grok 可在已安裝 CLI、帳號與政策允許時提供網頁搜尋與內容擷取;實際可用性應在目前環境確認。" },
|
|
196
|
+
{ id: "tip-191", level: "intermediate", text_en: "Grok supports steering through `/steer`, but its available models and tools can vary by account. Treat the CLI's current list as authoritative.", text_zh: "Grok 支援透過 `/steer` 調整工作方向,但模型與工具可能因帳號而異,應以 CLI 當下顯示的清單為準。" },
|
|
197
|
+
{ id: "tip-192", level: "intermediate", text_en: "OpenCode distinguishes primary agents for main work from subagents for focused tasks. Project configuration can change which agents and permissions are available.", text_zh: "OpenCode 區分處理主要工作的 Primary agent 與專注任務的 Subagent;專案設定可能改變可用 Agent 與權限。" },
|
|
198
|
+
{ id: "tip-193", level: "intermediate", text_en: "OpenCode model names commonly use a provider/model form. Check OpenCode's current model list instead of assuming that a bare model name is accepted.", text_zh: "OpenCode 模型名稱通常採 `provider/model` 格式;應查看目前模型清單,不要假設只填模型名稱就一定可用。" },
|
|
199
|
+
{ id: "tip-194", level: "intermediate", text_en: "OpenCode provider definitions belong in its own configuration. AgEnD selects a model from what OpenCode exposes rather than storing provider credentials.", text_zh: "OpenCode Provider 定義應放在 OpenCode 自己的設定中;AgEnD 只選擇其提供的模型,不保存 Provider 憑證。" },
|
|
200
|
+
{ id: "tip-195", level: "intermediate", text_en: "OpenCode does not currently expose an AgEnD `/effort` mapping. Use model or agent settings supported by OpenCode instead.", text_zh: "OpenCode 目前沒有對應 AgEnD `/effort` 的功能;需要調整時,應使用 OpenCode 支援的模型或 Agent 設定。" },
|
|
201
|
+
{ id: "tip-196", level: "intermediate", text_en: "Antigravity supports multi-step work and tool calls through its terminal interface. Its account and installed version determine available models and integrations.", text_zh: "Antigravity 可透過終端介面執行多步驟工作與工具操作;可用模型與整合項目取決於帳號及已安裝版本。" },
|
|
202
|
+
{ id: "tip-197", level: "intermediate", text_en: "Antigravity has no separate summarizing compact command in AgEnD. Both `/compact` and `/clear` use its full conversation-clear action.", text_zh: "Antigravity 在 AgEnD 中沒有獨立的摘要式 Compact 指令;`/compact` 與 `/clear` 都會使用完整清除對話的操作。" },
|
|
203
|
+
{ id: "tip-198", level: "intermediate", text_en: "Different GPT variants can target different capability, latency, and cost points. The names visible to the current CLI account are the source of truth.", text_zh: "不同 GPT 變體可能著重能力、延遲或成本;目前 CLI 帳號實際顯示的名稱才是判斷依據。" },
|
|
204
|
+
{ id: "tip-199", level: "intermediate", text_en: "Automatic model selection may choose differently between turns. Pin a model only when repeatability matters more than flexibility.", text_zh: "自動模型選擇可能在不同回合使用不同模型;只有可重現性比彈性更重要時,才需要固定 Model。" },
|
|
205
|
+
{ id: "tip-200", level: "intermediate", text_en: "A model available to one account may be unavailable to another. Verify access with the target backend before changing several instances at once.", text_zh: "某個帳號可用的模型在另一個帳號可能不可用;一次調整多個 Instance 前,應先用目標 Backend 確認存取權。" },
|
|
206
|
+
// ── Advanced: tuning and troubleshooting (100) ───────────────────────
|
|
207
|
+
{ id: "tip-201", level: "advanced", text_en: "Before a migration or bulk edit, copy fleet.yaml and classicBot.yaml outside the working path. Keep the backup until a representative restart and message round trip succeed.", text_zh: "進行 migration 或大量修改前,應把 fleet.yaml 與 classicBot.yaml 備份到工作路徑之外;直到代表性 instance 完成重啟與訊息往返測試後再移除備份。" },
|
|
208
|
+
{ id: "tip-202", level: "advanced", text_en: "Instance entries may omit values inherited from defaults. Compare effective configuration, not only raw YAML, when diagnosing what a daemon received.", text_zh: "Instance entry 可以省略從 defaults 繼承的值;診斷 daemon 實際收到的設定時,應比對 effective configuration,而不只查看原始 YAML。" },
|
|
209
|
+
{ id: "tip-203", level: "advanced", text_en: "AgEnD removes redundant default-valued leaves when saving fleet.yaml, while retaining identity fields such as backend, model, working_directory, topic_id, and backend_options.", text_zh: "AgEnD 儲存 fleet.yaml 時會移除與 defaults 重複的 leaf values,但會保留 backend、model、working_directory、topic_id 與 backend_options 等識別欄位。" },
|
|
210
|
+
{ id: "tip-204", level: "advanced", text_en: "Lossless YAML editing preserves unrelated structure and comments where possible, but a comment attached only to a removed node may have no node to remain on.", text_zh: "Lossless YAML 編輯會盡量保留無關結構與註解;若註解只附著在被移除的節點上,該註解可能無法保留。" },
|
|
211
|
+
{ id: "tip-205", level: "advanced", text_en: "Run `agend validate` after manual YAML edits and before reload. Validation catches schema errors without requiring a fleet restart.", text_zh: "手動修改 YAML 後、reload 前應先執行 `agend validate`;它可在不重啟 fleet 的情況下找出 schema 錯誤。" },
|
|
212
|
+
{ id: "tip-206", level: "advanced", text_en: "Hot fields are reconciled in place, while cold fields restart affected instances. Check the Settings change summary before applying a mixed patch.", text_zh: "Hot fields 會原地 reconcile,cold fields 則會重啟受影響的 instance;套用混合變更前,應先查看 Settings 的變更摘要。" },
|
|
213
|
+
{ id: "tip-207", level: "advanced", text_en: "A SIGHUP reload updates the running fleet from validated configuration; it is not equivalent to restarting every CLI process.", text_zh: "SIGHUP reload 會以通過驗證的設定更新執行中 fleet,並不等同於重啟所有 CLI process。" },
|
|
214
|
+
{ id: "tip-208", level: "advanced", text_en: "Backend, working_directory, tool_set, lightweight, and backend_options are cold instance fields. Changing them can recreate the affected CLI process.", text_zh: "Backend、working_directory、tool_set、lightweight 與 backend_options 屬於 cold instance fields;變更後可能重建受影響的 CLI process。" },
|
|
215
|
+
{ id: "tip-209", level: "advanced", text_en: "Tool progress, display name, description, tags, log level, and auto-pause settings are designed for hot reconciliation. Verify the daemon acknowledged the update when diagnosing stale behavior.", text_zh: "Tool progress、display name、description、tags、log level 與 auto-pause 設定可 hot reconcile;若行為未更新,應確認 daemon 是否已接收變更。" },
|
|
216
|
+
{ id: "tip-210", level: "advanced", text_en: "Use per-instance overrides only when behavior must differ from defaults. Fewer duplicated values make later default changes and reviews easier to reason about.", text_zh: "只有在 instance 行為確實需要不同於 defaults 時才設定 override;減少重複值可讓後續 default 變更與 review 更容易判讀。" },
|
|
217
|
+
{ id: "tip-211", level: "advanced", text_en: "A backend option is interpreted only by its matching backend. For example, `backend_options.codex.provider` selects a provider but does not define that provider's endpoint or credentials.", text_zh: "Backend option 只由對應 backend 解讀;例如 `backend_options.codex.provider` 只負責選擇 provider,不會定義 endpoint 或 credentials。" },
|
|
218
|
+
{ id: "tip-212", level: "advanced", text_en: "Codex custom-provider definitions belong in Codex config, and secrets should be referenced through environment variables available before the fleet service starts.", text_zh: "Codex custom provider 應在 Codex config 中定義;密鑰宜透過 fleet service 啟動前已存在的環境變數提供。" },
|
|
219
|
+
{ id: "tip-213", level: "advanced", text_en: "OpenCode provider definitions belong in opencode.json, while AgEnD's model field should use the identifier exposed by OpenCode, commonly `provider/model`.", text_zh: "OpenCode provider 應在 opencode.json 中定義;AgEnD 的 model 欄位應使用 OpenCode 提供的識別字,通常是 `provider/model`。" },
|
|
220
|
+
{ id: "tip-214", level: "advanced", text_en: "Treat model-name compatibility checks as hints. The CLI remains the source of truth, so AgEnD passes configured model names through instead of silently falling back.", text_zh: "Model name compatibility check 只應視為提示;CLI 才是最終依據,因此 AgEnD 會傳遞已設定的 model name,而不會靜默退回預設值。" },
|
|
221
|
+
{ id: "tip-215", level: "advanced", text_en: "An unset instance model first inherits defaults.model. To request a backend's own default while a fleet model default exists, configure the backend-specific default explicitly where supported.", text_zh: "Instance 未設定 model 時會先繼承 defaults.model;若 fleet 已有 model default,而某 instance 要使用 backend 自己的預設,應在支援時明確設定該 backend 的預設值。" },
|
|
222
|
+
{ id: "tip-216", level: "advanced", text_en: "Kiro's `auto` is an explicit model choice. Set it on the instance when it must override a non-auto defaults.model value.", text_zh: "Kiro 的 `auto` 是明確的 model 選擇;若要覆寫非 auto 的 defaults.model,應在該 instance 設定 `model: auto`。" },
|
|
223
|
+
{ id: "tip-217", level: "advanced", text_en: "Model failover reacts to supported usage telemetry and applies on a later rotation. It cannot replace a model safely in the middle of an active turn.", text_zh: "Model failover 依賴支援的 usage telemetry,並在後續 rotation 套用;它不會在進行中的回合中途安全替換 model。" },
|
|
224
|
+
{ id: "tip-218", level: "advanced", text_en: "Cost guards are limited by provider telemetry. Missing, cached, or delayed usage data reduces enforcement precision and should be visible in operational expectations.", text_zh: "Cost guard 受 provider telemetry 限制;usage data 缺失、快取或延遲時,執行精度會下降,營運預期應納入這項限制。" },
|
|
225
|
+
{ id: "tip-219", level: "advanced", text_en: "Usage results are cached to reduce provider calls. Use the View panel's Refresh control when an immediate post-login or post-renewal fetch is required.", text_zh: "Usage 結果會快取以減少 provider calls;登入或更新 token 後需要立即重取時,可使用 View 面板的 Refresh。" },
|
|
226
|
+
{ id: "tip-220", level: "advanced", text_en: "A provider absent from `/usage` may simply have no running or paused instance. Usage visibility follows effective backends, not every installed CLI.", text_zh: "Provider 未出現在 `/usage` 時,可能只是目前沒有 running 或 paused instance 使用它;用量顯示依 effective backend,而不是所有已安裝 CLI。" },
|
|
227
|
+
{ id: "tip-221", level: "advanced", text_en: "Keep bot tokens, dashboard tokens, provider keys, and exported sessions out of repositories and shared workspaces; each requires its own rotation procedure.", text_zh: "Bot token、dashboard token、provider key 與匯出的 session 都不應放入 repository 或共用 workspace,且各自需要不同的 rotation 程序。" },
|
|
228
|
+
{ id: "tip-222", level: "advanced", text_en: "When a CLI supports an environment-key reference, store the secret in the service environment rather than fleet.yaml or a provider config committed to source control.", text_zh: "CLI 支援 environment-key reference 時,應把 secret 放在 service environment,而不是 fleet.yaml 或會提交到版控的 provider config。" },
|
|
229
|
+
{ id: "tip-223", level: "advanced", text_en: "Files such as web.token and per-instance state should remain readable only by their owner. Copying them into a project can expose them through backups, diffs, or agents.", text_zh: "web.token 與 per-instance state 等檔案應只允許 owner 讀取;複製到 project 後,可能經由備份、diff 或 agent 暴露。" },
|
|
230
|
+
{ id: "tip-224", level: "advanced", text_en: "The persistent web token keeps dashboard URLs valid across restarts. To invalidate existing links, remove the token file, restart the fleet, and request a new dashboard URL.", text_zh: "Persistent web token 會讓 dashboard URL 在重啟後仍有效;若要使既有連結失效,應移除 token file、重啟 fleet,再取得新的 dashboard URL。" },
|
|
231
|
+
{ id: "tip-225", level: "advanced", text_en: "A dashboard URL is usable only after the health server is listening. A port conflict should fail closed instead of publishing a URL backed by the wrong process.", text_zh: "Dashboard URL 只有在 health server 開始 listening 後才可使用;遇到 port conflict 時應 fail closed,避免發布指向錯誤 process 的 URL。" },
|
|
232
|
+
{ id: "tip-226", level: "advanced", text_en: "Channel allowlists are authorization boundaries, not display filters. After changing access rules, test both an allowed identity and a rejected identity.", text_zh: "Channel allowlist 是 authorization boundary,不是顯示篩選器;變更 access rules 後,應同時測試允許與拒絕的 identity。" },
|
|
233
|
+
{ id: "tip-227", level: "advanced", text_en: "Before changing a locked channel's allowed_users, ensure at least one administrator remains. An empty locked allowlist can remove every administrative path.", text_zh: "修改 locked channel 的 allowed_users 前,應確認至少保留一位管理員;空的 locked allowlist 可能移除所有管理操作路徑。" },
|
|
234
|
+
{ id: "tip-228", level: "advanced", text_en: "Nonce-bound confirmation buttons are tied to their adapter, chat, thread, message, and administrator identity. A copied callback should not authorize another context.", text_zh: "使用 nonce 的確認按鈕會綁定 adapter、chat、thread、message 與管理員 identity;複製 callback 不應能授權另一個 context。" },
|
|
235
|
+
{ id: "tip-229", level: "advanced", text_en: "In a multi-world fleet, assign channel_id explicitly to General and fleet-topic instances when the first configured adapter is not the intended persona.", text_zh: "Multi-world fleet 中,若第一個 adapter 不是預期 persona,應為 General 與 fleet-topic instance 明確設定 channel_id。" },
|
|
236
|
+
{ id: "tip-230", level: "advanced", text_en: "ClassicBot routing is keyed by its own channel records. Do not apply fleet-topic adapter canonicalization to ClassicBot replies in multi-bot collaboration channels.", text_zh: "ClassicBot routing 依自身 channel records 決定;在多 bot 協作頻道中,不應把 fleet-topic 的 adapter canonicalization 套用到 ClassicBot reply。" },
|
|
237
|
+
{ id: "tip-231", level: "advanced", text_en: "Terminal columns and rows affect both TUI layout and captured wrapping. After changing geometry, verify ready, permission, and error detection against real pane samples.", text_zh: "Terminal columns 與 rows 同時影響 TUI layout 和 capture wrapping;修改 geometry 後,應用真實 pane sample 驗證 ready、permission 與 error detection。" },
|
|
238
|
+
{ id: "tip-232", level: "advanced", text_en: "The terminal validator enforces conservative geometry bounds because very narrow panes can wrap permission prompts beyond recognition.", text_zh: "Terminal validator 會限制保守的 geometry 範圍,因為過窄 pane 可能使 permission prompt 換行到無法辨識。" },
|
|
239
|
+
{ id: "tip-233", level: "advanced", text_en: "AgEnD pins tmux window size and attaches control clients with size ignored; both protections are needed to keep logical geometry stable across reconnects.", text_zh: "AgEnD 會固定 tmux window size,並讓 control client 忽略尺寸;兩層保護都需要,才能讓 logical geometry 在 reconnect 後保持穩定。" },
|
|
240
|
+
{ id: "tip-234", level: "advanced", text_en: "Mouse mode is enabled only in AgEnD's tmux session. It allows scrollback after attach without changing unrelated user sessions.", text_zh: "Mouse mode 只在 AgEnD 的 tmux session 啟用;attach 後可捲動 scrollback,且不影響使用者其他 session。" },
|
|
241
|
+
{ id: "tip-235", level: "advanced", text_en: "`capture-pane` observes physical screen lines unless wrapping is joined. Width changes can therefore change parser input even when the logical text is identical.", text_zh: "`capture-pane` 未合併 wrapping 時會讀取畫面實際行;因此即使邏輯文字相同,width 變更仍可能改變 parser input。" },
|
|
242
|
+
{ id: "tip-236", level: "advanced", text_en: "Ready, busy, and error patterns are heuristics over terminal text. Preserve anonymized real samples and add production-path tests before changing a pattern.", text_zh: "Ready、busy 與 error pattern 都是針對 terminal text 的 heuristic;修改前應保留去識別化的真實 sample,並加入 production-path test。" },
|
|
243
|
+
{ id: "tip-237", level: "advanced", text_en: "A false idle can retire controls or deliver input too early. A false working can delay messages and trigger hang notifications.", text_zh: "False idle 可能提早收回控制項或過早投遞 input;false working 則可能延遲訊息並觸發 hang notification。" },
|
|
244
|
+
{ id: "tip-238", level: "advanced", text_en: "Periodic statusline redraws are not necessarily work. Backend-specific pane handling should distinguish cosmetic redraws from changed task content.", text_zh: "週期性 statusline redraw 不一定代表工作;backend-specific pane handling 應區分純顯示重繪與任務內容變化。" },
|
|
245
|
+
{ id: "tip-239", level: "advanced", text_en: "Tune hang_detector from observed silent-work intervals, not from an arbitrary short timeout. Inspect pane and process evidence before restarting.", text_zh: "hang_detector 應依實際 silent-work interval 調整,而不是任意設定很短的 timeout;重啟前先檢查 pane 與 process evidence。" },
|
|
246
|
+
{ id: "tip-240", level: "advanced", text_en: "Interactive-prompt alerts require both a prompt-like pattern and stable output time, reducing false alerts when an agent merely discusses passwords or confirmations.", text_zh: "Interactive-prompt alert 會同時要求 prompt-like pattern 與穩定 output 時間,以降低 agent 只是討論密碼或確認操作時的誤報。" },
|
|
247
|
+
{ id: "tip-241", level: "advanced", text_en: "Administrator-only `/raw <text>` sends text directly to the backend without AgEnD's normal inbound wrapper. Use it only when that wrapper would change an intentional CLI command.", text_zh: "限管理員使用的 `/raw <文字>` 會略過 AgEnD 的一般訊息包裝,直接送給 backend;只有包裝會改變刻意輸入的 CLI 指令時才應使用。" },
|
|
248
|
+
{ id: "tip-242", level: "advanced", text_en: "A writable tmux control client is required for special-key delivery. Treat a failed Enter or interrupt command as a command failure rather than waiting for a later timeout.", text_zh: "Special-key delivery 需要可寫入的 tmux control client;Enter 或 interrupt command 失敗時,應直接視為 command failure,而不是等後續 timeout。" },
|
|
249
|
+
{ id: "tip-243", level: "advanced", text_en: "pasteLock serializes terminal writes even for backends with native input queues; native queuing does not make overlapping PTY pastes safe.", text_zh: "即使 backend 有 native input queue,pasteLock 仍需序列化 terminal writes;native queue 不代表重疊 PTY paste 是安全的。" },
|
|
250
|
+
{ id: "tip-244", level: "advanced", text_en: "Codex accepts busy-time input into its own queue, so AgEnD bypasses the idle gate for Codex while retaining first-delivery startup settling.", text_zh: "Codex 可把 busy-time input 放入自身 queue,因此 AgEnD 對 Codex 略過 idle gate,但仍保留首次投遞的 startup settle。" },
|
|
251
|
+
{ id: "tip-245", level: "advanced", text_en: "Cancel uses a delivery epoch to invalidate messages already queued before the cancellation. Messages arriving afterward carry the new epoch and remain deliverable.", text_zh: "Cancel 會透過 delivery epoch 使取消前已排隊的訊息失效;取消後抵達的新訊息使用新的 epoch,仍可正常投遞。" },
|
|
252
|
+
{ id: "tip-246", level: "advanced", text_en: "A message transport timeout does not prove non-delivery. Check delivery logs or idempotency evidence before retrying an external or cross-instance send.", text_zh: "Message transport timeout 不代表一定未投遞;重試外部或 cross-instance send 前,應先檢查 delivery log 或 idempotency evidence。" },
|
|
253
|
+
{ id: "tip-247", level: "advanced", text_en: "A replaced IPC client must lose listeners and have its socket destroyed. Removing only the map entry can leave an orphan processing outbound messages.", text_zh: "被替換的 IPC client 必須移除 listeners 並 destroy socket;只刪除 map entry 可能留下仍在處理 outbound message 的 orphan。" },
|
|
254
|
+
{ id: "tip-248", level: "advanced", text_en: "Disconnect, overflow, and close events should converge to one disconnect per client lifecycle, with reconnect serialized per instance.", text_zh: "Disconnect、overflow 與 close event 應在每個 client lifecycle 收斂成一次 disconnect,且 reconnect 應依 instance 序列化。" },
|
|
255
|
+
{ id: "tip-249", level: "advanced", text_en: "If duplicate replies persist across simple messages, inspect client and socket counts before blaming rich-message rendering or the model.", text_zh: "若簡單訊息也持續出現重複回覆,應先檢查 client 與 socket 數量,再判斷是否與 rich-message rendering 或 model 有關。" },
|
|
256
|
+
{ id: "tip-250", level: "advanced", text_en: "Schedule-trigger metadata must include the instance's configured adapter identity; otherwise a reply after restart can fall back to the wrong bot persona.", text_zh: "Schedule trigger metadata 必須包含 instance 設定的 adapter identity;否則重啟後的 reply 可能 fallback 到錯誤的 bot persona。" },
|
|
257
|
+
{ id: "tip-251", level: "advanced", text_en: "The fleet singleton lock protects manager startup, not individual instance restarts. Per-instance restart serialization remains a separate requirement.", text_zh: "Fleet singleton lock 保護的是 manager startup,不是單一 instance restart;per-instance restart serialization 仍是另一項必要保護。" },
|
|
258
|
+
{ id: "tip-252", level: "advanced", text_en: "When two fleet processes appear, collect PID, parent PID, command line, lock owner, service state, and listening ports before terminating either process.", text_zh: "出現兩個 fleet process 時,終止前應先收集 PID、parent PID、command line、lock owner、service state 與 listening ports。" },
|
|
259
|
+
{ id: "tip-253", level: "advanced", text_en: "A service-managed fleet should fail closed when the user service manager is unreachable, rather than starting an untracked detached duplicate.", text_zh: "Service-managed fleet 在 user service manager 無法連線時應 fail closed,而不是啟動未追蹤的 detached duplicate。" },
|
|
260
|
+
{ id: "tip-254", level: "advanced", text_en: "On Linux over SSH, a missing D-Bus session can make `systemctl --user` unavailable even when the unit file exists.", text_zh: "透過 SSH 使用 Linux 時,缺少 D-Bus session 可能使 `systemctl --user` 無法使用,即使 unit file 已存在。" },
|
|
261
|
+
{ id: "tip-255", level: "advanced", text_en: "Treat `active` and `activating` as occupied service states. An uncertain service query should not authorize a second startup.", text_zh: "`active` 與 `activating` 都應視為 service 已被占用;service query 結果不確定時,不應允許第二次 startup。" },
|
|
262
|
+
{ id: "tip-256", level: "advanced", text_en: "A health-port conflict may indicate a stale manager or another service. Identify the listener before changing the port or stopping a process.", text_zh: "Health-port conflict 可能代表 stale manager 或其他 service;更換 port 或停止 process 前,應先識別 listener。" },
|
|
263
|
+
{ id: "tip-257", level: "advanced", text_en: "Recovery paths should serialize per instance so health checks, MCP recovery, manual restart, and config reconciliation cannot create competing replacements.", text_zh: "Recovery path 應依 instance 序列化,避免 health check、MCP recovery、manual restart 與 config reconcile 建立互相競爭的 replacement。" },
|
|
264
|
+
{ id: "tip-258", level: "advanced", text_en: "Crash-loop protection stops automatic recovery after bounded repeated failures and reports crashed rather than idle; successful recovery must clear stale crash markers.", text_zh: "Crash-loop protection 會在有限次重複失敗後停止自動恢復,並顯示 crashed 而非 idle;成功恢復後則必須清除 stale crash marker。" },
|
|
265
|
+
{ id: "tip-259", level: "advanced", text_en: "Restart backoff limits resource use when a CLI repeatedly fails during startup. Disabling retries can be appropriate while diagnosing a deterministic configuration error.", text_zh: "Restart backoff 可限制 CLI 反覆 startup failure 時的資源消耗;診斷確定性的設定錯誤時,暫時停用 retries 可能較合適。" },
|
|
266
|
+
{ id: "tip-260", level: "advanced", text_en: "MCP auto-restart waits for an eligible idle state and deduplicates restart requests. It restarts the instance because the CLI owns the MCP child connection.", text_zh: "MCP auto-restart 會等待符合條件的 idle state,並去除重複 restart request;由於 MCP child connection 由 CLI 掌握,因此需要重啟 instance。" },
|
|
267
|
+
{ id: "tip-261", level: "advanced", text_en: "Configure mcp_proxy_reply only for panes whose visible text is safe to relay. Regex redaction cannot guarantee removal of every project-specific secret.", text_zh: "只有在 pane 可見文字適合轉送時才啟用 mcp_proxy_reply;regex redaction 無法保證移除所有專案特有 secret。" },
|
|
268
|
+
{ id: "tip-262", level: "advanced", text_en: "Proxy replies are a last-resort channel path after MCP loss, not a source-of-truth transcript. Inspect them for terminal chrome or incomplete output.", text_zh: "Proxy reply 是 MCP 中斷後的最後備援 channel path,不是 source-of-truth transcript;應留意 terminal chrome 或不完整輸出。" },
|
|
269
|
+
{ id: "tip-263", level: "advanced", text_en: "Session resume is backend-owned. AgEnD can preserve identifiers, workspace paths, and markers, but it cannot guarantee semantic continuity after a CLI upgrade.", text_zh: "Session resume 由 backend 掌控;AgEnD 可保留 identifier、workspace path 與 marker,但無法保證 CLI 升級後仍維持語意 continuity。" },
|
|
270
|
+
{ id: "tip-264", level: "advanced", text_en: "OpenCode resume should use a recorded session identifier. Global `--continue` can select the latest session from an unrelated directory.", text_zh: "OpenCode resume 應使用已記錄的 session identifier;global `--continue` 可能選到其他 directory 的最新 session。" },
|
|
271
|
+
{ id: "tip-265", level: "advanced", text_en: "Claude Code project-session lookup depends on encoded workspace paths. Renaming or moving a workspace can make an existing session appear absent.", text_zh: "Claude Code project-session lookup 依賴編碼後的 workspace path;重新命名或移動 workspace 可能使既有 session 看起來不存在。" },
|
|
272
|
+
{ id: "tip-266", level: "advanced", text_en: "Per-instance Codex homes isolate MCP configuration and instance decisions. Writing those entries to a shared Codex config creates a cross-instance authorization risk.", text_zh: "Per-instance Codex home 會隔離 MCP configuration 與 instance decisions;把這些項目寫入共用 Codex config 會造成 cross-instance authorization risk。" },
|
|
273
|
+
{ id: "tip-267", level: "advanced", text_en: "SQLite database files must not be separated from active WAL, SHM, or rollback-journal sidecars. A sidecar linked from another home can make the private database unusable.", text_zh: "SQLite database file 不應與 active WAL、SHM 或 rollback-journal sidecar 分離;從其他 home 連入 sidecar 可能使 private database 無法使用。" },
|
|
274
|
+
{ id: "tip-268", level: "advanced", text_en: "When a database base file is intentionally symlinked, verify where SQLite creates sidecars with the library version in production rather than assuming path behavior.", text_zh: "Database base file 有意使用 symlink 時,應以 production 使用的 library version 驗證 SQLite 建立 sidecar 的位置,不宜只憑路徑假設。" },
|
|
275
|
+
{ id: "tip-269", level: "advanced", text_en: "scheduler.db contains schedules, decisions, task state, and tip state. Take a consistent backup before direct maintenance and avoid writes while the fleet is active.", text_zh: "scheduler.db 包含 schedules、decisions、task state 與 tip state;直接維護前應做一致性備份,並避免在 fleet 執行中寫入。" },
|
|
276
|
+
{ id: "tip-270", level: "advanced", text_en: "A runtime schema audit should compare CREATE statements, every referenced column in queries, and the actual schema from the deployed SQLite files.", text_zh: "Runtime schema audit 應同時比對 CREATE statements、query 引用的每個欄位,以及部署中 SQLite file 的實際 schema。" },
|
|
277
|
+
{ id: "tip-271", level: "advanced", text_en: "Adjust startup concurrency according to available memory and measured CLI startup cost. Raising concurrency can increase contention and make total startup slower.", text_zh: "Startup concurrency 應依可用 memory 與實測 CLI startup cost 調整;提高 concurrency 可能增加競爭,反而延長總啟動時間。" },
|
|
278
|
+
{ id: "tip-272", level: "advanced", text_en: "Use startup stagger delay to spread process creation and authentication load. Persisted paused instances are excluded before stagger slots are assigned.", text_zh: "Startup stagger delay 可分散 process creation 與 authentication load;persisted paused instance 會在分配 stagger slot 前排除。" },
|
|
279
|
+
{ id: "tip-273", level: "advanced", text_en: "warm_cap is a fleet-wide capacity limit, while auto_pause_after is a per-instance idle-time policy. Observe workload patterns before combining them.", text_zh: "warm_cap 是 fleet-wide capacity limit,auto_pause_after 則是 per-instance idle-time policy;搭配使用前應先觀察 workload pattern。" },
|
|
280
|
+
{ id: "tip-274", level: "advanced", text_en: "A zero warm_cap means unlimited, and a zero auto_pause_after disables time-based pausing. General is excluded from automatic pause and warm-cap eviction.", text_zh: "warm_cap 為 0 表示不設上限,auto_pause_after 為 0 則停用依時間暫停;General 不會被 auto-pause 或 warm-cap eviction。" },
|
|
281
|
+
{ id: "tip-275", level: "advanced", text_en: "Many resident CLIs consume substantial memory while idle, although idle state alone does not spend model tokens. Measure RSS before setting a warm cap.", text_zh: "許多常駐 CLI 即使 idle 仍會占用可觀 memory,但 idle 本身不會消耗 model token;設定 warm cap 前可先量測 RSS。" },
|
|
282
|
+
{ id: "tip-276", level: "advanced", text_en: "Lightweight mode omits backend-dependent transcript, context-guardian, and error monitors to reduce overhead. Enable it only when those missing observations are acceptable.", text_zh: "Lightweight mode 會省略依賴 backend 的 transcript、context guardian 與 error monitors 以降低 overhead;只有在可接受缺少這些觀測能力時才應啟用。" },
|
|
283
|
+
{ id: "tip-277", level: "advanced", text_en: "Every exposed MCP tool schema consumes model context. Use minimal or standard tool sets for narrowly scoped workers and broader profiles only when required.", text_zh: "每個 exposed MCP tool schema 都會占用 model context;範圍明確的 worker 宜使用 minimal 或 standard,只有確實需要時才使用較廣 profile。" },
|
|
284
|
+
{ id: "tip-278", level: "advanced", text_en: "General receives the coordinator tool profile when tool_set is inherited. Explicitly setting standard or minimal can remove tools required for coordination.", text_zh: "General 在 tool_set 繼承時會取得 coordinator tool profile;明確設定 standard 或 minimal 可能移除協調所需工具。" },
|
|
285
|
+
{ id: "tip-279", level: "advanced", text_en: "Verbose tool progress may retain command previews in channel history. Use standard or off when operational details should not be exposed to channel readers.", text_zh: "Verbose tool progress 可能在 channel history 保留 command preview;若營運細節不應讓頻道讀者看到,宜使用 standard 或 off。" },
|
|
286
|
+
{ id: "tip-280", level: "advanced", text_en: "Raise log verbosity only for a bounded diagnostic window. Restore the normal level afterward and review logs before external sharing.", text_zh: "只有在有界的診斷期間才提高 log verbosity;完成後應恢復正常 level,且對外分享前先檢查 log 內容。" },
|
|
287
|
+
{ id: "tip-281", level: "advanced", text_en: "Bundled skills are role-filtered before CLI startup: General receives all eligible skills, workers receive shared or worker skills, and ClassicBot is skipped.", text_zh: "Bundled skills 會在 CLI startup 前依 role 篩選:General 取得所有 eligible skills,worker 取得 shared 或 worker skills,ClassicBot 則跳過。" },
|
|
288
|
+
{ id: "tip-282", level: "advanced", text_en: "The managed-skill manifest distinguishes AgEnD-owned copies from user content. A missing legacy manifest requires conservative adoption to avoid freezing old managed skills.", text_zh: "Managed-skill manifest 用來區分 AgEnD-owned copy 與 user content;舊版 manifest 缺失時,需要保守的 adoption 流程,避免 managed skill 永久停在舊內容。" },
|
|
289
|
+
{ id: "tip-283", level: "advanced", text_en: "Instances sharing one workspace also share backend-native skill directories. Mixed roles or backend families can contend over managed files, so separate workspaces are safer.", text_zh: "共用同一 workspace 的 instance 也會共用 backend-native skill directory;混合 role 或 backend family 可能競爭 managed files,因此分開 workspace 較安全。" },
|
|
290
|
+
{ id: "tip-284", level: "advanced", text_en: "Use separate git worktrees for parallel write tasks. A detached checkout used for inspection should remain read-only.", text_zh: "平行 write task 應使用不同 git worktree;用於檢查的 detached checkout 應保持 read-only。" },
|
|
291
|
+
{ id: "tip-285", level: "advanced", text_en: "Templates define repeatable groups of instances, but deployment still needs explicit branch, workspace, ownership, and teardown expectations.", text_zh: "Template 可定義可重複建立的 instance group,但部署前仍需明確約定 branch、workspace、ownership 與 teardown。" },
|
|
292
|
+
{ id: "tip-286", level: "advanced", text_en: "Teams are routing groups, not shared memory. Each member retains its own context, session, and workspace boundary.", text_zh: "Team 是 routing group,不是 shared memory;每個 member 仍保有自己的 context、session 與 workspace boundary。" },
|
|
293
|
+
{ id: "tip-287", level: "advanced", text_en: "A silent schedule injects work without requiring a channel reply. Use it only when the absence of user-visible output is intentional.", text_zh: "Silent schedule 會注入工作但不要求 channel reply;只有在刻意不需要 user-visible output 時才應使用。" },
|
|
294
|
+
{ id: "tip-288", level: "advanced", text_en: "Schedule timezone is part of execution semantics. Verify daylight-saving transitions when the selected IANA zone observes them.", text_zh: "Schedule timezone 是 execution semantics 的一部分;所選 IANA zone 有 daylight-saving transition 時,應驗證執行時間。" },
|
|
295
|
+
{ id: "tip-289", level: "advanced", text_en: "Schedules that trigger after a restart still need the target instance's effective adapter and delivery epoch so routing and cancellation remain correct.", text_zh: "Restart 後觸發的 schedule 仍需帶入 target instance 的 effective adapter 與 delivery epoch,才能維持 routing 與 cancellation 正確。" },
|
|
296
|
+
{ id: "tip-290", level: "advanced", text_en: "Fleet decisions preserve durable architectural context. Supersede or retire stale decisions so later agents do not receive conflicting instructions.", text_zh: "Fleet decision 可保存持久的架構脈絡;過時 decision 應 supersede 或 retire,避免後續 agent 收到衝突指示。" },
|
|
297
|
+
{ id: "tip-291", level: "advanced", text_en: "Event logs support diagnosis but are not substitutes for source configuration, provider audit records, or raw process evidence.", text_zh: "Event log 可支援診斷,但不能取代 source configuration、provider audit record 或原始 process evidence。" },
|
|
298
|
+
{ id: "tip-292", level: "advanced", text_en: "Chat exports can include names, project details, tool summaries, and quoted messages. Review and redact them before external sharing.", text_zh: "Chat export 可能包含姓名、專案細節、tool summary 與引用訊息;對外分享前應先 review 並 redact。" },
|
|
299
|
+
{ id: "tip-293", level: "advanced", text_en: "Installation prompts for sudo passwords or confirmations require human review. Non-interactive automation should fail clearly rather than guessing an answer.", text_zh: "安裝時的 sudo password 或 confirmation prompt 需要人工判斷;non-interactive automation 應明確失敗,而不是猜測答案。" },
|
|
300
|
+
{ id: "tip-294", level: "advanced", text_en: "`agend doctor` distinguishes backend availability from service, D-Bus, fleet, tmux, and IPC health; read each section rather than treating one green check as fleet health.", text_zh: "`agend doctor` 會分別檢查 backend availability、service、D-Bus、fleet、tmux 與 IPC health;不應以單一綠色項目代表整體健康。" },
|
|
301
|
+
{ id: "tip-295", level: "advanced", text_en: "After an update, canary one representative instance per backend before resuming the full workload. Include ready, permission, error, reply, and context checks.", text_zh: "Update 後應先為每個 backend canary 一個代表性 instance,再恢復完整 workload;檢查項目應包含 ready、permission、error、reply 與 context。" },
|
|
302
|
+
{ id: "tip-296", level: "advanced", text_en: "Keep the previous package version and compatible configuration backup until update health checks and representative canaries pass.", text_zh: "Update health check 與代表性 canary 通過前,應保留前一個 package version 與相容的 configuration backup。" },
|
|
303
|
+
{ id: "tip-297", level: "advanced", text_en: "When rewriting Git history to remove secrets, preserve a mirror backup, verify all refs and tags, and rotate exposed credentials even after blobs are removed.", text_zh: "為移除 secret 而改寫 Git history 時,應保留 mirror backup、驗證所有 refs 與 tags;即使 blob 已移除,也仍需 rotation 已暴露的 credential。" },
|
|
304
|
+
{ id: "tip-298", level: "advanced", text_en: "A safe rollback restores compatible code and configuration together. Reverting only one side can leave a schema or behavior mismatch.", text_zh: "安全 rollback 應同時恢復相容的 code 與 configuration;只 revert 一側可能留下 schema 或 behavior mismatch。" },
|
|
305
|
+
{ id: "tip-299", level: "advanced", text_en: "Before destructive cleanup, resolve exact paths and owners with read-only checks. Prefer recoverable moves or backups when practical.", text_zh: "進行 destructive cleanup 前,應先用 read-only check 確認精確 path 與 owner;可行時優先採用可復原的移動或備份。" },
|
|
306
|
+
{ id: "tip-300", level: "advanced", text_en: "For difficult incidents, preserve synchronized timestamps, fleet logs, process trees, socket counts, service state, and pane captures before restarting away the evidence.", text_zh: "處理困難 incident 時,應在 restart 清除證據前保留同步 timestamps、fleet logs、process trees、socket counts、service state 與 pane captures。" },
|
|
510
307
|
];
|
|
511
308
|
export function canUnlockAdvancedTips(dismissedIds) {
|
|
512
309
|
let dismissedIntermediate = 0;
|