kiki-agent-lite 0.3.1 → 0.3.2

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.
Files changed (228) hide show
  1. package/README.md +13 -10
  2. package/dist/docs/en/configuration/config-files.md +63 -20
  3. package/dist/docs/en/configuration/data-locations.md +12 -4
  4. package/dist/docs/en/configuration/env-vars.md +4 -6
  5. package/dist/docs/en/configuration/overrides.md +13 -14
  6. package/dist/docs/en/configuration/providers.md +8 -6
  7. package/dist/docs/en/customization/agent-profiles.md +33 -38
  8. package/dist/docs/en/customization/agents.md +129 -107
  9. package/dist/docs/en/customization/hooks.md +41 -48
  10. package/dist/docs/en/customization/personas.md +19 -21
  11. package/dist/docs/en/customization/plugins.md +180 -156
  12. package/dist/docs/en/customization/prompt-fields.md +10 -6
  13. package/dist/docs/en/customization/skills.md +11 -13
  14. package/dist/docs/en/customization/skins.md +23 -27
  15. package/dist/docs/en/customization/themes.md +15 -15
  16. package/dist/docs/en/features/agents.md +85 -0
  17. package/dist/docs/en/features/daily.md +37 -7
  18. package/dist/docs/en/features/ecosystem.md +3 -1
  19. package/dist/docs/en/features/extend.md +7 -1
  20. package/dist/docs/en/features/freedom.md +4 -0
  21. package/dist/docs/en/features/index.md +6 -5
  22. package/dist/docs/en/features/long-work.md +23 -5
  23. package/dist/docs/en/features/look.md +1 -1
  24. package/dist/docs/en/features/people.md +10 -2
  25. package/dist/docs/en/features/spaces.md +16 -4
  26. package/dist/docs/en/features/workbench.md +11 -3
  27. package/dist/docs/en/getting-started/desktop-app.md +44 -29
  28. package/dist/docs/en/getting-started/first-launch.md +32 -21
  29. package/dist/docs/en/getting-started/installation.md +27 -12
  30. package/dist/docs/en/getting-started/use-cases.md +35 -35
  31. package/dist/docs/en/guides/goals.md +9 -7
  32. package/dist/docs/en/guides/interaction.md +26 -26
  33. package/dist/docs/en/guides/interface.md +18 -14
  34. package/dist/docs/en/guides/memory.md +43 -14
  35. package/dist/docs/en/guides/sessions.md +32 -26
  36. package/dist/docs/en/guides/settings.md +60 -29
  37. package/dist/docs/en/index.md +8 -2
  38. package/dist/docs/en/reference/command.md +8 -4
  39. package/dist/docs/en/reference/keyboard.md +18 -4
  40. package/dist/docs/en/reference/model-vocabulary.md +6 -8
  41. package/dist/docs/en/reference/slash-commands.md +4 -4
  42. package/dist/docs/en/reference/tools.md +92 -15
  43. package/dist/docs/en/release-notes/changelog.md +1 -9
  44. package/dist/docs/en/server/acp.md +1 -1
  45. package/dist/docs/en/server/ide.md +1 -1
  46. package/dist/docs/en/server/local-server.md +5 -5
  47. package/dist/docs/en/server/mcp.md +2 -2
  48. package/dist/docs/en/server/rest-api.md +79 -5
  49. package/dist/docs/en/server/sdk.md +2 -2
  50. package/dist/docs/zh/configuration/config-files.md +56 -15
  51. package/dist/docs/zh/configuration/data-locations.md +12 -4
  52. package/dist/docs/zh/configuration/env-vars.md +4 -6
  53. package/dist/docs/zh/configuration/overrides.md +13 -14
  54. package/dist/docs/zh/configuration/providers.md +7 -5
  55. package/dist/docs/zh/customization/agent-profiles.md +31 -36
  56. package/dist/docs/zh/customization/agents.md +120 -98
  57. package/dist/docs/zh/customization/hooks.md +35 -42
  58. package/dist/docs/zh/customization/personas.md +16 -18
  59. package/dist/docs/zh/customization/plugins.md +167 -142
  60. package/dist/docs/zh/customization/prompt-fields.md +9 -5
  61. package/dist/docs/zh/customization/skills.md +10 -12
  62. package/dist/docs/zh/customization/skins.md +19 -23
  63. package/dist/docs/zh/customization/themes.md +12 -12
  64. package/dist/docs/zh/features/agents.md +85 -0
  65. package/dist/docs/zh/features/daily.md +37 -7
  66. package/dist/docs/zh/features/ecosystem.md +3 -1
  67. package/dist/docs/zh/features/extend.md +7 -1
  68. package/dist/docs/zh/features/freedom.md +4 -0
  69. package/dist/docs/zh/features/index.md +6 -5
  70. package/dist/docs/zh/features/long-work.md +22 -4
  71. package/dist/docs/zh/features/look.md +1 -1
  72. package/dist/docs/zh/features/people.md +10 -2
  73. package/dist/docs/zh/features/spaces.md +15 -3
  74. package/dist/docs/zh/features/workbench.md +11 -3
  75. package/dist/docs/zh/getting-started/desktop-app.md +43 -28
  76. package/dist/docs/zh/getting-started/first-launch.md +32 -21
  77. package/dist/docs/zh/getting-started/installation.md +26 -11
  78. package/dist/docs/zh/getting-started/use-cases.md +35 -37
  79. package/dist/docs/zh/guides/goals.md +8 -8
  80. package/dist/docs/zh/guides/interaction.md +25 -25
  81. package/dist/docs/zh/guides/interface.md +18 -14
  82. package/dist/docs/zh/guides/memory.md +43 -14
  83. package/dist/docs/zh/guides/sessions.md +30 -24
  84. package/dist/docs/zh/guides/settings.md +54 -23
  85. package/dist/docs/zh/index.md +7 -1
  86. package/dist/docs/zh/reference/command.md +7 -3
  87. package/dist/docs/zh/reference/keyboard.md +18 -4
  88. package/dist/docs/zh/reference/model-vocabulary.md +6 -8
  89. package/dist/docs/zh/reference/slash-commands.md +3 -3
  90. package/dist/docs/zh/reference/tools.md +74 -9
  91. package/dist/docs/zh/release-notes/changelog.md +1 -9
  92. package/dist/docs/zh/server/acp.md +1 -1
  93. package/dist/docs/zh/server/ide.md +1 -1
  94. package/dist/docs/zh/server/local-server.md +5 -5
  95. package/dist/docs/zh/server/mcp.md +2 -2
  96. package/dist/docs/zh/server/rest-api.md +69 -1
  97. package/dist/docs/zh/server/sdk.md +2 -2
  98. package/dist/main.mjs +12545 -3456
  99. package/dist/web/assets/AppErrorBoundary-RFIAb-Uf.js +1 -0
  100. package/dist/web/assets/NavScopeBoundary-DY_ET7A-.js +1 -0
  101. package/dist/web/assets/{arc-y2SkSoyr.js → arc-CMgTB1m7.js} +1 -1
  102. package/dist/web/assets/{architectureDiagram-3BPJPVTR-uCwLz53m.js → architectureDiagram-3BPJPVTR-BU79ou2C.js} +1 -1
  103. package/dist/web/assets/{blockDiagram-GPEHLZMM-BZyWv36G.js → blockDiagram-GPEHLZMM-Bkuldod2.js} +1 -1
  104. package/dist/web/assets/{c4Diagram-AAUBKEIU-DKGx9i50.js → c4Diagram-AAUBKEIU-C3WMeqyu.js} +1 -1
  105. package/dist/web/assets/channel-DpDZUJRn.js +1 -0
  106. package/dist/web/assets/{chunk-2J33WTMH-CSkrhrsp.js → chunk-2J33WTMH-CesyWmwo.js} +1 -1
  107. package/dist/web/assets/{chunk-4BX2VUAB-CtxMoJ68.js → chunk-4BX2VUAB-C7rghYTf.js} +1 -1
  108. package/dist/web/assets/{chunk-55IACEB6-Dos3ftEy.js → chunk-55IACEB6-BqRHhwtz.js} +1 -1
  109. package/dist/web/assets/{chunk-727SXJPM-wbzEYK9z.js → chunk-727SXJPM-BhSqCRBc.js} +1 -1
  110. package/dist/web/assets/{chunk-AQP2D5EJ-B9GKvCD6.js → chunk-AQP2D5EJ-DdYE2ZVZ.js} +1 -1
  111. package/dist/web/assets/{chunk-FMBD7UC4-u5Y2P6IX.js → chunk-FMBD7UC4-BCRPUxDF.js} +1 -1
  112. package/dist/web/assets/{chunk-ND2GUHAM-B8rFKkTV.js → chunk-ND2GUHAM-CuvyDjTR.js} +1 -1
  113. package/dist/web/assets/{chunk-QZHKN3VN-EQsKtuD-.js → chunk-QZHKN3VN-BU5vAS78.js} +1 -1
  114. package/dist/web/assets/classDiagram-4FO5ZUOK-Bju1GfNu.js +1 -0
  115. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Bju1GfNu.js +1 -0
  116. package/dist/web/assets/client-C0oH7-8r.js +2 -0
  117. package/dist/web/assets/connection-BhO2nh7P.js +1 -0
  118. package/dist/web/assets/{cose-bilkent-S5V4N54A-D6dr5mIW.js → cose-bilkent-S5V4N54A-CXrvsA1a.js} +1 -1
  119. package/dist/web/assets/{dagre-BM42HDAG-Dnyhc4Hn.js → dagre-BM42HDAG-TaAea3Rt.js} +1 -1
  120. package/dist/web/assets/{diagram-2AECGRRQ-CYXkWdne.js → diagram-2AECGRRQ-CdEH4jGt.js} +1 -1
  121. package/dist/web/assets/{diagram-5GNKFQAL-DPwBf5Ag.js → diagram-5GNKFQAL-A0jZ_p-T.js} +1 -1
  122. package/dist/web/assets/{diagram-KO2AKTUF-DNeLYZ8X.js → diagram-KO2AKTUF-miHWORz3.js} +1 -1
  123. package/dist/web/assets/{diagram-LMA3HP47-zU8RsQTX.js → diagram-LMA3HP47-BlUIwEIg.js} +1 -1
  124. package/dist/web/assets/{diagram-OG6HWLK6-Cf9Mm94H.js → diagram-OG6HWLK6-DwDzMhEg.js} +1 -1
  125. package/dist/web/assets/{erDiagram-TEJ5UH35-Ch4CeiUI.js → erDiagram-TEJ5UH35-BJr5w62i.js} +1 -1
  126. package/dist/web/assets/export-BlxaZKEe.js +2 -0
  127. package/dist/web/assets/{flowDiagram-I6XJVG4X-Csn6WqEH.js → flowDiagram-I6XJVG4X-BP7KSFjx.js} +1 -1
  128. package/dist/web/assets/{ganttDiagram-6RSMTGT7-DsuBgEyu.js → ganttDiagram-6RSMTGT7-BstLBBof.js} +1 -1
  129. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-CPA7jCxU.js → gitGraphDiagram-PVQCEYII-C57s7nZ-.js} +1 -1
  130. package/dist/web/assets/highlighted-body-OFNGDK62-BVb-7KsA.js +1 -0
  131. package/dist/web/assets/index-69qhvTvD.js +1 -0
  132. package/dist/web/assets/{index-BYUHmd8w.js → index-BDNM6yJI.js} +2 -2
  133. package/dist/web/assets/{index-BGgZxlEQ.js → index-BJF_gEDs.js} +2 -2
  134. package/dist/web/assets/index-BOwMP6BP.js +1 -0
  135. package/dist/web/assets/{index-C69a5Mcz.js → index-BZsyXCqm.js} +1 -1
  136. package/dist/web/assets/{index-C7EA7a_g.js → index-Bfl4JiNq.js} +2 -2
  137. package/dist/web/assets/index-BlD3AKX-.js +1 -0
  138. package/dist/web/assets/{index-CIymCfcP.js → index-BnvW0EvQ.js} +1 -1
  139. package/dist/web/assets/index-C4rmWyOm.js +1 -0
  140. package/dist/web/assets/index-CGLcb3HY.js +1 -0
  141. package/dist/web/assets/{index-kWBxPqIX.js → index-CPvOeQPX.js} +1 -1
  142. package/dist/web/assets/index-Cjbe0JKM.js +1 -0
  143. package/dist/web/assets/index-CmYoJWUm.js +1 -0
  144. package/dist/web/assets/index-CtUFrjKe.js +1 -0
  145. package/dist/web/assets/index-DDvDRMTK.js +1 -0
  146. package/dist/web/assets/index-DSpndwAR.css +1 -0
  147. package/dist/web/assets/index-D_JjTHxi.js +1 -0
  148. package/dist/web/assets/index-DbuwcnbT.js +1 -0
  149. package/dist/web/assets/index-DcXyS0nN.js +1 -0
  150. package/dist/web/assets/index-Dcl9ruKA.js +1 -0
  151. package/dist/web/assets/index-DgwALPNA.js +121 -0
  152. package/dist/web/assets/{index-DoN1FTEe.js → index-DkE8hRT1.js} +2 -2
  153. package/dist/web/assets/index-DsyRBZ4h.js +1 -0
  154. package/dist/web/assets/{index-29zav3JI.js → index-DuudNhLL.js} +4 -4
  155. package/dist/web/assets/index-Gc4F0b2f.js +1 -0
  156. package/dist/web/assets/index-HGqqwKoV.js +13 -0
  157. package/dist/web/assets/index-KchrJnno.js +3 -0
  158. package/dist/web/assets/{index-B0KNSyji.js → index-Tmi2BPYU.js} +1 -1
  159. package/dist/web/assets/index-Ya4GuDs0.js +1 -0
  160. package/dist/web/assets/index-_aDaKqLB.js +1 -0
  161. package/dist/web/assets/index-_qwOAotB.js +1 -0
  162. package/dist/web/assets/index-hnIkczza.js +7 -0
  163. package/dist/web/assets/{infoDiagram-5YYISTIA-D3Q__m62.js → infoDiagram-5YYISTIA-CifuVY6C.js} +1 -1
  164. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CcvCBuZ5.js → ishikawaDiagram-YF4QCWOH-Cd60vQUi.js} +1 -1
  165. package/dist/web/assets/{journeyDiagram-JHISSGLW-COZU4LNt.js → journeyDiagram-JHISSGLW-Cb3Xl_wl.js} +1 -1
  166. package/dist/web/assets/{kanban-definition-UN3LZRKU-BrXjBoAU.js → kanban-definition-UN3LZRKU-Ei6ThuZt.js} +1 -1
  167. package/dist/web/assets/{linear-BgP1STFi.js → linear-CDZJx-o2.js} +1 -1
  168. package/dist/web/assets/mermaid-GHXKKRXX-DFxyxD7G.js +331 -0
  169. package/dist/web/assets/{mindmap-definition-RKZ34NQL-CgjSrE5r.js → mindmap-definition-RKZ34NQL-B0ygxzkx.js} +1 -1
  170. package/dist/web/assets/navViewState-Ck_HK-TK.js +1 -0
  171. package/dist/web/assets/{pieDiagram-4H26LBE5-DTfe1sKA.js → pieDiagram-4H26LBE5-B2FdrvDv.js} +1 -1
  172. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D95hfh0q.js → quadrantDiagram-W4KKPZXB-CwpOTy3d.js} +1 -1
  173. package/dist/web/assets/{requirementDiagram-4Y6WPE33-DtSLi7Mh.js → requirementDiagram-4Y6WPE33-ExdZNzLQ.js} +1 -1
  174. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-gi_dJpcU.js → sankeyDiagram-5OEKKPKP-u0EZKD7D.js} +1 -1
  175. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DKQ9a72t.js → sequenceDiagram-3UESZ5HK-BXHMy5DY.js} +1 -1
  176. package/dist/web/assets/{spaces-B2Ccyh_T.js → spaces-C8n7xQPx.js} +1 -1
  177. package/dist/web/assets/{stateDiagram-AJRCARHV-Bz7tmSqa.js → stateDiagram-AJRCARHV-DMXx7ell.js} +1 -1
  178. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Bydq1_By.js +1 -0
  179. package/dist/web/assets/theme-BBnHttAf.js +1 -0
  180. package/dist/web/assets/{timeline-definition-PNZ67QCA-BfMXPwhV.js → timeline-definition-PNZ67QCA-DtqVG_4u.js} +1 -1
  181. package/dist/web/assets/{vennDiagram-CIIHVFJN-WLxW2KT5.js → vennDiagram-CIIHVFJN-Dom0ex8r.js} +1 -1
  182. package/dist/web/assets/{wardley-L42UT6IY-DiiqwIdq.js → wardley-L42UT6IY-C-RstmuQ.js} +1 -1
  183. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-DmCukWuw.js → wardleyDiagram-YWT4CUSO-C8CzNfdf.js} +1 -1
  184. package/dist/web/assets/{xychartDiagram-2RQKCTM6-Cfq1W2tT.js → xychartDiagram-2RQKCTM6-1AxVTyB6.js} +1 -1
  185. package/dist/web/index.html +2 -2
  186. package/native/auth-native/prebuilds/linux-arm64/auth-native.node +0 -0
  187. package/native/auth-native/prebuilds/linux-x64/auth-native.node +0 -0
  188. package/native/auth-native/prebuilds/win32-arm64/auth-native.node +0 -0
  189. package/native/auth-native/prebuilds/win32-x64/auth-native.node +0 -0
  190. package/package.json +1 -1
  191. package/dist/web/assets/AppErrorBoundary-DWpgwxFV.js +0 -1
  192. package/dist/web/assets/NavScopeBoundary-D8Lf1G0U.js +0 -1
  193. package/dist/web/assets/channel-BGdXootG.js +0 -1
  194. package/dist/web/assets/classDiagram-4FO5ZUOK-CPcnLy_H.js +0 -1
  195. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CPcnLy_H.js +0 -1
  196. package/dist/web/assets/client-DSIbyfoz.js +0 -2
  197. package/dist/web/assets/connection-DYZn9oPZ.js +0 -1
  198. package/dist/web/assets/export-Bq8ZECqX.js +0 -2
  199. package/dist/web/assets/highlighted-body-OFNGDK62-CDPBxM_E.js +0 -1
  200. package/dist/web/assets/index-AksnytJj.js +0 -1
  201. package/dist/web/assets/index-B8xhhYDh.css +0 -1
  202. package/dist/web/assets/index-BUrlrKap.js +0 -1
  203. package/dist/web/assets/index-B_5-HLed.js +0 -62
  204. package/dist/web/assets/index-BfmoxdpP.js +0 -1
  205. package/dist/web/assets/index-Bo3e-ohM.js +0 -3
  206. package/dist/web/assets/index-BrYV9gV_.js +0 -1
  207. package/dist/web/assets/index-C8XUtAvK.js +0 -1
  208. package/dist/web/assets/index-C9uil5my.js +0 -13
  209. package/dist/web/assets/index-CKpWHSp9.js +0 -1
  210. package/dist/web/assets/index-CLKBgQxV.js +0 -1
  211. package/dist/web/assets/index-CTyyUNWj.js +0 -7
  212. package/dist/web/assets/index-D7cg9qYZ.js +0 -1
  213. package/dist/web/assets/index-D7dg8R_q.js +0 -1
  214. package/dist/web/assets/index-DCSpedV_.js +0 -1
  215. package/dist/web/assets/index-DLbD0Nx5.js +0 -1
  216. package/dist/web/assets/index-DaEzbvvu.js +0 -1
  217. package/dist/web/assets/index-DhbcjMZF.js +0 -1
  218. package/dist/web/assets/index-Dw2h88mF.js +0 -1
  219. package/dist/web/assets/index-FcMtfmKv.js +0 -1
  220. package/dist/web/assets/index-XFq9Kgg0.js +0 -1
  221. package/dist/web/assets/index-iI2mM43w.js +0 -1
  222. package/dist/web/assets/index-oXOF7lko.js +0 -1
  223. package/dist/web/assets/locale-CANfezJ4.js +0 -17
  224. package/dist/web/assets/mermaid-GHXKKRXX-_JLagMll.js +0 -321
  225. package/dist/web/assets/navViewState-DS5LnMYc.js +0 -1
  226. package/dist/web/assets/settings-CcwMWXbp.js +0 -42
  227. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-D6-wdUbw.js +0 -1
  228. package/dist/web/assets/theme-DlDhDxeD.js +0 -1
@@ -1,12 +1,12 @@
1
1
  # 常见使用案例
2
2
 
3
- 本页收录 Kiki 的典型使用场景和配套的 prompt 示例,可以直接复制使用或按需修改。
3
+ 下面每一节都是你实际会遇到的场景,附带的 prompt 可以直接发送,也可以按你的项目改写。
4
4
 
5
5
  ## 理解陌生项目
6
6
 
7
- 接手陌生仓库时,建议先进入 Plan 模式(Agent 先输出行动计划、经你确认后才动手修改的模式),让 Agent 先输出调研计划再动手,避免读到一半就开始改文件。启动 CLI 时加 `--plan` 参数、在会话中按 `Shift-Tab` 或输入 `/plan`,效果相同:
7
+ 接手没读过的代码前,先开 Plan 模式(Agent 先写出打算怎么做、得到你同意后才动文件)比较稳妥。启动 CLI 时加 `--plan`,或在会话中按 `Shift-Tab`、输入 `/plan`:
8
8
 
9
- ```
9
+ ```text
10
10
  帮我梳理这个仓库的整体架构。重点说清楚:
11
11
  1. 入口在哪里,启动后做了什么
12
12
  2. 主要模块之间的依赖关系
@@ -16,21 +16,21 @@
16
16
 
17
17
  也可以聚焦到具体问题:
18
18
 
19
- ```
19
+ ```text
20
20
  src/runtime 下的 event loop 是怎么工作的?事件从哪里产生、又被谁消费?
21
21
  ```
22
22
 
23
- ```
23
+ ```text
24
24
  这个项目里「权限审批」是怎么实现的?涉及哪些文件,关键类型是什么?
25
25
  ```
26
26
 
27
- 大型调研可以让 main agent(直接与你对话的主 Agent)派发 **subagent**(由主 Agent 派生、并行处理子任务的下级 Agent)并行处理子任务,详见 [Agent 与 subagent](../customization/agents.md)。
27
+ 调研规模较大时,可以让 main agent(直接与你对话的那个)把任务拆给多个 subagent 并行处理。写法见 [Agent 与 subagent](../customization/agents.md)。
28
28
 
29
29
  ## 实现新功能
30
30
 
31
- 描述清楚需求和验收标准,复杂需求建议先用 Plan 模式确认方案再执行:
31
+ 说清需求和验收标准。涉及多个文件的改动,先用 Plan 模式确认方案再执行:
32
32
 
33
- ```
33
+ ```text
34
34
  在 src/utils 下新增一个 retry 工具:
35
35
  - 函数签名 retry<T>(fn: () => Promise<T>, options): Promise<T>
36
36
  - 支持 maxAttempts、initialDelayMs、backoffFactor 三个选项
@@ -38,17 +38,17 @@ src/runtime 下的 event loop 是怎么工作的?事件从哪里产生、又
38
38
  - 补一组单元测试覆盖成功、重试后成功、全部失败三种情况
39
39
  ```
40
40
 
41
- 如果结果不满意,直接描述改动即可,无需手动编辑:
41
+ 结果不对就描述你想要什么,不用自己动手改:
42
42
 
43
- ```
43
+ ```text
44
44
  backoff 算了一个固定值,我希望加一点抖动,避免雷击效应。改一下并更新测试。
45
45
  ```
46
46
 
47
47
  ## 修复 bug
48
48
 
49
- 把现象、复现条件和期望行为一次性说清楚,可以省去来回澄清的时间:
49
+ 把现象、复现步骤和期望行为一次性说清楚,Agent 就不用反过来问你:
50
50
 
51
- ```
51
+ ```text
52
52
  跑 npm test 时偶发地报这个错:
53
53
 
54
54
  TypeError: Cannot read properties of undefined (reading 'id')
@@ -57,89 +57,87 @@ backoff 算了一个固定值,我希望加一点抖动,避免雷击效应。
57
57
  只在并发触发多个 update 的用例里出现。帮我定位原因并修复,最后跑一次完整测试确认。
58
58
  ```
59
59
 
60
- 不确定原因时,先让 Agent 调查再动手:
60
+ 还不知道原因时,先让 Agent 调查,不要直接改:
61
61
 
62
- ```
62
+ ```text
63
63
  用户反馈:登录成功后第一次刷新页面会回到登录页,再刷一次就正常了。先帮我排查可能的原因,列出几个最可疑的位置,等我确认方向后再动手改。
64
64
  ```
65
65
 
66
- 纯机械任务可以直接放手:
66
+ 纯机械的任务可以直接交给它:
67
67
 
68
- ```
68
+ ```text
69
69
  跑一遍测试,失败的用例都修掉,跑完再跑一次确认全绿。
70
70
  ```
71
71
 
72
72
  ## 写测试与重构
73
73
 
74
- 边界清晰、验收标准明确的任务特别适合交给 Agent:
74
+ 边界清晰、结果可验证的任务最省心:
75
75
 
76
- ```
76
+ ```text
77
77
  src/parser/markdown.ts 目前几乎没有测试。请补一组单元测试,覆盖正常段落、嵌套列表、代码块、表格、引用块和混合场景。用项目里已有的测试风格。
78
78
  ```
79
79
 
80
- ```
80
+ ```text
81
81
  把 src/handlers 下重复的「读 body → 校验 → 写日志 → 返回」逻辑抽成一个中间件。改完跑一遍测试,保证现有行为不变。
82
82
  ```
83
83
 
84
- 多文件重构建议先用 Plan 模式确认方案,也可以用 `/fork` 派生一个试验分支,再从 `/sessions` 切换过去尝试;fork 本身不影响原会话,不满意切回来即可。
84
+ 涉及多个文件的重构,先用 Plan 模式确认方案。也可以 `/fork` 出一个副本先试,之后从 `/sessions` 在两者之间切换,原会话不受影响。
85
85
 
86
86
  ## 一次性脚本与自动化任务
87
87
 
88
- 批量改文件、跑统计、调研对比等任务用一段 prompt 就能完成:
88
+ 批量改文件、跑统计、做调研对比,一段 prompt 就够:
89
89
 
90
- ```
90
+ ```text
91
91
  把 src 目录下所有 .js 文件里的 var 声明改成 const 或 let,能用 const 的优先用 const。改完跑一次 lint 确认。
92
92
  ```
93
93
 
94
- ```
94
+ ```text
95
95
  分析 logs/ 下最近 7 天的访问日志,按接口路径统计调用次数、p50 和 p99 响应时间,结果输出成一个 markdown 表格。
96
96
  ```
97
97
 
98
- ```
98
+ ```text
99
99
  帮我调研一下 TypeScript 里几种主流的依赖注入方案(tsyringe、inversify、awilix),从 API 风格、装饰器依赖、运行时开销三个维度对比,给一份不超过一页的建议。
100
100
  ```
101
101
 
102
- 对于确定安全的批处理任务,可以跳过逐条审批:启动 CLI 时加 `--yolo` 参数(整个会话进入 YOLO 模式,敏感文件访问也免询问,除非显式 deny;退出 Plan 模式仍需审核),或在会话中输入 `/yolo` 切换——两种方式开启的是同一个 YOLO 模式。也可以在[配置文件](../configuration/config-files.md#permission)里给特定工具预置白名单规则。
102
+ 确认安全的批量任务可以不再逐条审批:启动 CLI 时加 `--yolo`,或在会话中输入 `/yolo`,两者都会把会话切到 YOLO 模式,工具调用(包括读取敏感文件)不再询问,除非被权限规则显式拒绝;退出 Plan 模式时仍会审核。想收窄范围,就在[配置文件](../configuration/config-files.md#permission)的 `[permission]` 段为特定工具预置允许规则。
103
103
 
104
104
  ## 定时任务与提醒
105
105
 
106
- 在交互式会话内,可以让 Agent 设置一次性提醒或按周期运行的任务。Agent 会生成本地时区的 cron 表达式(一种描述「什么时间运行」的标准格式),并在触发时把 prompt 重新注入到同一个会话中:
106
+ 在交互式会话里,直接让 Agent 设一次性提醒或周期任务。它会按你的本地时区生成 cron 表达式(描述「什么时间运行」的标准写法),到点把 prompt 重新发进同一个会话:
107
107
 
108
- ```
108
+ ```text
109
109
  下午 2:30 提醒我去查一下部署。
110
110
  ```
111
111
 
112
- ```
112
+ ```text
113
113
  每个工作日上午 9 点,帮我汇总最近的 CI 失败情况。
114
114
  ```
115
115
 
116
- ```
116
+ ```text
117
117
  每小时巡检一次生产环境的健康端点,看到异常就告诉我。
118
118
  ```
119
119
 
120
- ```
120
+ ```text
121
121
  大约 10 分钟之后再回来,确认一下构建是否结束。
122
122
  ```
123
123
 
124
- 定时计划绑定在会话内:关掉终端没关系,用 `kiki --session` 恢复同一个会话时会重新加载并继续触发;但它们不会带入全新的会话。周期任务在 7 天后会自动过期——Agent 会在最后一次触发时收到「已过期(stale)」提示,并根据你之前的指示决定结束还是续期。
125
-
126
- 想查看当前有哪些挂起的任务,直接问 Agent 即可(它会调用 `Cron` 的只读 `list` 操作);要取消某个任务,让 Agent 删除它或引用对应的 8 位 id。完整工具说明见[定时任务](../reference/tools.md#定时任务);整体关停开关是 `KIKI_DISABLE_CRON=1`。
124
+ 定时计划属于创建它的那个会话。关掉终端没关系,用 `kiki --session` 恢复同一个会话,计划会重新加载并继续触发;全新会话里不会有任何计划。周期计划在 7 天后停止,最后一次触发时 Agent 会收到「已过期」提示,只有你最初的指示要求续期时它才会续。要查看当前有哪些计划,直接问 Agent 即可;要取消某个计划,让 Agent 删除它或给出对应的 8 位 id。工具说明见[定时任务](../reference/tools.md#定时任务),`KIKI_DISABLE_CRON=1` 可以整体关停定时任务。
127
125
 
128
126
  ## 生成与维护文档
129
127
 
130
- ```
128
+ ```text
131
129
  我刚改了 src/auth/login.ts 的接口签名,把对应的 JSDoc、README 里的示例代码、还有 docs/zh/guides 下提到这个接口的段落都同步更新一遍。
132
130
  ```
133
131
 
134
- ```
132
+ ```text
135
133
  src/api 下所有公开函数里,凡是没有 docstring 的都补上文档注释,风格参考已有的注释。
136
134
  ```
137
135
 
138
- ```
136
+ ```text
139
137
  根据 src/cli 下的命令实现,生成一份命令参考的草稿,列出每个子命令、参数和默认值,放到 docs/zh/reference 下我后续审阅。
140
138
  ```
141
139
 
142
- 需要留档或复盘时,用 `kiki export <sessionId>` 打包为 ZIP,或在 TUI 中用 `/export-md` 导出为可读的 Markdown 对话记录。
140
+ 要留档或复盘,用 `kiki export <sessionId>` 把会话打包为 ZIP;在 TUI 中用 `/export-md` 可以导出可读的 Markdown 对话记录。
143
141
 
144
142
  ## 下一步
145
143
 
@@ -1,6 +1,6 @@
1
1
  # 使用目标模式
2
2
 
3
- 目标(goal)让 Kiki 在多个轮次(turn,Agent 处理一条消息的完整过程)中持续朝一个明确结果工作——不同于普通提示词只说"下一步做什么",目标说的是"最终要达成什么状态"。当任务有清晰终点,但下一步取决于 Agent 工作中发现的信息时,使用 `/goal` 进入目标模式,例如:修复一批失败的测试、追踪并修复构建失败的根因。
3
+ 目标(goal)让 Kiki 跨多个轮次(turn,Agent 处理一条消息的完整过程)朝一个结果持续推进。提示词说「下一步做什么」,目标说「最终要变成什么样」。当任务有清晰终点、但下一步取决于 Agent 途中发现什么时,用 `/goal` 进入目标模式,比如修复一批失败的测试,或找出构建失败的根因。
4
4
 
5
5
  ## 开始目标
6
6
 
@@ -24,7 +24,7 @@ Kiki 会保存该目标,把它作为下一条用户消息发送,并进入目
24
24
  /goal 找出这个代码库中的所有 bug
25
25
  ```
26
26
 
27
- 这个目标没有说明什么算成功、要检查什么,也没有说明其他的停止条件。Agent 可能会因为一些问题立刻进入「阻塞(`blocked`)」状态,也可能工作得比预期更久。
27
+ 这样的目标没说什么算成功、要看什么、什么时候停。Agent 可能立刻进入「阻塞(`blocked`)」,也可能一直做到远超预期。
28
28
 
29
29
  ### 何时使用目标模式
30
30
 
@@ -78,9 +78,9 @@ Kiki 会保存该目标,把它作为下一条用户消息发送,并进入目
78
78
  - **暂停(`paused`)**:你暂停了它、中断了当前轮次、恢复了原本有目标的会话,或遇到模型、供应商或运行时错误
79
79
  - **阻塞(`blocked`)**:Kiki 需要输入、无法按当前表述完成目标,或达到预算上限。当 Agent 将目标标记为阻塞时,它会写一条简短消息说明原因。
80
80
 
81
- 停止条件需要写在目标本身里。`/goal` 没有单独用于描述停止限制的语法。
81
+ 停止条件要写进目标本身,`/goal` 没有单独的停止限制参数。
82
82
 
83
- 处于「阻塞(`blocked`)」的目标不会冻结它已经启动的工作。为该目标启动的任务完成后,其结果会唤醒主 Agent 处理这一次完成事件;目标本身仍然是阻塞状态,不会自行恢复。暂停或取消该目标、以及预算耗尽,仍按原样控制,结果会留到你的下一条消息。
83
+ 目标阻塞时不会取消它已经启动的工作。为它启动的任务完成后,结果会唤醒 main agent 处理这一次完成;目标本身仍是阻塞状态,要等你恢复。如果你暂停或取消了目标,或者预算用尽,同样会把这个结果留到你的下一条消息。
84
84
 
85
85
  ## 在 Web 界面中管理目标
86
86
 
@@ -90,13 +90,13 @@ Web 界面会在对话下方显示当前目标条。点击目标条可以展开
90
90
 
91
91
  ## 安排后续目标
92
92
 
93
- Agent 有时很快就能完成一个目标,而接下来的工作你已经想好了——之前需要等当前目标结束、回到 TUI 手动提交下一个目标。使用 `/goal next` 可以提前排队后续目标,不用打断当前目标:
93
+ 目标很快就完成、而你已经知道下一步要做什么时,可以直接排队,不必干等:
94
94
 
95
95
  ```sh
96
96
  /goal next 测试通过后更新发布说明
97
97
  ```
98
98
 
99
- 当前目标运行期间,安排的后续目标对 Agent 不可见。当前目标完成后,Kiki 会用与 `/goal <objective>` 相同的效果开始第一个后续目标。
99
+ 当前目标运行期间,Agent 看不到排队的目标。当前目标完成后,Kiki 启动第一个排队的目标,效果与你输入 `/goal <objective>` 完全一致。
100
100
 
101
101
  如果当前没有目标,`/goal next <objective>` 会立即开始这个目标。它的效果与 `/goal <objective>` 相同,并会在目标开始前显示一条状态消息。
102
102
 
@@ -112,9 +112,9 @@ Agent 有时很快就能完成一个目标,而接下来的工作你已经想
112
112
 
113
113
  ## 谨慎使用目标模式
114
114
 
115
- 目标模式适合能通过文件、测试、命令输出、生成产物或明确报告验证的工作。对于一次性修改或只需要一个答案的问题,普通提示词通常更合适。
115
+ 目标模式适合可验证的工作:文件、测试、命令输出、生成产物,或一份明确的报告。一次性修改或只需要一个答案的问题,用普通提示词更合适。
116
116
 
117
- 权限模式决定工具调用是否需要审批。`manual`(手动)模式下,目标工作可能会停下来等待你审批工具调用;想让目标无人值守(全程不需要你在场审批或回答问题)运行,应选择与代码库风险和可运行命令相匹配的权限模式。
117
+ 权限模式决定工具调用是否等你审批。`manual`(手动)模式下目标工作会停下来等审批;要无人值守运行,就选一个与代码库风险和 Agent 将要执行的命令相匹配的权限模式。
118
118
 
119
119
  在非交互式 prompt 模式(`kiki -p`,执行单条指令后直接退出)中,只支持创建目标:
120
120
 
@@ -1,49 +1,47 @@
1
1
  # 交互与输入
2
2
 
3
- Kiki CLI/TUI 以交互式终端界面运行,核心由输入框、对话视图和状态栏三部分组成。本页介绍输入方式、媒体粘贴、审批流程和模式切换。
3
+ CLI 和 TUI 是一个终端界面,由输入框、对话视图和状态栏组成。本页讲输入与粘贴、审批流程,以及可以切换的模式。
4
4
 
5
5
  ## 输入框基本操作
6
6
 
7
- 输入框接受自由文本:`Enter` 发送,`Shift-Enter` 或 `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓` 浏览当前工作目录的历史输入,包括此前运行过的 Shell 命令。
7
+ 输入框接受自由文本:`Enter` 发送,`Shift-Enter` / `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓` 浏览在当前工作目录输入过的内容,包括跑过的 Shell 命令。
8
8
 
9
- **退出 CLI**:输入框为空时按 `Ctrl-D`,或空闲状态下连按 `Ctrl-C` 两次,或输入 `/exit`。三种方式都要求 Agent 空闲——流式输出期间按 `Ctrl-C` 或 `Esc` 只是中断当前轮次,不会退出程序。
9
+ **退出 CLI**:输入框为空时按 `Ctrl-D`,空闲时连按两次 `Ctrl-C`,或输入 `/exit`。三种方式都要求 Agent 空闲——流式输出期间 `Ctrl-C` 和 `Esc` 只是中断当前轮次。
10
10
 
11
11
  ## 粘贴图片与视频
12
12
 
13
- Kiki 支持在输入框中直接粘贴图片和视频,让 AI 结合视觉内容理解你的问题——截图报错、UI 设计图、架构图,直接粘贴进去就能讨论,无需上传或转存。
14
-
15
- **视频输入是 Kiki 的特色能力**,支持直接粘贴视频片段让模型分析其中的内容、界面流程或代码演示。
13
+ 图片和视频可以直接粘进输入框:报错截图、UI 设计稿、架构图、代码演示,粘进去就能讨论,不必先上传或转存。
16
14
 
17
15
  操作方式:
18
16
 
19
17
  - **macOS / Linux**:`Ctrl-V`
20
18
  - **Windows**:`Alt-V`
21
19
 
22
- 粘贴后输入框显示占位符,可像普通文本一样编辑;提交时自动替换为实际内容。纯文本剪贴板会回退到普通粘贴。媒体功能是否可用取决于当前模型是否支持图片 / 视频输入(模型能力字段 `image_in` / `video_in`),登录 Kimi Code 账号后默认开启。
20
+ 粘贴后输入框里是一个可编辑的占位符,发送时会被真实内容替换。剪贴板里是纯文本就照常粘贴。能否使用媒体取决于当前模型是否接受图片 / 视频输入(`image_in` / `video_in` 能力字段);登录 Kimi Code 账号后默认开启。
23
21
 
24
22
  ## 斜杠命令
25
23
 
26
24
  以 `/` 开头的内容会被识别为斜杠命令。输入 `/` 后弹出补全菜单,随后续字符实时过滤;按 `Esc` 关闭菜单,匹配失败时内容会作为普通消息发送给 Agent。
27
25
 
28
- 已激活的 [Agent Skills](../customization/skills.md)(扩展 Agent 能力的技能包,可以封装提示词与流程)会自动注册为斜杠命令:普通外部 Skill 以 `/skill:<name>` 调用,外部子 Skill 以 `/parent.child` 这样的点分命令显示,内置 Skill 直接以 `/<name>` 出现在斜杠命令面板中;若外部 Skill 名称与系统斜杠命令不冲突,也可以省略 `skill:` 前缀直接输入 `/<name>`。
26
+ 已激活的 [Agent Skills](../customization/skills.md)(扩展 Agent 能力的技能包)会注册成斜杠命令:普通外部 Skill 用 `/skill:<name>` 调用,外部子 Skill 显示为 `/parent.child` 这样的点分命令,内置 Skill 直接是 `/<name>`。外部 Skill 名称不和系统命令冲突时,可以省掉 `skill:` 前缀直接输入 `/<name>`。
29
27
 
30
- 在较长的提示词中,也可以在空白字符后(包括后续行的行首)输入 `/` 打开仅包含 Skill 的补全菜单。这样可以在一条提示词里引用多个 Skill:Kiki 会将它们一起激活,与提示词作为同一轮次(Agent 处理一条消息的完整过程)运行,一次 `/undo`(撤销上一轮输出)即可整体撤销,提示词原文保持不变。提示词中的 Skill 引用不携带参数——只按名称激活;参数仍是单独以 `/skill:<name> args` 调用时的概念。内置命令和 plugin 命令仍需放在输入开头。
28
+ 在长提示词里,空白字符后(包括后续行的行首)输入 `/` 会打开只含 Skill 的补全菜单,一条提示词里可以引用多个 Skill:Kiki 会一起激活并作为同一轮次执行,一次 `/undo` 撤销整次提交。提示词中的 Skill 引用只按名称激活,不能带参数;要传参数仍需单独写 `/skill:<name> args`。内置命令和 plugin 命令只能放在输入开头。
31
29
 
32
- 部分命令仅在 Agent 空闲时可用,流式输出或上下文压缩期间需先按 `Esc` 中断。`/yolo`、`/plan`、`/help`、`/btw` 等模式切换和查询类命令则始终可用。全部命令说明见[斜杠命令参考](../reference/slash-commands.md)。
30
+ 部分命令仅在 Agent 空闲时可用,流式输出或上下文压缩期间要先按 `Esc` 中断。`/yolo`、`/plan`、`/help`、`/btw` 等切换和查询类命令始终可用。全部命令见[斜杠命令参考](../reference/slash-commands.md)。
33
31
 
34
32
  ## 文件引用
35
33
 
36
- 键入 `@` 触发文件路径补全,选中后在输入中插入相对路径,Agent 读取时会直接加载该文件内容。文件引用在 git 和非 git 目录都可用;文件夹候选会以 `/` 结尾,方便继续补全其下路径。Kiki 的文件快速搜索组件仍在后台下载时,会先回退到基础的文件系统扫描。隐藏路径也可补全,但 `.git` 会从候选中排除。
34
+ 键入 `@` 触发文件路径补全,选中后插入相对路径,Agent 读到这条消息时会直接加载该文件。git 和非 git 目录都可用;文件夹候选以 `/` 结尾,可以继续往下补全。Kiki 的文件快速搜索组件还在后台下载时,补全会先退回基础的文件系统扫描。隐藏路径会出现在候选中,`.git` 不会。
37
35
 
38
- > `@` 引用和斜杠命令是两套不同的机制:`@` 向 Agent 提供文件上下文,`/` 调用内置功能或 Skill。空白字符后的 `/` 仅提供 Skill 补全;内置命令和 plugin 命令需要使用开头的 `/`。
36
+ > `@` 和 `/` 是两套机制:`@` 给 Agent 补文件上下文,`/` 调用内置功能或 Skill。空白后的 `/` 只补 Skill,内置命令和 plugin 命令要用开头的 `/`。
39
37
 
40
38
  ## 审批流程
41
39
 
42
- Agent 调用有副作用的工具(执行命令、在工作区信任边界之外修改文件等)时,TUI 会弹出审批面板让你确认。在已信任的工作目录内,落在该目录下的 `Write` / `Edit` 不再逐项询问;manual 模式下,Shell 命令、工作区外写入、工作区中指向外部目标的链接以及敏感文件访问仍会询问。YOLO 模式下的普通工具调用,以及 Plan 模式下对计划文件的写入,不触发审批。
40
+ 工具调用有副作用时(执行命令、在工作区信任边界之外改文件),TUI 会弹出审批面板。已信任工作目录内的 `Write` / `Edit` 不再逐项询问;manual 模式下,Shell 命令、工作区外写入、工作区里指向外部目标的链接和敏感文件访问都会先问。YOLO 模式下的普通工具调用、Plan 模式下对计划文件的写入都不触发审批。
43
41
 
44
- 用方向键选择选项,`Enter` 确认;也可以按 `1`/`2`/`3` 数字键直接选择。`Esc`、`Ctrl-C`、`Ctrl-D` 等同于拒绝。
42
+ 用方向键选、`Enter` 确认,或按 `1`/`2`/`3` 直接选数字项。`Esc`、`Ctrl-C`、`Ctrl-D` 都表示拒绝。
45
43
 
46
- 面板中通常有「Approve for this session」选项,选择后本次会话内的同类调用将自动放行。如需永久规则,在[配置文件](../configuration/config-files.md#permission)里预置 allow / deny 规则即可。
44
+ 面板通常提供「Approve for this session」,选中后本次会话内的同类调用自动放行。要跨会话生效的规则,在[配置文件](../configuration/config-files.md#permission)里写 allow / deny。
47
45
 
48
46
  ## 模式切换
49
47
 
@@ -54,17 +52,19 @@ Plan 模式下,Agent 先输出行动计划,等待你确认后才动手修改
54
52
  - 切换:`Shift-Tab` 或 `/plan`
55
53
  - 清除当前计划:`/plan clear`(仅空闲时)
56
54
 
57
- Agent 输出方案后会等待你审批——可批准执行、拒绝、或要求修改。退出 Plan 模式需要你确认,即使开启了 YOLO 模式也不例外。Auto 和「替我审批」模式例外:计划退出会自动批准,并在记录中标记为 "Auto-approved"。
55
+ Agent 给出方案后会停下来等你:批准、拒绝,或要求修改。退出 Plan 模式需要你确认,即使开着 YOLO 模式也一样;Auto 和「替我审批」是例外,计划退出自动批准,并在记录里标为 "Auto-approved"。
58
56
 
59
57
  ### 权限模式
60
58
 
61
- 通过 `/permission` 在 Manual、Auto、「替我审批」和 YOLO 之间切换。**YOLO 模式**(`/yolo`)自动批准 Agent 文件访问,包括 `.env`、SSH 私钥等敏感目标;显式 deny 规则仍优先。Git 控制路径仍可能要求审批。退出 Plan 模式仍需审核,Agent 也仍可能向你提问。
59
+ `/permission` 在 Manual、Auto、「替我审批」和 YOLO 之间切换。
60
+
61
+ **YOLO 模式**(`/yolo`)自动批准 Agent 的文件访问,包括 `.env`、SSH 私钥等敏感目标。显式 deny 规则仍优先,Git 控制路径仍可能询问。退出 Plan 模式仍要审核,Agent 也仍可能向你提问。
62
62
 
63
- **Auto 模式**(`/auto`)自动批准普通工具调用和计划退出,无需逐项确认;访问敏感文件、工作区中指向外部目标的链接时会请求审批,Agent 也仍可向你提问。显式 deny 规则仍会拦截命中调用;危险 Bash 命令默认也会请求审批,除非关闭该检查。
63
+ **Auto 模式**(`/auto`)自动批准普通工具调用和计划退出,访问敏感文件和工作区里指向外部目标的链接时才会问。显式 deny 规则仍会拦截,危险 Bash 命令默认也仍会请求审批,除非关掉该检查。
64
64
 
65
- **「替我审批」模式**(`review`)与 Auto 一样处理普通操作,但先把策略产生的审批请求交给[已配置的审查者](../configuration/config-files.md#审查者审批)。显式配置的 `ask` 规则始终由你审批。审查者高置信的批准或拒绝会记录其来源;不确定或不可用时,仍由你在普通审批面板裁决。同一轮连续三次被审查者拒绝后,这轮余下的请求直接交给你。Agent 提问不交给审查者;可在[交互设置](../configuration/config-files.md#interaction)中选择提问是否阻塞当前轮。
65
+ **「替我审批」模式**(`review`)和 Auto 一样处理普通操作,但策略产生的审批请求先交给[已配置的审查者](../configuration/config-files.md#审查者审批)。显式 `ask` 规则始终交给你。审查者高置信的决定会记录来源;不确定或审查者不可用时回到你的审批面板,同一轮里连续三次被拒后,这一轮余下的请求直接交给你。Agent 提问不经过审查者,是否阻塞当前轮由[交互设置](../configuration/config-files.md#interaction)决定。
66
66
 
67
- 无人接收审批的定时任务等场景下,需要你确认的审批请求会被取消,而不是放行;提问也会被撤销,不会一直等待。
67
+ 没有审批接收方时(例如无人值守的定时运行),需要你确认的请求会被取消而不是放行,提问也会被撤销,不会一直挂着。
68
68
 
69
69
  ::: warning 注意
70
70
  YOLO 模式会跳过文件写入和命令执行的确认,请只在受信任的工作目录下使用。
@@ -72,13 +72,13 @@ YOLO 模式会跳过文件写入和命令执行的确认,请只在受信任的
72
72
 
73
73
  ### Shell 模式
74
74
 
75
- Shell 模式让你不离开对话就能运行终端命令,命令输出会写入对话上下文,AI 在后续轮次能够看到这些结果。
75
+ Shell 模式让你不离开对话就能跑终端命令,输出写进对话上下文,Agent 在后续轮次能看到结果。
76
76
 
77
77
  - 进入:在空输入框中键入 `!`,或粘贴以 `!` 开头的命令。
78
78
  - 退出:在空输入框中按 `Backspace` 或 `Esc`;提交命令后也会自动回到普通模式。
79
- - 召回历史命令:在 Shell 模式的空输入框中按 `↑` 浏览此前运行过的 Shell 命令,召回后仍处于 Shell 模式,可再次作为命令执行。
79
+ - 召回历史命令:在 Shell 模式的空输入框中按 `↑`,召回后仍在 Shell 模式,可再次作为命令执行。
80
80
 
81
- 进入 Shell 模式后,输入框左侧会显示 `!` 提示符(桌面版 GUI 中边框还会变为紫色)。例如,无需新开终端就能运行 `!git status` 查看仓库状态,输出会直接进入对话上下文。
81
+ Shell 模式下输入框左侧显示 `!` 提示符(桌面版 GUI 中边框还会变紫)。例如 `!git status` 不用另开终端就能查看仓库状态,输出直接进入对话上下文。
82
82
 
83
83
  ## 流式输出期间
84
84
 
@@ -90,9 +90,9 @@ Agent 思考或调用工具时,输入框仍然可用,支持以下额外操
90
90
 
91
91
  ## 外部编辑器
92
92
 
93
- 按 `Ctrl-G` 把当前输入内容发给外部编辑器,保存后回填到输入框,不保存则保持原样。适合需要输入大段文本或带格式内容的场景。
93
+ 按 `Ctrl-G` 把当前输入发给外部编辑器,保存关闭后写回输入框,不保存则原样保留。输入大段文字或带格式内容时这样最省事。
94
94
 
95
- 编辑器优先级:`/editor` 配置 > `$VISUAL` 环境变量 > `$EDITOR` 环境变量。未配置时可先运行 `/editor` 选择默认编辑器。
95
+ 编辑器选取顺序:`/editor` 配置 → `$VISUAL` → `$EDITOR`。三个都没有时,先运行 `/editor` 选一个。
96
96
 
97
97
  ## 下一步
98
98
 
@@ -1,42 +1,46 @@
1
1
  # 界面导览
2
2
 
3
- Kiki 桌面版与浏览器 GUI(在浏览器中使用的图形界面,与桌面版共享同一套界面)共享同一套界面。一个会话由三个区域组成:对话视图、输入框和右侧栏。本页带你熟悉界面布局;看板、草稿与恢复见[工作区与会话管理](/zh/guides/sessions),TUI 侧对应操作见[交互与输入](/zh/guides/interaction)。
3
+ 桌面版和浏览器界面是同一套 UI,一个会话由三块组成:对话视图、输入框、右侧栏。本页就是这三块的导览;看板、草稿和恢复见[工作区与会话管理](/zh/guides/sessions),同样的概念在终端里的操作见[交互与输入](/zh/guides/interaction)。
4
4
 
5
5
  ## 对话视图
6
6
 
7
- 对话视图展示会话时间线:assistant 消息、工具调用、审批、提问和后台任务通知。已解决的问题、审批、标记和完成通知以单行紧凑条目保留在原位;连续多条会折叠进可展开的「活动历史(Activity history)」行,失败或取消的条目始终单独可见。相同的标记分隔条(如目标更新)连续出现且中间没有消息或工具调用时,只显示最新一条并标明次数,例如「目标已更新 ×12」。文件引用可以预览、打开或在所在文件夹中显示。重新打开会话或加载 Agent 的已保存历史后,模型切换会以分隔条标明之前和之后的模型;只调整思考力度不会新增分隔条。
7
+ 这里是会话时间线:assistant 消息、工具调用、审批、提问和后台任务通知。
8
8
 
9
- 较长的工具输出和其他大字段分段加载。字段被截断时选择**继续加载**可读取其余部分,行上会显示已加载的比例。当续读在有原件可取的字段上失败时——例如某个工具的输入或输出,或后台任务自己的输出——同一处会提供**下载原文**,把该字段的完整原始内容保存到你的机器上,并显示保存中、已保存和重试状态。重试仍然可用,也不是每个字段都能下载。
9
+ 已处理的内容——你回答过的提问、你批准过的请求、各种标记——会收成单行紧凑条目,留在它发生的位置。连续多条会折叠成一行**活动历史**,点开即可展开;失败和取消的条目始终单独显示。目标更新这类重复标记,在中间没有消息或工具调用时只显示最新一条并带上次数(例如「目标已更新 ×12」)。
10
+
11
+ 文件引用可以预览、打开,或在所在文件夹中显示。重新打开会话或加载 Agent 的已保存历史时,每次模型切换都会显示一条分隔条,标出切换前后的模型;只调整思考力度不会多出分隔条。
12
+
13
+ 较长的工具输出和其他大字段分段加载。字段被截断时选**继续加载**可以取回其余部分,行上会告诉你已加载多少。续读在有原件可取的字段上失败时——工具的输入或输出、后台任务自己的输出——同一行会提供**下载原文**,把完整内容存到你的机器上,并显示保存中、已保存和重试状态。重试始终可用,但不是每个字段都能下载。
10
14
 
11
15
  ## 输入框
12
16
 
13
- 输入框接受自由文本:`Enter` 发送,`Shift-Enter` / `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓` 浏览当前工作目录的历史输入。可以从剪贴板粘贴图片和视频,取决于当前模型的多模态能力——完整行为见[交互与输入](/zh/guides/interaction),GUI 输入框与其共享同一套规则。
17
+ 输入框接受自由文本:`Enter` 发送,`Shift-Enter` / `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓` 浏览在当前工作目录输入过的内容。剪贴板里的图片和视频可以直接粘贴,前提是当前模型支持——细节见[交互与输入](/zh/guides/interaction)。
14
18
 
15
- 通过输入框的 **+** 菜单可以把 SSH 主机加入会话。加入会话的主机属于这个会话,不会随每条消息重复携带,因此输入框上方的 **本会话 SSH** 控件会在主机保持加入期间一直显示:它列出已加入的主机,点击 **X** 移出,也可以从这一行打开同一个主机列表来增减。添加主机只是让会话可以用它,并不会立即连接。新会话(`/new`)中该控件显示为 **待加入 SSH**,所选主机会在第一条消息发送前加入创建好的会话。
19
+ 输入框的 **+** 菜单可以把 SSH 主机加入会话。加入的主机属于这个会话,而不是每条消息都要带一遍,所以输入框上方的 **本会话 SSH** 只要有主机加入就一直在:它列出已加入的主机,点 **X** 移出,也可以从这一行重新打开主机列表增删。添加主机只是让会话能用上它,不会立刻连过去。全新会话中该控件显示为 **待加入 SSH**,你选中的主机会在第一条消息发出前加入。
16
20
 
17
- 智能体忙碌时,新消息默认进入输入框上方的队列,而不是打断当前工作。每条排队消息都可以单独设定发送时机:**空闲后**(智能体结束当前轮次就发送)、**子智能体完成后**(等正在运行的子智能体结束)、**任务完成后**(等所有后台任务结束)。在队列里的对应行上可以改时机、编辑、调整顺序或立即发送。
21
+ Agent 忙碌时,新消息默认进入输入框上方的队列,而不是打断它。每条排队消息可以单独设定发送时机——**空闲后**、**子智能体完成后**、**任务完成后**——并在队列中对应的那一行上改时机、改文字、调顺序或立即发送。
18
22
 
19
- 智能体忙碌时,将鼠标悬停在发送按钮上,或聚焦按钮后按 `↓`,可以打开发送时机菜单。除了按默认时机发送,还可以选择把消息送入当前轮次,在下一安全步骤边界读取(与 `Ctrl-Enter` 相同)、子智能体完成后开始,或所有后台任务完成后开始。Main agent 正在前台等待 `AgentRun` 时,Send now 会把该等待转入后台而不停止子 Agent;子 Agent 完成后仍自动报告结果。普通排队不会释放等待。选择只作用于本条消息,不改变默认时机。智能体空闲时不显示此菜单。
23
+ 要选时机,把鼠标悬停在发送按钮上,或聚焦后按 `↓`。除默认时机外,你可以把消息送进当前轮次、让 Agent 在下一个安全步骤读到它(等同 `Ctrl-Enter`)、等子智能体结束后再开始,或等所有后台任务结束后再开始。当 main agent 正在前台等一个 `AgentRun` 时,**Send now** 会把这个等待转到后台而不终止子 Agent,子 Agent 完成时仍会自动回报;普通排队不会触发这个转移。选定后只作用于这一条消息。Agent 空闲时不显示这个菜单。
20
24
 
21
- 在 main agent 尚未回复或调用工具时停止运行,会把被中断的提示词及附件回填到该会话的草稿中,并保留尚未发送的编辑。已经回复或经过 steering 的提示词不会回填。附件回填要求已加载的对话记录中保留完整提示词内容;回填的附件仅保留在本次应用运行的内存中。
25
+ 在 main agent 还没回复、也没调用工具时把它停掉,被打断的提示词连同附件会回到会话草稿里,和你尚未发送的编辑放在一起。Agent 已经回复过或已被 steering 的提示词不会回填;附件回填要求已加载的对话记录里保留了完整提示词,且回填的附件只存在于本次应用运行的内存中。
22
26
 
23
- 重启后,恢复的排队消息会等待确认。对单条消息选择立即发送,只发送该条;选择**继续发送**则解除整个队列的等待。**稍后**只收起说明,队列等待期间仍会保留继续发送按钮;在你恢复队列前,新提交的消息也可能继续排队。
27
+ 重启后,排队消息会回来等着你决定。单条消息上选立即发送,就只发这一条;**继续发送**释放整个队列。**稍后**只是收起说明——继续发送按钮仍然可见,你在此期间新提交的消息也会继续排队,直到你恢复队列。
24
28
 
25
- 在 subagent 的输入框中,停止请求尚未返回时,停止按钮会暂时禁用。若请求失败,错误提示会说明原因,按钮恢复可用后可重试。停止一次运行不会清空该 subagent 队列中其他待发送的消息。
29
+ 在 subagent 的输入框里,停止请求还没返回时停止按钮会暂时禁用;请求失败会给出原因提示,按钮恢复后可重试。停掉一次运行不会动这个 subagent 队列里的其他消息。
26
30
 
27
31
  ## 审批
28
32
 
29
- 受保护的操作会在运行前显示在时间线的审批请求中,你可以批准一次或批准整个会话。默认 Auto 模式下,普通工具调用直接执行;敏感文件和指向工作区外的链接仍需审批。manual 模式下,Shell 命令及工作区外写入先询问你;受信任工作目录内的 `Write` / `Edit` 不再逐项询问。YOLO 模式下,敏感文件访问免询问放行,但显式 deny 仍优先。用 `Esc` 中断的工具调用在执行前停止。
33
+ 受保护的操作执行前会在时间线里显示审批请求,你可以只批准这一次,或批准整个会话。默认的 Auto 模式下普通工具调用直接执行,敏感文件和指向工作区外的链接仍要审批。manual 模式会先问 Shell 命令和工作区外的写入,受信任目录内的 `Write` / `Edit` 不再逐项询问。YOLO 模式跳过敏感文件询问,但显式 deny 规则依然优先。按 `Esc` 中断的工具调用会在执行前停下。
30
34
 
31
35
  ## 右侧栏
32
36
 
33
- 右侧面板一次只描述一个智能体:你最后点进去或聚焦的那个。主智能体和每个子智能体用的是同一套页面,进到子智能体的记录里,还是同一个右栏跟着你走。它显示智能体的身份和此刻在做什么、等着你处理的条目(可以直接在上面做决定)、活动流,以及一个折起来的能力区块。从 **Dispatch capabilities**(派发能力,查看智能体如何派发 subagent 的配置面板)可以查看 subagent 的配置档案(profile)、路由(route)与执行器(executor),以及默认模型与思考力度(effort,模型投入多少推理努力)的来源;见 [Agent 与 subagent](../customization/agents.md#重建会话上下文)。
37
+ 右栏一次只描述一个 Agent:你最后点进去或聚焦的那个。main agent 和每个 subagent 用的是同一套页面,进到 subagent 的记录里,右栏也跟着你走。它显示这个 Agent 此刻在做什么、等着你处理的条目(可以直接在行上做决定)、活动流,以及一个折起来的能力区块。**Dispatch capabilities** 打开的是 Agent 派发 subagent 的配置面板,从那里可以看到某个 subagent 的配置档案(profile)、路由和执行器,以及它的默认模型与思考力度(effort,模型投入多少推理)来自哪里——见 [Agent 与 subagent](../customization/agents.md#重建会话上下文)。
34
38
 
35
- 在桌面宽度下,面板默认展开;页头的 **Standard / Cockpit** 可以让它临时加宽并占用预览区,对话和输入框仍留在主列。选 **Standard** 或 **退出驾驶舱**会恢复你原来的预览内容、页签、草稿和宽度。
39
+ 桌面宽度下右栏默认展开。页头的 **Standard / Cockpit** 让它临时加宽、占用预览区,对话和输入框仍留在主列;选 **Standard** 或 **退出驾驶舱**会把原来的预览内容、页签、草稿和宽度还原。
36
40
 
37
41
  ## 会话与工作区
38
42
 
39
- 会话列表按工作区分组;选择一个恢复,或新建草稿。已保存但不再可用的模型、Agent 配置档案(profile)或思考力度会带着诊断信息继续可见,由你选择有效值——GUI 不会悄悄替换成另一个模型。详情见[工作区与会话管理](/zh/guides/sessions)。
43
+ 会话列表按工作区分组,选一个恢复,或在那里新建草稿。已保存但已不可用的模型、配置档案(profile)或思考力度会带着诊断信息继续显示,等你选一个有效值,界面不会悄悄换成别的模型。其余见[工作区与会话管理](/zh/guides/sessions)。
40
44
 
41
45
  ## 下一步
42
46
 
@@ -1,16 +1,32 @@
1
1
  # 记忆
2
2
 
3
- 记忆是会话留不住的东西。Kiki 把你的偏好、反馈、已核实的项目事实和参考指引存下来,在之后的对话里再找回来。它默认开启,只存在运行 Kiki 的那台机器上,每次写入都会在对话里留下一行。这一页讲 **/memory** 页提供的选择、可能挡在智能体和写入之间的审批收件箱,以及怎么把记忆关掉。
3
+ Kiki 记住那些你不想每个会话都重讲一遍的东西:你的代码希望怎么被审、上周确认过的哪个项目事实、参考资料放在哪。它默认开启,数据只存在运行 Kiki 的那台机器上,每次写入都会在对话里留下一行。
4
4
 
5
- 如果你想看的是智能体在**单个会话内**能做什么——压缩、队列、任务看板——请看[长时间的活](/zh/features/long-work)。
5
+ 本页讲 **/memory** 页上的范围选择、可能挡在 Agent 和写入之间的审批收件箱,以及怎么关掉记忆。智能体在**单个会话内**能做的事(压缩、消息队列、任务看板)见[长时间的活](/zh/features/long-work)。
6
+
7
+ ::: warning 注意 多个 Kiki 共用同一记忆目录
8
+ 比 0.3.2 旧的 Kiki 不认识下面的**内容依据**和**有效性**字段,它的一次写入可能把这两个字段从条目上抹掉。如果两个 Kiki 共用一个记忆家目录——同一 `KIKI_HOME` 下的桌面版和 CLI,或者回滚到旧构建——请把每一侧都升到 0.3.2 或更新版本。已经丢掉的字段 Kiki 不会替你补回来:那条条目会显示**未记录**,要填回去只能依据当初的指令或资料,把依据和核对条件重新记一遍。
9
+ :::
6
10
 
7
11
  ## 智能体记住什么
8
12
 
9
- 记忆不是对话记录,也不是缓存。它是那一点点你不希望每次重新解释的长期事实:你的代码希望怎么被审、上周核实过的哪个项目事实、参考资料在哪。任务进展属于智能体的工作笔记,不属于这里。
13
+ 记忆不是对话记录,也不是缓存,而是会话结束时会丢掉的那一小撮长期事实;任务进展属于 Agent 的工作笔记。一条条目只讲一个主体,放在一个位置:一句你以后还认得出的标题,加上**完整**的当前内容,包括决定它何时生效的条件。Agent 是整篇替换内容,而不是往上追加;更正过程和被淘汰的旧值留在改动理由里,不留在规则正文里。条目正文上限 1,500 字符,一个范围同时容纳 300 条生效条目;超过任一上限,Agent 会合并到已有条目,而不是另起一条。容量已满时,只要最终生效数量不增加,仍可替代旧的生效条目;待审提议在你批准时会重新核算。
14
+
15
+ Agent 用 `MemoryWrite` 写,用 `MemorySearch` 和 `MemoryRead` 读。搜索支持部分词命中,也支持不加空格的中文短语。原生 subagent 默认拿到两个只读工具,`MemoryWrite` 始终只给 main agent。
16
+
17
+ 搜索分两种模式。默认按主体、标题或别名检索,返回排序后的 8 条一页;`mode: "list"` 不带 query,按页浏览清单,每页 20 条。两种模式都会说明实际查了哪些范围和状态、结果是否完整、有没有记录被跳过或读不出来。cursor 可以接续每次扫描预算之后的内容;即使准备页为空,只要 `exhausted` 为 false,就应继续。排序仅针对每个有界源片段,不是剩余全部条目的全局相关性排名。检索片段最多 200 字符,**会省略条件**——要依赖某条记忆、合并它或替换它之前,先完整读出来;搜不到只说明没有条目用到这些词。
18
+
19
+ main agent 的 `TodoList` 笔记可以在 `directives` 和 `decided` 里用条目 id 引用记忆,比如 `[m_id]`。压缩时,交接文本会带上每条被引用条目的当前标题、跟随替代条目,并把已归档的条目标为已撤回。
20
+
21
+ ## 依据与有效性
22
+
23
+ 一条条目可以记录关于自己的两件事,它们都会改变你该怎么看这条记忆。
24
+
25
+ **内容依据(basis)**说明内容从哪来:`human`(你要求或接受的)、`observed`(可核查的材料或观察)、`derived`(Kiki 自己的推断或转述),或 `unknown`。详情页会把每一种写成人话,并列出背后的说明和来源定位。早期条目没有记录依据时显示**未记录**——这是记录本身的缺口,不是对内容的判断。等你手上有了可以核对的材料,可以让 Kiki 为那条记忆补记依据和复核条件;这两个字段由记忆工具写入,**/memory** 页上的编辑器不提供输入框。Kiki 不会凭空编一个,也不会因为写入恰好发生在你的轮次里就把一条内容算成你亲口说的。
10
26
 
11
- 智能体用 `MemoryWrite` 写记忆,用 `MemorySearch` 和 `MemoryRead` 读回来。搜索支持部分词命中,也支持不加空格的中文短语。原生 subagent 默认就能用只读的 `MemorySearch` 和 `MemoryRead`;`MemoryWrite` 始终只给主智能体。
27
+ **有效性(validity)**说明依赖一个会变的事实之前要核什么。它带一个 `check` 写明该验证什么,可以再带一个 `until` 时间戳。带 check 的条目显示**依赖前:重新核对**;过了 `until` 的显示**已过期**,条目仍留在盘上作为历史线索,而不再是可以直接采信的前提;没有记录有效性的条目会显示「没有记录复核条件」。到了 `until` 也不会自动删除或归档任何东西。
12
28
 
13
- 主智能体的 `TodoList` 笔记可以在 `directives` 和 `decided` 里用条目 id 引用记忆,比如 `[m_id]`。压缩时,交接文本会带上每条被引用记忆的当前标题、跟随替代条目,并把已归档的条目标为已撤回。解析这些引用不会改写保存的笔记或冻结的系统提示词。
29
+ 在页面上修改条目的标题、类型或正文时,已记录的依据与复核条件会保留。依据或复核条件需要变化时,让 Kiki 同时更新它们。工具层的合同见[内置工具](/zh/reference/tools#记忆类)。
14
30
 
15
31
  ## 这一页让你选什么
16
32
 
@@ -20,40 +36,53 @@
20
36
  - **工作区(Workspace)**——单个项目的存储。
21
37
  - **角色(Persona)**——某个角色自己的存储,跟着这个角色跨 profile 和模型。
22
38
 
23
- 角色专属条目与其他角色隔离。默认情况下角色也能读共享的全局和工作区记忆;在角色卡上设 `memory.shared: []` 可以排除。工作区有自己的开关,可以跟随全局、单独开启或单独关闭。在某个工作区关掉记忆,已保存的条目仍然留在那里——只是智能体在那里不再读也不写。
39
+ 角色专属条目与其他角色隔离。默认情况下角色也能读共享的全局和工作区记忆;在角色卡上设 `memory.shared: []` 可以排除。工作区有自己的开关,可以跟随全局、单独开启或单独关闭——关掉之后已保存的条目仍然保留,只是 Agent 在那里不再读写。
24
40
 
25
- 这是这一页提供的选择,不等于「所有东西都只有三种存法」:角色除了整体记忆,还有按工作区分开的那一部分,所以一个跨项目的角色可以自己再记项目相关的事。
41
+ 角色还可以按单个工作区记笔记,所以一个跨项目的角色能自己保留项目相关的细节。
42
+
43
+ 没有显式指定范围的新条目会落到当前绑定的角色上,没有角色时落到工作区;选范围既不会移动已有条目,也不会让你看到别的工作区或角色的记忆。
26
44
 
27
45
  ### 角色
28
46
 
29
- 角色的记忆跟着身份而不是跟着项目。它会跟着这个角色跨 profile 和模型,所以换模型不会弄丢它知道的事。删除角色也会删掉它的角色记忆;如果清理失败,删除操作会报告错误并保留角色卡,方便重试。见[角色、Bot 与房间](/zh/customization/personas#记忆与角色卡)。
47
+ 角色的记忆跟着角色本身走,跨 profile 和模型都不会丢,所以换模型不会清空它知道的事。删除角色会一并删除它的记忆;清理失败时删除操作会报错并保留角色卡,方便你重试。见[角色、Bot 与房间](/zh/customization/personas#记忆与角色卡)。
30
48
 
31
49
  条目是有类型的,类型就是你要筛选的维度:**关于你**、**反馈**、**项目**、**参考**。条目还可以是**置顶**(排在最前)、**生效中**、**被更新条目替代**,或**已归档**。
32
50
 
51
+ ### 归档、替代与合并
52
+
53
+ 让一条条目退出是状态变化,不是删除:正文仍在,**撤销**也照样能撤销它。规则真的变了时 Agent 会**替代**原条目——写出一条有自己 id 的新条目,把旧的标为**被替代**,两边的历史都留得住。当新条目完整覆盖了旧内容,Agent 也可以把旧条目标为**已并入**保留的那一条(详情里可以直接点进去看);这个依赖会在真正执行归档那一刻重新核一遍,所以合并不会悄悄盖掉一条其替代者已经变了的规则。
54
+
33
55
  ## /memory 页
34
56
 
35
- 侧栏里 **/memory** 是常驻入口,无论记忆开着还是关着都在——关着的时候它是「怎么打开」的说明页,开着的时候它是管理台。你可以搜索条目、按类型筛选、显示或隐藏已归档的条目,点开一条就能读、改、置顶或删除。
57
+ 侧栏里 **/memory** 是常驻入口:记忆关着时它是「怎么打开」的说明,记忆开着时它就是管理台,可以搜索条目、按类型筛选、显示或隐藏已归档条目,点开一条就能读、改、置顶或删除。
36
58
 
37
- 工作区和角色都是可搜索的选择,因为任何一个列表都可能有几百项;选了一个会清掉另一个,选择会带在 `?workspace=` 或 `?persona=` 参数上,所以指向某个范围的链接仍然有效。
59
+ 工作区和角色都是可搜索的选择器,因为任一列表都可能有几百项。选了一个会清掉另一个,选择会带在 `?workspace=` 或 `?persona=` 参数上,所以指向某个范围的链接继续有效。
60
+
61
+ 列表和收件箱会先显示已经读到的条目,再自动续读,直到覆盖当前范围。个别记录读不出来时,可读条目仍然保留,页面显示具体诊断,不会把它当作空列表。续读失败或源内容变化时,点**重试**重新加载。列表只保留短预览;打开条目,或在收件箱点**查看**,即可读取完整正文。
38
62
 
39
63
  ### 改动历史与撤销
40
64
 
41
- 对条目的每一次改动都会留下记录,每条历史行打开后能看到改动前后内容,并提供针对这一次操作的**撤销**——删除也一样。所以删除确认框说的是「你可以撤销」,而不是声称删了就没了。
65
+ 对条目的每次改动都会留档。历史里的每一行都显示改动前后内容,并提供针对这一次操作的**撤销**,删除也一样——删除确认框说的正是「可以撤销」。
66
+
67
+ 你打开着这条的时候它被改过,保存会被拒绝并提示先重新加载,你的修改不会盖掉新版本。重新加载后再改一次。
42
68
 
43
- 如果你打开着这条的时候它被别人改了,保存会被拒绝并提示先重新加载,这样你的修改不会盖掉更新版本。重新加载条目,再改一次。
69
+ 保存时标题、正文、置顶状态和已记录的属性都没有变化,就不会产生新版本,也没有可撤销的操作,页面会显示**无变化**。把刚保存过的编辑再提交一次,正常的落点就在这里。只改依据或核对条件同样算一次变化,会留下自己的版本。
44
70
 
45
71
  ## 审批收件箱
46
72
 
47
73
  记忆审批有三种设置。默认的**自动**会把智能体提议的写入直接应用;改成**审查**,提议的更新或归档就会先等你处理。在**自动**下没有任何待处理内容,所以不会出现**收件箱**页签。
48
74
 
49
- 提议等待期间,原条目保持当前内容并继续生效。**保留**表示应用这条提议——更新会替换它所替代条目的正文,归档会归档那个条目。**丢弃**只去掉这条提议,原条目不动。
75
+ 提议等待期间,原条目保持当前内容并继续生效。**保留**表示应用这条提议——更新会替换它所替代条目的正文,归档会归档那个条目。**丢弃**只去掉这条提议,原条目不动。提议不是生效的指引:Agent 不会拿它当前提使用,而且 Agent 自己无法批准它,只有你可以。
50
76
 
51
77
  ## 关掉记忆
52
78
 
53
- **/memory** 页上有一个**使用记忆**开关,桌面版设置里也是同一处。关掉之后,智能体不再读写记忆。定期的长时记忆提醒是另一回事:只想停掉这些提醒、同时保留「新指令」和「压缩前」检查,在 `config.toml` 里设 `memory_maintenance = false`。它不会关掉记忆工具、审批或任务笔记——见[连续性提醒设置](/zh/configuration/config-files#连续性提醒设置)。
79
+ **/memory** 页上有一个**使用记忆**开关,桌面版设置里也是同一个。关掉之后,Agent 不再读写记忆。
80
+
81
+ 定期的长时记忆提醒是另一回事。只想停掉这些提醒、同时保留「新指令」和「压缩前」检查,在 `config.toml` 里设 `memory_maintenance = false`;记忆工具、审批和任务笔记照常可用。见[连续性提醒设置](/zh/configuration/config-files#连续性提醒设置)。
54
82
 
55
83
  ## 下一步
56
84
 
57
85
  - [角色、Bot 与房间](/zh/customization/personas#记忆与角色卡)——角色记忆怎么跟着角色走
58
86
  - [长时间的活](/zh/features/long-work#记忆让事实跨会话留下)——长活的其它部分
59
87
  - [内置工具](/zh/reference/tools#记忆类)——记忆工具的完整说明
88
+ - [服务端 API](/zh/server/rest-api#记忆)——同一份记忆的 HTTP 入口