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
@@ -28,27 +28,27 @@ Kiki 把每次对话持久化为一个「会话」,保留消息历史和元数
28
28
  请勿手动编辑 `sessions/` 目录下的文件,否则可能导致会话无法正常恢复。
29
29
  :::
30
30
 
31
- 桌面版与浏览器 GUI 的新会话选择与这个 CLI 目录分开存储。启用草稿持久化后,GUI 会在导航和浏览器刷新后记住已选的模型与思考力度,以及工作区、工作目录和 Agent 配置档案(profile)。会话继承的模型与本地覆盖是两回事:只修改本地思考力度不会静默替换当前会话继承的模型。设置里的「输入框 → 保留输入草稿」开关控制这些选择和每个会话的草稿文本是否写入当前浏览器;关闭后会清掉已保存的内容。已打开页面里尚未发送的输入不受影响;刷新或重启后就不再恢复。
32
-
33
- > 以上两段 GUI 行为与 CLI 用户无关,CLI 用户可以跳过。
31
+ 桌面版和浏览器 GUI 可以记住你为新会话选择的模型、思考力度、工作区、工作目录和配置档案(profile),导航和刷新后仍然保留。设置里的「输入框 → 保留输入草稿」控制这件事,关掉会清空已保存的内容。当前打开的页面里未发送的输入不受影响,但下次刷新就不会再恢复了。这部分内容与上面的会话文件分开存放。
34
32
 
35
33
  ## 任务看板
36
34
 
37
- 从 main agent 右侧面板底部的固定入口打开任务看板。看板完全内置于 Kiki,无需安装任何额外组件。卡片用来组织需求条目以及它们与各会话的关联,并不代表正在执行的 Agent;各 Agent 的 Todo 列表保持独立。
35
+ 任务看板在 main agent 右侧面板底部的固定入口。卡片记录需求条目及其关联的会话,Agent 自己的 Todo 列表与之独立。
38
36
 
39
- 卡片会逐页显示;同步期间,计数和搜索结果只覆盖当前已加载的卡片。切换工作区范围或关闭看板会取消后续分页加载。在新建卡片、卡片详情或确认弹窗中,`Tab` 只在最上层弹窗内移动,`Esc` 只关闭该弹窗,并将焦点归还给打开它的控件。保存或删除请求尚未完成时,不能关闭对应弹窗。
37
+ 卡片逐页加载,所以同步期间的计数和搜索结果只覆盖已加载的部分。切换工作区范围或关闭看板会停止继续加载。在新建卡片、卡片详情或确认弹窗中,`Tab` 只在最上层弹窗内移动,`Esc` 只关闭这一层并把焦点还给打开它的控件。保存或删除请求还在进行时,弹窗无法关闭。
40
38
 
41
- 创建或编辑卡片前,请先信任工作区。看板的存储位置由 `taskBoard.storage` 设置控制:`auto` 优先复用兼容的工作区存储,否则使用 `sessions/<workspaceId>/.board`;`global` 使用 Kiki home 下的 `boards` 目录;`fixed` 使用你指定的绝对路径或相对工作区的路径。路径不会作为脚本执行。预览不会创建目录,也不会授予写入权限;请先保存配置,再在该位置创建卡片。非空且不兼容的目录会被拒绝。
39
+ 在该工作区创建或编辑卡片前请先信任它。存储位置由 `taskBoard.storage` 决定:`auto` 优先复用兼容的工作区存储,否则用 `sessions/<workspaceId>/.board`;`global` 用 Kiki home 下的 `boards` 目录;`fixed` 用你给出的绝对路径或相对工作区的路径。预览路径不会创建目录,也不会授予写权限,请先保存设置再在那里创建。已存在但无法存放看板的目录会被拒绝。
42
40
 
43
- 更改存储设置不会迁移旧卡片,已有卡片仍引用原来的存储位置。如果同一张卡片已被其他编辑抢先保存,重新读取后再重试;编辑失败时草稿会保留。main agent 可以在正常工具策略和审批规则下用 `BoardRead`、`BoardWrite` 两个工具读写看板。subagent 保留自己的 `TodoList`,看板工具需要[显式授权](../configuration/config-files.md#subagent)。Plan 模式下不能使用 `BoardWrite`。
41
+ 改设置不会搬迁旧卡片,它们仍指向原来的存储位置。若有人抢先保存了同一张卡片,重新加载后再试,编辑失败时草稿会保留。main agent 在正常工具策略和审批规则下用 `BoardRead`、`BoardWrite` 读写看板;subagent 使用看板工具需要[显式授权](../configuration/config-files.md#subagent),它们仍保留自己的 `TodoList`;Plan 模式不能使用 `BoardWrite`。
44
42
 
45
- 压缩上下文时,交接文本会列出最多五张与当前会话关联的卡片,包含 ID、标题和状态。这份只读列表要求看板功能和 `BoardRead` 均已启用;读取失败或超过 500 毫秒时会省略。Todo 列表变化或 Agent 运行结束都不会自动更新卡片状态。
43
+ 压缩上下文时,交接文本会列出最多五张与当前会话关联的卡片,含 ID、标题和状态。这份只读列表需要看板功能和 `BoardRead` 都已启用,读取失败或超过 500 毫秒就不列出。卡片状态不会随 Todo 列表或 Agent 运行结束自动更新。
46
44
 
47
45
  ## 启动与恢复会话
48
46
 
49
- 在桌面版或浏览器的「新会话」页面,可以使用已有工作区、填写项目的绝对目录,或选择「自动创建工作区」。还没有已注册工作区时,默认使用自动创建。首次发送时,Kiki 会在 `$KIKI_HOME/workspaces/`(默认 `~/.kiki/workspaces/`)下新建目录,注册为工作区,并在其中开启会话。如果明确选中的工作区后来被删除,该选择会保持无效,直到重新选择其他工作区或自动创建;Kiki 不会悄悄换用其他已有工作区。目录结构和清理注意事项见[数据路径](../configuration/data-locations.md#目录结构)。
47
+ 桌面版或浏览器的「新会话」页面里,可以选已有工作区、填写项目的绝对目录,或选择「自动创建工作区」(没有已注册工作区时默认选中)。选自动创建时,首次发送会在 `$KIKI_HOME/workspaces/`(默认 `~/.kiki/workspaces/`)下新建目录、注册为工作区,并在那里开启会话。如果明确选择的工作区后来被删除,该选项会一直保持无效,直到你换一个或改回自动创建,Kiki 不会悄悄打开另一个工作区。目录结构和清理影响见[数据路径](../configuration/data-locations.md#目录结构)。
48
+
49
+ 打开已保存的会话只读取历史,不会唤醒尚未运行的 Agent;选择 subagent 只读取它自己的历史,不加载 main agent 的对话。发送、编辑或重新生成消息,回答审批或提问,以及 steer 提示词时才会激活会话。激活失败则不会发送,历史仍可阅读。浏览会话不会停止其中正在运行的工作。
50
50
 
51
- 在桌面版或浏览器中打开已保存的会话,只会读取历史,不会启动尚未运行的 Agent。选择子 Agent 时,只读取它自己的历史,不加载主 Agent 的对话。发送、编辑或重新生成消息,回答审批或问题,以及 steer 提示词时,会先激活会话。激活失败时不会发送该动作,历史仍可阅读。只读浏览不会停止已经运行的工作。
51
+ GUI 首先显示少量最新消息,向上滚动时自动加载相邻的更早一页;仅保持对话打开,不会在后台读完整段历史。可见消息和展开的条目按需加载详情。跳转到旧消息或返回已保存的阅读位置时,会持续读取直到找到目标;自己滚动会取消旧跳转。滚动到旧消息时,界面可能重新读取其预览,以控制阅读缓存占用。离开对话会取消待完成的读取,不会停止 Agent 工作。真实读取失败时保留已经加载的消息并提供重试;[阅读超时](./settings.md#超时)控制一次读取最多等待多久。
52
52
 
53
53
  每次直接运行 `kiki` 都会创建新会话。以下方式可以恢复历史会话:
54
54
 
@@ -74,7 +74,7 @@ kiki --session
74
74
  `--continue` 与 `--session` 互斥,不能同时使用。
75
75
  :::
76
76
 
77
- 在 GUI 中,已保存但不再可用的模型、Agent 配置或思考强度会保留原值,并显示诊断信息。发送前请选择有效值;GUI 不会静默替换模型或 Agent 配置。列表还在加载或目录请求失败时出现的报错,并不表示你已保存的选择有问题。
77
+ GUI 中,已保存但不再可用的模型、配置档案或思考力度会保留原值并显示诊断信息,发送前请选一个有效值,界面不会悄悄换成别的模型或配置档案。列表还在加载或目录请求失败时的报错,不代表你保存的选择有问题。
78
78
 
79
79
  ## 在 TUI 中切换会话
80
80
 
@@ -87,19 +87,25 @@ kiki --session
87
87
 
88
88
  ## GUI 会话恢复与活动历史
89
89
 
90
- 左栏里,由线程创建的线程通常嵌套在创建者下面。想让它独立显示为顶层条目,打开该行菜单,选择「恢复顶层显示」;选择「恢复嵌套显示」即可返回。这只改变显示层级,不改变从属关系。在同一浏览器或桌面空间、同一服务器连接中,刷新或重启后仍会保留选择。按最近活动排序时,每个线程只使用自己的活动时间;子线程有活动不会把父线程排到其他线程前面。
90
+ 左栏里,由另一个线程创建的线程默认嵌套在创建者下面。在该行的菜单里选「恢复顶层显示」可以把它提为独立顶层条目,选「恢复嵌套显示」放回去。这只影响显示,从属关系不变,同一浏览器或桌面空间内刷新、重启后仍保留。同一个菜单里还有「复制线程链接」可以拿到该线程的链接,以及「添加到当前对话」把它的引用放进你现在打开的这段对话。
91
+
92
+ 左栏按线程自身的更新时间排序。提升到顶层后,线程按自己的时间独立排序、分组:它有新活动不会把父线程往前带,父线程有新活动也不会带着它一起移动。保持嵌套的线程仍跟随创建者的行显示。
93
+
94
+ 会话恢复失败时,GUI 保留已经载入的历史并显示错误,有 request ID 时一并显示。同区域的「立即重试」会重新执行恢复。
91
95
 
92
- 会话恢复失败时,GUI 会保留已经载入的历史,并显示错误;有 request ID 时也会一并显示。同一区域有一个「立即重试」按钮,直接调用恢复操作。
96
+ 通过 Kiki 修改排队提示词的正文或投递时机后,恢复仍能识别同一条提示词,不需要还原原文或重复发送。若轮次已执行完但存储暂时不可写,Kiki 会短暂重试保存同一结果,不重新执行轮次。较长故障会让轮次继续等待保存;存储恢复可写后,提交下一条提示词会先重试原结果的保存,再继续工作。等待保存不代表结果已经落盘。
93
97
 
94
- 已解决的问题、审批、活动标记和后台任务完成通知会以紧凑条目的形式保留在时间线中。已完成的工作可能收在「已处理」行下,展开后可查看各条记录。展开「问题已回答」,可以读到完整问题和已保存的回答;已忽略、已过期的问题也能展开查看原问题和选项。已完成任务的输出仍可在任务历史中查找。会话视图中的文件引用可以预览、打开,或显示所在文件夹;预览按需生成,并不是原件,原件始终可以打开或下载。
98
+ 已解决的问题、审批、标记和已结束的后台任务会以紧凑条目留在时间线里。已完成的工作可以收在「已处理」下,展开看每一条。展开提问可读完整问题,已回答的还能看到保存的回答,已忽略或已过期的问题则显示当时的选项。已完成任务的输出仍在任务历史里。文件引用可以预览、打开或在文件夹中显示,预览按需生成,原件随时可以打开或下载。
95
99
 
96
- 文件预览中的 Markdown 默认显示渲染结果;切换到「源码」可查看文本,桌面版提供写入通道时也可编辑。渲染视图支持表格、数学公式、图表和相对 Markdown 文件路径的图片。文件超过约 512 KB 时,初始视图只显示开头且不可编辑;在渲染视图或「源码」视图点「加载完整文件」均可查看全文,但不会因此开放编辑。
100
+ 发送的附件和工具结果里的图片,滚动到可见位置就会自动显示,不需要点一下才加载。点一下是看原图;真的加载失败时会给出重试。查看器里保留了它自己的**下载**,图片下面不再重复放下载链接。
101
+
102
+ Markdown 预览默认是渲染结果,切到「源码」可以看文本,桌面版有写入通道时也能在那里编辑。渲染视图支持表格、公式、图表,以及相对 Markdown 文件链接的图片。文件超过约 512 KB 时首屏先显示开头,其余部分在后台继续加载;到这个大小仍然是只读的,也就是说可以用「源码」阅读,但编辑要留给更小的文件。后台读取失败时,视图会说明并提供重试。
97
103
 
98
104
  ## GUI 用量统计
99
105
 
100
- 不带筛选条件打开「用量」时,默认查看浏览器本地时间的当天。URL 中显式指定的时间范围优先生效;先前保存的全历史视图不会覆盖这个默认值。跨过午夜或浏览器时区偏移改变时,页面会刷新日期边界。
106
+ 打开「用量」默认看浏览器本地时间的当天。URL 里指定的时间范围优先,已保存的全历史视图不会覆盖这个默认。跨过午夜或浏览器时区偏移变化时,页面会更新日期边界。
101
107
 
102
- Token 用量和估算费用分别标记完整性。供应商未返回用量时,Kiki 会标为未知,而不是当作真实零用量。已知与未知记录混合时,显示已记录的小计并提示计量不完整。旧零记录若没有保存计量来源,就仍存在歧义,Kiki 不会据此反推缺失的 token。模型价格缺失影响费用估算,不会抹掉已记录的 token 数。「数据可信度」区域会将这些情况与时间范围内无记录、请求失败区分开来。
108
+ Token 用量与估算费用各有自己的完整性标记。供应商没返回用量时,Kiki 标为未知而不是当作 0;已知与未知混合时显示已记录的小计并提示计量不完整。缺少模型价格只影响费用估算,不影响已记录的 token 数。「数据可信度」会把这些情况与范围内没有记录、请求失败区分开。
103
109
 
104
110
  ## 上下文压缩
105
111
 
@@ -115,19 +121,19 @@ Token 用量和估算费用分别标记完整性。供应商未返回用量时
115
121
  /compact 保留与数据库迁移相关的讨论
116
122
  ```
117
123
 
118
- 输入框下方的上下文用量表显示同样的数据,并让你直接调整压缩点;展开的详情卡里还有续上下文策略——压缩(默认)、清空重开(只从智能体的工作笔记重启)和自动。终端里用 `/autocompact` 查看或修改压缩点。你希望熬过压缩继续留下来的事实,更适合放在[记忆](./memory.md)里,那里的东西比会话活得更久。
124
+ Agent 正在干活时也可以请求压缩。Kiki 会把请求排队,等当前这次响应和它调用的工具都结束就执行,不用等整个轮次走完。已经有手动压缩在排队或执行时再请求不会有任何效果——同一次只会有一条。上下文用量表上方那一行写明你在看的是哪一次、进行到哪一步:**手动压缩已排队**,然后是**手动压缩中**,最后是**手动压缩已完成**;压缩不了就是**手动压缩失败**。上下文到顶自动触发的那次读起来一样,只是把「手动」换成「自动」。
125
+
126
+ 输入框下方的上下文用量表显示同样的数字,可以直接调整压缩点,展开的详情卡里还有续上下文策略:压缩、清空重开(只从 Agent 的工作笔记重启)和自动(主智能体内置默认:工作笔记足以安全覆盖当前工作时重启,否则生成摘要)。终端里用 `/autocompact` 查看或移动压缩点。必须熬过压缩的事实更适合放进[记忆](./memory.md),它比会话活得久。
119
127
 
120
128
  ## 派生会话
121
129
 
122
- 想在不破坏当前对话的前提下尝试新思路,使用 `/fork`:
130
+ `/fork` 复制当前会话,方便你试另一条路而不打断现在这个:
123
131
 
124
132
  ```sh
125
133
  /fork
126
134
  ```
127
135
 
128
- fork 后你仍停留在原会话,对话不受影响、可以直接继续;派生出的副本与原会话彼此独立,可以随时通过 `/sessions` 切换过去。已保存的 `/goal` 不会复制到派生会话。如果你想在派生会话中进行自主 goal 工作,需要在那里开始一个新 goal。
129
-
130
- fork 完成后,CLI 会打印一条可直接运行的 `kiki --resume` 命令(并自动复制到剪贴板),方便你在新终端进程中直接进入派生会话。
136
+ 你仍留在原会话里继续工作,副本彼此独立,随时可以用 `/sessions` 切过去。已保存的 `/goal` 不会带过去,想在副本里做 goal 工作就重新设一个。完整复制、按轮次截取和创建子会话都不会带走定时任务。原会话的计划和此前已创建的副本保持不变;要在新会话定时执行,请单独创建任务。fork 后 CLI 会打印一条可直接运行的 `kiki --resume` 命令,同时复制到剪贴板,便于在新终端里打开副本。
131
137
 
132
138
  ## 导出会话
133
139
 
@@ -143,14 +149,14 @@ kiki export <sessionId>
143
149
  kiki export <sessionId> -o ~/Desktop/my-session.zip
144
150
  ```
145
151
 
146
- 导出包含会话目录下的所有文件,包括诊断日志。全局诊断日志(`~/.kiki/logs/kimi-code.log`,文件名沿用项目早期命名,就是 Kiki 的全局日志)默认也会打包;如不需要,加 `--no-include-global-log` 排除。
152
+ 导出包含会话目录下的全部文件(含诊断日志),以及全局日志 `~/.kiki/logs/kimi-code.log`(文件名沿用项目早期的命名)。不需要它就加 `--no-include-global-log`。
147
153
 
148
154
  也可以在 TUI 内导出,无需离开交互界面:
149
155
 
150
156
  - **`/export-debug-zip`**:产生与 `kiki export` 相同的调试 ZIP。
151
157
  - **`/export-md`**(别名 `/export`):导出为人类可读的 Markdown 对话记录,适合分享或存档。可选接收路径参数;不带参数时写入工作目录下的 `kimi-export-<short-id>-<timestamp>.md`。
152
158
 
153
- 在 web UI 中,`/export` 会把当前会话下载为诊断 ZIP。压缩包包含持久化的会话数据、诊断日志,以及记录浏览器关键事件且大小有上限、只含元数据的 `logs/kimi-web.jsonl`;提示词正文、WebSocket 内容和 console 参数不会写入这份浏览器日志。这里的 web 命令与上面的 TUI `/export` 别名行为不同。
159
+ web UI 中 `/export` 会把当前会话下载为诊断 ZIP:包含持久化的会话数据、诊断日志,以及只含元数据、大小有上限的 `logs/kimi-web.jsonl`(记录浏览器关键事件)。提示词正文、WebSocket 内容和 console 参数不会写进这份浏览器日志。这条 web 命令与上面 TUI 的 `/export` 别名不是一回事。
154
160
 
155
161
  ::: tip 提示
156
162
  导出文件可能包含代码、命令输出和路径等敏感信息,分享前请先确认内容。
@@ -41,7 +41,7 @@ Kiki 桌面版在**设置**对话框里提供偏好设置,在侧栏的「用
41
41
  - **登录未完成**:流程结束但没有拿到凭据——你拒绝了、验证码过期,或中途失败。一行说明是哪一种,连接保持服务端如实报告的样子,不会留下半成品。
42
42
  - **等待你确认**:登录正在进行,显示验证码、**打开验证页**、有效剩余时间,以及**取消登录**。
43
43
 
44
- 登录完成后,该账号的模型由服务端加入目录。**可用模型**才是"能用哪些模型"的权威;这里的一行报告的是连接与其登录状态,不代表当下可选的模型。
44
+ 登录完成后,该账号的模型由服务端加入目录。要确认实际能用的模型,看 **可用模型**;这里的一行只报告连接与其登录状态。
45
45
 
46
46
  在 Kiki 中退出只影响 Kiki。服务方保留你自己的订阅记录,重新登录会连回同一个账号。
47
47
 
@@ -51,50 +51,79 @@ Kiki 桌面版在**设置**对话框里提供偏好设置,在侧栏的「用
51
51
 
52
52
  "本机"指 Kiki **服务端**所在的机器。通常就是你正在看的这台;当它不是时,**到服务端的其它目录中查找**可以指定要读取的目录。
53
53
 
54
- 顺序是刻意的。**检测本机**先报告另一侧是哪个账号、凭据保存在哪里(文件、系统钥匙串或加密存储),之后才会出现**使用这个登录**,并且它带着刚展示给你的那个账号——所以期间被换掉的凭据会被拒绝,而不是悄悄接上一个。凭据临近过期不算问题:它照样可用,Kiki 会自行续期。
54
+ **检测本机**会报告另一侧是哪个账号、凭据保存在哪里(文件、系统钥匙串或加密存储),随后出现的**使用这个登录**只接入刚报告的那个账号。期间被换掉的凭据会被拒绝,临近过期的凭据则直接使用并由 Kiki 续期。
55
55
 
56
56
  当本机的凭据无法使用时,页面会给出你能据此行动的原因:没有该服务的账号、已退出、存放在读不到的位置,或属于另一个账号——并且不提供任何接入动作。
57
57
 
58
58
  **停止使用**会放弃这个连接对本机登录的使用。它移除 Kiki 的引用和由此写入的模型;登录本身仍然保留在原处,另一个 app 不受影响。
59
59
 
60
+ ### 超时
61
+
62
+ **设置 → 模型与供应商 → 连接**上有两个各自独立的超时,管的不是同一类请求:
63
+
64
+ - **请求超时**——本界面向 Kiki 服务端发起的普通请求的默认截止时间。
65
+ - **阅读超时**——读取会话历史或正文时,最多等待多久才放弃。默认值为 `0`,即不设总截止:会话再大、加载再慢也一直等。如果你更希望卡住的读取尽快失败,就设一个秒数。
66
+
67
+ 阅读超时只约束「等多久」,不限制「能读多少」。改动后的值对**下一次**读取生效——不会中断已经在跑的读取,也不会触发重连。除非你确实想要一个上限,否则保持 `0`。这两项是界面设置,不是 `config.toml` 里的键;决定多少历史留在服务端内存里的是另一套预算,见 [`transcript_memory`](../configuration/config-files.md#transcript-memory)。
68
+
60
69
  ## 关于与更新
61
70
 
62
- **设置 → 关于与更新** 显示当前版本和更新通道。选择 Stable 或 Beta 并手动检查更新;有更新时,Kiki 会先展示版本号和发布说明再请求确认。见 [Kiki 桌面版](../getting-started/desktop-app.md#更新)。
71
+ **设置 → 关于与更新** 显示当前版本,更新设置都在这里。**更新通道**选择 Stable 或 Beta,自动检查和手动检查都按这里的通道走。**自动检查更新**开关控制每天那次检查,关掉之后就只有点**检查更新**才会检查。**发现新版本时**决定那时怎么做:**通知我**弹出对话框,显示版本号和一小段变更摘要并等你决定;**下载并安装**则自己开始安装,不走那个对话框。两种模式都会在关闭还有运行中任务的空间之前先问你。
72
+
73
+ 对话框的三个选择会被记住,不会每次重来:**明天再提醒我** 24 小时后再问,**跳过此版本**只让该通道的这个版本安静下来,两个方式下更新的版本都还会提示。安装前 Kiki 会重新核一遍通道和版本,底下已经变了的更新提议会被拒绝。某个选择没能保存时,对话框会留在原地请你重试。见 [Kiki 桌面版](../getting-started/desktop-app.md#更新)。
63
74
 
64
75
  ## 智能体
65
76
 
66
77
  **设置 → 智能体** 选择一个工作区,查看其默认主 Agent 配置档案(profile)、生效来源和 subagent 能力。文件型 profile 可在其显示的来源处直接编辑。**设置 → 智能体 → 提示词字段** 编辑 `config.toml` 中的 `[prompt]` 提示词字段覆写段;卡片默认折叠——编辑前先展开。见 [Agent 与 subagent](../customization/agents.md#派遣能力可见性) 和[提示词字段与覆写](../customization/prompt-fields.md)。
67
78
 
68
- 长期记忆维护提醒帮助保留对未来任务有用的变化;没有实质变化就不写。若只想关闭周期性提醒,保留新的持续指示及压缩前检查,可在 `config.toml` 中设置 `memory_maintenance = false`,不会关闭记忆工具、审批或任务笔记。配置段与启用前提见[连续性提醒设置](../configuration/config-files.md#连续性提醒设置)。
79
+ 长期记忆维护提醒按自己的周期运行。若只想停掉这些提醒、保留新的持续指示和压缩前检查,在 `config.toml` 中设置 `memory_maintenance = false`;记忆工具、审批和任务笔记照常可用。见[连续性提醒设置](../configuration/config-files.md#连续性提醒设置)。
80
+
81
+ ## 通知与消息
82
+
83
+ **设置 → 通知与消息 → 系统通知**里的**允许系统通知**控制本设备的会话通知和跨空间待处理提醒。默认开启的**对话结束后通知**沿用 Kiki 在后台或隐藏时的通知途径。这里的结束是本次交办工作已收尾:主智能体已回复完毕,有限后台任务与 subagent 已收尾,结果和自动续跑也已处理完。仅一轮结束不会通知。常驻服务器、监听器和未来定时任务不会一直阻止通知;等待审批、提问、失败和用户停止不算完成。浏览器使用需要允许本站发送通知;若已拒绝,可在地址栏的网站权限中恢复。
84
+
85
+ 手机或团队群的已配置通道,在各通道里开启**对话结束后通知**,采用同一工作收尾判定。**发送通知**仍是这些通道单独的总开关;之前关闭的总开关、连接和通道保持关闭。新配置默认开启,**跳过短任务**默认 `0` 秒,短答也能通知;提高此值只筛掉通道中的短任务通知,不改变完成的含义。系统通知开关保存在当前设备,通道规则保存在所连服务端;启动或重连不会补发旧的完成通知。
69
86
 
70
87
  ## 搜索与抓取
71
88
 
72
89
  **设置 → 搜索与抓取 → 概览与配置来源** 查看内置搜索与抓取模块(`WebSearch` 和 `FetchURL` 两个工具背后的能力)当前生效的配置来源,并控制服务器是否复用本机的搜索配置。对应的配置位于 `config.toml` —— 见[配置文件](../configuration/config-files.md#nb-search)。
73
90
 
91
+ 同一处的**高级与诊断**标签页里有一张**全文索引**卡片,用于搜索你自己的会话历史。首次索引在后台建立,优先处理最近的会话,卡片会显示已完成的数量。如果索引因可处理的原因停下,这张卡片会出现**重启索引程序**按钮;索引被配置关闭或不可用时则没有可重启的对象,卡片直接说明原因。
92
+
74
93
  ## 浏览器控制
75
94
 
76
- **设置 → 浏览器控制**(`/settings/browser-control`)管理已保存的浏览器连接。一条连接就是一个可控的浏览器位置;打开页面只读取和编辑它们,不会启动浏览器。
95
+ **设置 → 浏览器控制**(`/settings/browser-control`)的第一屏是三个具名的接入方式。你挑一个,配置它,连接它——通常两步。
96
+
97
+ - **Kimi 浏览器扩展**:驱动你自己在用的浏览器,带着你自己的登录状态。Kiki 装插件和本地桥接程序;扩展要去浏览器商店加一次,那一步只能由你点,Kiki 不会替你越过。
98
+ - **独立浏览器**:由 Kiki 启动并维护自己的浏览器,登录状态独立,不碰你日常用的浏览器。**一键配置**下载并校验所需组件,之后 **连接** 启动它。
99
+ - **Codex / ChatGPT 浏览器扩展**:由 Codex / ChatGPT 桌面端控制,不由 Kiki 安装或连接;这一项只给出官方说明链接。
100
+
101
+ 每一项都写着自己的状态和**还差哪一步**,并把下一步放在同一行:缺组件时是**一键配置**,只差商店授权时是商店链接,只差开关时是**开启浏览器控制**。Kiki 能装的都装好之后,这一项就不再催你安装,而是告诉你可以连了。检测器自己的话(哪些环节只是「报告」而非「验证」)收在**此服务检测了什么**折叠里,不占第一屏。
102
+
103
+ **开启浏览器控制**就是同一个同意动作,就在本页。只差这个开关时,那一次确认会补上还缺的组件(组件已齐则一个都不装)、启用插件,并为这台服务开启浏览器控制——三项在确认前都会写明。浏览器控制默认关闭,所以这一步就是把它打开的地方,不必去别的页面找开关。
77
104
 
78
- 每条连接有固定 id、显示名称,以及两种指向不同目标的接法之一:
105
+ 如果本页之外有东西把浏览器控制关着——某个环境变量,或该主机上的运行时覆盖——这里任何操作都改不动。该项会直说这一点,而不是给一个按了也没用的按钮;**看是什么把它关着**会指出具体的覆盖来源。
79
106
 
80
- - **独立 Agent 浏览器(Profile):** Kiki 在服务机上启动并管理它自己的浏览器,使用它自己的 profile(登录态)——不会复制你日常浏览器的 cookie。可选:改用已安装的 Chrome 或 Edge,以及**显示浏览器窗口**(默认关闭,即无头运行)。
81
- - **已有或远端浏览器(CDP):** 附着到已经开放 CDP 地址的浏览器,不新启动任何东西。该地址指向浏览器所在的那台机器,可能是另一台机器。
107
+ **高级:编辑已有连接,或接上一个你自己已经开着的浏览器**折叠区里是手填的部分:每条连接有固定 id、显示名称、启用开关,以及两种指向不同目标的接法之一——
82
108
 
83
- 驱动,以及 Kiki 启动的任何浏览器,都运行在 Kiki 服务机上,而不是显示这个窗口的设备上。**检查组件**会启动受管驱动并读取其会话与标签状态;**检查连接**与 CDP 端点握手并列出目标。两者都不会打开页面。**启动浏览器**与**附着浏览器**才是单独的连接动作。保存只写入配置,并会先结束该连接当前正在运行的会话。**断开**释放该连接;浏览器会怎样取决于它是谁启动的:借用的 CDP 浏览器保留,Kiki 启动的实例会关闭。
109
+ - **独立 Agent 浏览器(Profile)**:Kiki 在服务机上启动并管理它自己的浏览器,使用它自己的 profile(登录态),不会复制你日常浏览器的 cookie。可选:改用已安装的 Chrome 或 Edge,以及**显示浏览器窗口**(默认关闭,即无头运行)。
110
+ - **已有或远端浏览器(CDP)**:附着到已经开放 CDP 地址的浏览器,不新启动任何东西。该地址指向浏览器所在的那台机器,可能是另一台机器。
84
111
 
85
- Agent 通过[浏览器工具](../reference/tools.md#浏览器类)使用这些连接,并且只按连接 id 指定,不按显示名称。**新会话默认浏览器**只对新创建的会话生效;关闭一条连接不会自动换上另一条。
112
+ 每条连接都可以单独**检查**、**连接**、**断开控制**。检查会启动受管驱动并读取会话与标签状态,CDP 连接则与端点握手并列出目标,两者都不会打开页面。保存只写配置,并会先结束该连接当前正在运行的会话。**断开**释放该连接:借用的 CDP 浏览器保留,Kiki 启动的实例会关闭。**新会话默认浏览器**只对新创建的会话生效;关闭一条连接不会自动换上另一条。
86
113
 
87
- 运行浏览器属于开发候选功能,默认关闭。连接前需在**设置 → 开发者 → 实验性**中打开 `native_browser`,或在 [`[experimental]`](../configuration/config-files.md#experimental) 中设置。未开启时,页面仍可读取和编辑已保存的连接,但连接会被拒绝,Agent 也拿不到浏览器工具。连接本身保存在 [`[browser_control]`](../configuration/config-files.md#browser-control)。
114
+ 驱动,以及 Kiki 启动的任何浏览器,都运行在 Kiki 服务机上,而不是显示这个窗口的设备上;组件存放在运行它们那台机器的 `<Kiki home>/browser/resources` 下。
115
+
116
+ Agent 通过[浏览器工具](../reference/tools.md#浏览器类)使用这些连接,并且只按连接 id 指定,不按显示名称。开关与连接本身分别保存在 [`[experimental]`](../configuration/config-files.md#experimental) 和 [`[browser_control]`](../configuration/config-files.md#browser-control)。
88
117
 
89
118
  ## 电脑控制
90
119
 
91
120
  **设置 → 电脑控制**通过一个固定版本的开源执行器,控制运行 Kiki 服务的那台机器的桌面。默认没有安装或配置任何东西,所以页面初始为空。
92
121
 
93
- **安装执行器**会下载并校验该固定发行物,然后注册一条名为 `kiki-computer` 的全局 MCP 连接(驱动路径加上 `mcp` 参数)。**已安装**只表示执行器文件校验通过,不代表此刻正在控制什么;桌面访问是安装不执行的另一项独立检查。页面会说明将被控制的机器:**Kiki 服务机**就是当前连接的服务,因此在远端或 SSH 连接下,桌面属于那台主机自己的图形会话。
122
+ **安装执行器**会下载并校验该发行物,然后注册一条名为 `kiki-computer` 的全局 MCP 连接(驱动路径加上 `mcp` 参数)。**已安装**只表示文件校验通过——不代表真的能控制桌面,安装过程也不会去检查这一点。页面会说明将被控制的机器:**Kiki 服务机**就是当前连接的服务,因此在远端或 SSH 连接下,桌面属于那台主机自己的图形会话。
94
123
 
95
- Agent 通过现有 MCP 机制与权限使用执行器自带的工具,Kiki 不另建第二套桌面工具——见 [MCP](../server/mcp.md)。固定版 Windows 执行器只观察主屏,自身没有显示器选择。macOS 上直接连接由调用进程承载桌面权限,需在驱动报告缺失的地方授予。
124
+ Agent 通过现有 MCP 机制与权限使用执行器自带的工具——见 [MCP](../server/mcp.md)。固定版 Windows 执行器只观察主屏,无法自行选择显示器。macOS 上桌面权限由调用进程承载,需要时在驱动报告缺失处授予。
96
125
 
97
- **停止控制**会结束本服务启动的 cua 进程,同时停用可编辑连接的配置。它不代表已无人控制该桌面:其他客户端或另一个 Kiki 实例可能仍在操作它。
126
+ **停止控制**会结束本服务启动的 cua 进程并停用可编辑连接的配置;其他客户端或另一个 Kiki 实例可能仍在操作该桌面。
98
127
 
99
128
  ## 输入框(Composer)
100
129
 
@@ -108,15 +137,13 @@ Agent 通过现有 MCP 机制与权限使用执行器自带的工具,Kiki 不
108
137
 
109
138
  ### 提示词生效详情
110
139
 
111
- 在会话标题栏打开 **⋯ → 提示词生效详情**。抽屉独立于右侧栏,窄屏也能打开。它显示当前 Agent 身份、profile、模型与执行器,提示词通道及来源顺序,字段覆写状态与原因,文件位置和 cognition anchor 的作用域。最近一次实际请求另列为证据:尚未发出请求时,详情不会把显示的组合当成已发送内容。
140
+ 在会话标题栏打开 **⋯ → 提示词生效详情**。抽屉独立于右侧栏,窄屏也能打开,显示当前 Agent 身份、profile、模型与执行器,提示词通道及来源顺序,各字段覆写状态与原因,文件位置和 cognition anchor 的作用域。
112
141
 
113
- 绑定与磁盘版本有助于识别已变更的来源文件。需要重新加载会话提示词来源时,在会话空闲后使用[重建上下文](../customization/agents.md#重建会话上下文)。普通详情读取当前身份;**检查所有分支**是单独的显式操作,用来检查已配置的共用、主 Agent 与独立 Agent 提示词文件,不会激活其他分支或切换当前身份。
142
+ 绑定与磁盘版本有助于识别改动的来源文件。要真正重新加载会话的提示词来源,请在会话空闲后使用[重建上下文](../customization/agents.md#重建会话上下文)。**检查所有分支**是另一项操作,只查看已配置的共用、主 Agent 与独立 Agent 提示词文件,不切换当前身份。
114
143
 
115
144
  ### 驾驶舱
116
145
 
117
- 桌面宽度下,在右侧面板标题栏选择**标准 / 驾驶舱(Standard / Cockpit)**。驾驶舱临时扩宽右侧面板并接管预览空间,对话与输入框仍在主栏。
118
-
119
- 选择**标准**或**退出驾驶舱**,会恢复原来的预览内容、标签、草稿和宽度。退出驾驶舱后标准右侧面板仍打开,隐藏面板是另一项操作。打开文件、Agent 详情或 Skill 预览也会退出驾驶舱,恢复预览工作区。驾驶舱的临时宽度不会覆盖已保存的标准面板宽度。
146
+ 桌面宽度下,右侧面板标题栏的**标准 / 驾驶舱(Standard / Cockpit)**在常规宽度和加宽并接管预览区之间切换。两种状态下对话与输入框都留在主栏;选**标准**或**退出驾驶舱**会恢复原来的预览内容、标签、草稿和宽度。打开文件、Agent 详情或 Skill 预览同样会退出驾驶舱。
120
147
 
121
148
  ## Usage
122
149
 
@@ -126,14 +153,18 @@ Agent 通过现有 MCP 机制与权限使用执行器自带的工具,Kiki 不
126
153
  - **实时(Live):** 本服务所有会话的原生请求运行数与排队数。展开「请求详情」可看模型、供应商、角色维度,以及排队行的阻塞规则 ID 与等待时间;连接失败时标明最后计数已过期。同一标签内的「并发限制」可新增或编辑规则,选择模型或供应商目标,设置全服务共享或每会话独立的上限。开关可暂停规则,不删除其内容;保存后对新请求与排队请求生效,不终止已在途的流。
127
154
  - **外部同步(External sync):** 接收本服务自己用量的目的地,有三种:**vibecafe.ai**、**Kiki webhook** 和**脚本(Script)**。外送的只有模型、UTC 半小时、四项 Token 计数、质量与费用——不含提示词、回复、标题、工作区名或路径。
128
155
 
156
+ **vibecafe.ai** 目的地直接在页面上登录:点**登录 VibeCafe**,用页面给出的码在浏览器里批准,页面会报告结果。这里没有需要复制的授权码,也没有地址、client id 或密钥要填——目的地固定是 `https://vibecafe.ai`。自定义地址、或者你自己提供的密钥属于高级路径。这个登录属于实验功能 `usage_export` 的一部分,该流程尚未对线上服务实际跑通过:若没有走完,目的地会保持页面当时的状态,并且没有发出任何数据。
157
+
158
+ **Kiki webhook** 目的地填写你自己的 HTTPS 端点,认证可选 `none`、`bearer` 或 `hmac`,并可开启 gzip。密钥要么存进系统钥匙串,要么由你显式选择存成服务器上的私有文件——钥匙串失败会直接报错,不会悄悄改成文件;私有文件靠文件系统权限保护,并非静态加密。
159
+
129
160
  已有 `/usage?panel=limits` 链接会打开「实时」并定位到并发规则区,不再有单独的「限制」标签。
130
161
 
131
- 外送功能在本服务打开 `usage_export` 标志前保持关闭。已保存的目的地在你看过预览的确切内容并同意一次之前不会发送任何数据;扩大时间范围、更换端点,或凭据变更无法证明是同一身份时,需要重新同意,而缩小范围或调整周期不需要。暂停目的地会保留队列;移除是另一项操作,会询问是否丢弃排队的数据;请服务方删除它已持有的用量则是第三项操作。命令行侧的对应做法见 [`kiki usage-export`](../reference/command.md#kiki-usage-export)。
162
+ 外送功能在本服务打开 `usage_export` 标志前保持关闭。登录并不改变这一点:批准的凭据只是被存下来,目的地仍是**停用**状态,也没有给过任何同意——所以原来的顺序依然成立,选目的地、预览确切内容、同意一次,再启用。没有同意过的目的地不会发送数据。扩大时间范围、更换端点,或凭据换成了另一个身份时需要重新同意,缩小范围或调整周期不需要。暂停保留队列,移除会询问是否丢弃排队数据,请服务方删除它已持有的用量则是另一项操作。命令行侧的对应做法见 [`kiki usage-export`](../reference/command.md#kiki-usage-export)。
132
163
 
133
- **脚本**目的地以你自己的 OS 用户和普通权限运行你的命令——它可以自行读取文件或使用网络,这不是沙箱。Kiki 只把不含内容的批次写入它的 stdin,并从它的输出读取 receipt(回执)。当本机的 vibecafe collector 已经在向同一账号上报这个 home 时,该目的地会提供交接:以一个未来的 UTC 边界切分时间线,边界之前全部归 collector,边界起归 Kiki,一次同意同时覆盖两者。Kiki 不重写 collector 的状态文件、不读取它的密钥,也不停止它的服务。
164
+ **脚本**目的地以你自己的 OS 用户和普通权限运行你的命令——它可以自行读取文件或访问网络,这不是沙箱。Kiki 只把不含内容的批次写入它的 stdin,并从输出读取 receipt(回执)。
134
165
 
135
- 请求看似卡住时,先打开「实时 → 请求详情」再改上限:排队行会指明本地阻塞规则,供应商 HTTP 429 则要核对供应商报错。本地队列满、等待超时、立即拒绝需要不同调整。字段、可复制示例与错误码见 [`request_governance`](../configuration/config-files.md#request-governance)。外部执行器未纳管;这里的计数不是它们的活动,也不是供应商账户的总用量。
166
+ 请求看似卡住时,先打开「实时 → 请求详情」再改上限:排队行会指明本地阻塞规则,供应商 HTTP 429 要看供应商自己的报错;本地队列满、等待超时、立即拒绝需要不同的调整。字段、示例与错误码见 [`request_governance`](../configuration/config-files.md#request-governance)。这些规则管辖的是本服务自己发出的模型请求:当你把一轮交给 Codex、Claude Code 或 Grok Build 当引擎时,那些请求属于引擎自己,不计入这里;而外部工具回过头来让 Kiki 跑原生请求,则照常计入。
136
167
 
137
168
  ## CLI 侧对应
138
169
 
139
- TUI 不使用**设置**对话框:终端里的客户端偏好(主题、编辑器等)通过 `tui.toml` 和交互命令 `/config`、`/theme`、`/editor` 配置,见 [`tui.toml`](../configuration/config-files.md#tui-toml);Agent 与运行时设置位于 `config.toml`。
170
+ TUI 没有**设置**对话框。终端侧的偏好(主题、编辑器等)在 `tui.toml` 里配置,或用交互命令 `/config`、`/theme`、`/editor`——见 [`tui.toml`](../configuration/config-files.md#tui-toml)。Agent 与运行时设置在 `config.toml`。
@@ -18,17 +18,23 @@ features:
18
18
  - title: 一个工作台,好几条线
19
19
  details: 主会话派子智能体,每个角色跑你为它选定的模型;耗时命令丢进后台,跑完自动回报。
20
20
  link: ./features/workbench
21
+ - title: Agent Profiles
22
+ details: 一份 Markdown 描述一类智能体:跑哪个模型、怎么指示、能用哪些工具、能派发谁,写一次到处复用。
23
+ link: ./features/agents
21
24
  - title: 长时间的活
22
25
  details: 跨轮次推进的目标、它忙时你先排的队、定时提示词、每个工作区一块任务看板,以及比会话活得更久的记忆。
23
26
  link: ./features/long-work
24
27
  - title: 能一起干活的人
25
28
  details: 角色是长期身份:有自己的记忆、固定的日常对话入口,还能进房间和别的角色一起讨论同一个话题。
26
29
  link: ./features/people
30
+ - title: 知道花了多少
31
+ details: 用量页回答三个问题:这个区间花了多少、是哪条并发规则挡住了请求、这些不含内容的统计能送到哪儿。
32
+ link: ./features/daily
27
33
  - title: 数据与机器都在你手上
28
34
  details: 各自带凭据的空间、有方向的远端连接、单向 thread bridge、Web 访问,以及会话内 SSH。
29
35
  link: ./features/spaces
30
36
  - title: 每一层都归你
31
- details: 智能体就是你自己的 Markdown,提示词细到单个工具描述,连接和 OAuth 一张列表,hooks 跑你自己的脚本。
37
+ details: 提示词细到单个工具描述,连接和 OAuth 一张列表,权限模式你定,hooks 跑你自己的脚本。
32
38
  link: ./features/freedom
33
39
  - title: 带过来,也接得进外面
34
40
  details: 把别的工具的对话导进来接着做,在编辑器里通过 ACP 用 Kiki,或者让 Kiki 把别的智能体 harness 当引擎。
@@ -1,13 +1,13 @@
1
1
  # kiki 命令
2
2
 
3
- `kiki` 是产品的统一 CLI 入口(三端产品中面向终端的一端:桌面版、CLI/TUI、服务器),提供 daemon 支持的交互式 TUI、非交互 `-p` 模式和共享 daemon 控制。无参数运行时在工作区信任后连接健康 daemon,不存在则启动;`kiki -p` 继续走独立的 SDK 非交互链路。显式管理 daemon 用 `kiki serve`,需要兼容的前台服务 / UI 时用 `kiki web`。席位和 MCP 子命令供 Cursor、Claude Code、Codex 等外部调用方调用 Kiki(inbound),不负责配置 Kiki 用于运行 subagent 的外部执行器(outbound)。
3
+ `kiki` 是 Kiki 的命令行入口,提供交互式 TUI、非交互 `-p` 模式和共享 daemon 控制。无参数运行时在工作区信任后连接已有 daemon,不存在则启动;`kiki -p` 执行单条提示词后退出。显式管理 daemon 用 `kiki serve`,需要前台服务和浏览器界面时用 `kiki web`。席位和 MCP 子命令供 Cursor、Claude Code、Codex 等外部调用方调用 Kiki。
4
4
 
5
5
  ```sh
6
6
  kiki [options]
7
7
  kiki <subcommand> [options]
8
8
  ```
9
9
 
10
- 交互式会话始终使用共享后台服务(daemon)。确认工作目录可信后,CLI 会连接已有服务,或自动启动服务,无需单独安装或开启实验开关。连接或启动失败时会显示错误,不会回退到独立的本地会话。请根据错误提示排除问题后重新运行命令。非交互式 `--prompt` 执行不属于这条终端启动链路。
10
+ 交互式会话始终使用共享后台服务(daemon)。确认工作目录可信后,CLI 会连接已有服务,或自动启动一个。失败时 Kiki 会直接显示错误,不会回退到另一个独立的本地会话——按错误提示排除问题后重新运行命令。
11
11
 
12
12
  交互模式要求 stdin 和 stdout 都是终端。任一端接入管道或重定向时,运行会在触及工作区信任和 daemon 之前结束,Kiki 不会自动切换到非交互模式。需要从管道传入提示词时,用 `kiki -p -`,由 Kiki 从 stdin 读取。
13
13
 
@@ -265,7 +265,11 @@ Vibe 目的端使用 `{ "kind": "vibe", "endpoint": "https://example.com/api/usa
265
265
  - `clear-queue <id> --agree` 明确丢弃待发数据并停用该目的端。`remove <id>` 清除本地配置及其凭据;只有确实要丢弃现存队列时才添加 `--discard-pending`。两者都不删除远端历史,并保留必要的交付身份/版本依据。
266
266
  - `withdraw <id> --agree` 仅向支持删除的接收端发送带版本的删除墓碑,不删除本地用量;vibe 不支持此操作。
267
267
 
268
- 已有 vibe collector 时,先在新原生草稿上执行 `handoff plan <id>`,再按返回的 namespace 和未来 UTC 截止 **T** 准备 collector 的 `kiki-handoff.json`,并执行原生 `preview`、`test`。`handoff arm <id> --collector-file <file> --fingerprint <preview_fingerprint> --agree` 用已保存的原生凭据核对证明,激活该 home 的旧 collector 截止,并启用从固定 T 起的原生交付。它不读取旧 collector 的 key、不停止 daemon;不同 key 不会被当成同账号证明。旧端负责 `<T`,原生负责 `>=T`,离线回补仍保留 T,不按 ACK 时间移动。`handoff refresh <id>` 读取旧端安全的最后回执;同时有旧回执和真实原生 ACK 才算完成。`handoff rollback <id> --cutoff <new_future_R> --agree` 保留原生负责 `[T,R)`,旧端从 `>=R` 恢复,而不是无界重扫旧历史。
268
+ 已有 vibe collector 时,先在新原生草稿上执行 `handoff plan <id>`,再按返回的 namespace 和未来 UTC 截止 **T** 准备 collector 的 `kiki-handoff.json`,并执行原生 `preview`、`test`。
269
+
270
+ `handoff arm <id> --collector-file <file> --fingerprint <preview_fingerprint> --agree` 用已保存的原生凭据核对证明,激活该 home 的旧 collector 截止,并启用从固定 T 起的原生交付。它不读取旧 collector 的 key、不停止 daemon;不同 key 不会被当成同账号证明。
271
+
272
+ 旧端负责 `<T`,原生负责 `>=T`,离线回补仍保留 T,不按 ACK 时间移动。`handoff refresh <id>` 读取旧端安全的最后回执;同时有旧回执和真实原生 ACK 才算完成。`handoff rollback <id> --cutoff <new_future_R> --agree` 保留原生负责 `[T,R)`,旧端从 `>=R` 恢复,而不是无界重扫旧历史。
269
273
 
270
274
  接收端开发者可在仓库中运行 `pnpm exec tsx packages/kap-server/examples/usage-export-receiver.ts`(Node 24)。示例只监听 `127.0.0.1:9080`,在 `usage-receiver.sqlite` 持久保存替换版本和删除墓碑,提供 `POST /usage`。测试时须批准准确的 loopback HTTP grant。生产接收端应提供 TLS、持久存储和鉴权;示例不是托管看板。
271
275
 
@@ -1,6 +1,16 @@
1
1
  # 键盘快捷键
2
2
 
3
- Kiki 的 TUI 键位按使用场景分组:通用输入、模式切换、编辑、流式输出、工具输出、审批面板和帮助浏览。输入 `/help` 可查看命令用法、说明、支持状态及输入快捷键。
3
+ 本页先介绍 GUI 的线程导航,再按使用场景列出 TUI 键位:通用输入、模式切换、编辑、流式输出、工具输出、审批面板和帮助浏览。在 TUI 中输入 `/help` 可查看命令用法、说明、支持状态及输入快捷键。
4
+
5
+ ## 桌面版与网页版线程导航
6
+
7
+ 在 GUI 的设置 → 快捷键中,可以重绑定**下一个正在运行的线程**和**上一个正在运行的线程**,默认分别为 `Ctrl-Tab` 和 `Ctrl-Shift-Tab`。浏览器占用这两个切换标签页的键位,网页版请改用其他快捷键。已有自定义键位保持不变;如果已有自定义动作占用了 `Ctrl-Shift-Tab`,新增的上一个线程动作会保持未绑定,直到你为它分配空闲键位。
8
+
9
+ 这两个动作在当前窗口会话列表中已加载的运行会话之间循环,范围沿用当前连接以及已获取的工作区、归档范围。顺序按创建时间从新到旧,不按置顶或最近更新时间。当前线程不在运行集合中时,下一个进入首项,上一个进入末项。没有运行线程时不跳转;只有一个时停留在该线程。
10
+
11
+ 运行会话指主 Agent 或 subagent 有活动轮次,或仍有后台工作。只有待审批、待回答、未读输出或置顶标记,不会使会话进入运行集合;仍有工作在运行的会话即使同时需要你处理,也保留在集合中。
12
+
13
+ 通过这两个快捷键、侧栏或快速切换器切换对话后,当前可输入的消息框就绪时会获得一次焦点。草稿及未改变草稿的选区会保留,时间线不会被滚动到消息框。已打开的对话框和终端输入保留焦点;普通 Tab、Shift-Tab 和输入法文字输入不受影响。
4
14
 
5
15
  ## 通用快捷键
6
16
 
@@ -29,7 +39,7 @@ Kiki 的 TUI 键位按使用场景分组:通用输入、模式切换、编辑
29
39
 
30
40
  按 `Shift-Tab` 可开启或关闭 Plan 模式。开启后,Agent 会优先使用只读工具进行研究和规划,并可写入当前计划文件;`Bash` 按当前权限模式和普通规则处理,不会因 Plan 模式额外发起独立审批。单纯切换模式不会创建空计划文件。再次按 `Shift-Tab` 退出 Plan 模式。
31
41
 
32
- 在空输入框中键入 `!` 进入 Shell 模式,可直接运行终端命令。Daemon TUI 中,`Ctrl-B` 将活动轮次转入后台的快捷操作已禁用。详见[交互与输入](../guides/interaction.md#shell-模式)。
42
+ 在空输入框中键入 `!` 进入 Shell 模式,可直接运行终端命令。详见[交互与输入](../guides/interaction.md#shell-模式)。
33
43
 
34
44
  ## 输入与编辑
35
45
 
@@ -60,8 +70,12 @@ Kiki 的 TUI 键位按使用场景分组:通用输入、模式切换、编辑
60
70
  | --- | --- |
61
71
  | `Esc` | 中断当前流式输出 |
62
72
  | `Ctrl-C` | 先清空非空草稿;输入框为空时中断活动轮次 |
63
- | `Ctrl-S` | 已禁用:此快捷键不会将输入注入活动轮次 |
64
- | `Ctrl-B` | 已禁用:此快捷键不能将活动轮次转入后台 |
73
+ | `Ctrl-S` | 引导当前轮次:把排队消息和输入框草稿立刻送进正在运行的这一轮,而不是等它结束 |
74
+ | `Ctrl-B` | 把正在运行的这一轮转入后台,你可以接着排下一条指令 |
75
+
76
+ `Ctrl-S` 按排队顺序引导。Shell 命令(`! …`)和内联 Skill 调用不会被引导进去——它们留在队列里,等当前轮次结束后执行,排在它们后面的内容也一并等待。
77
+
78
+ 在 daemon TUI(`kiki web`)里这两个快捷键都不可用,会提示已禁用。
65
79
 
66
80
  ## 工具输出
67
81
 
@@ -23,15 +23,15 @@ Kiki 的模型选择把三件事分开:配置文件里的模型键、派发 su
23
23
  2. 生效 profile、route 或调用方 lease(caller lease,外部委派方为调用方预设的约束)上的 `model_alias` pin。
24
24
  3. 显式配置的 `[subagent].default_model`。
25
25
 
26
- 这些来源都不存在时,派生以 `model.not_configured` 失败;调用方模型与主 Agent 的 `default_model` 都不是静默回退来源。在 profile、route 或 caller lease 上显式写 `model_alias: inherit`,才会绑定调用方当前已解析的模型与有效思考强度;工具显式 `effort`,或 profile、route、lease、匹配的 `model_profiles` 条目上适用的 effort pin 优先。`AgentRun` 拒绝 `model_alias: "inherit"`:请写具体的已配置模型名,或省略参数以使用目标默认模型。未知的具体 alias 与被机器级策略禁止的模型会在子 Agent 启动前失败。偏离显式偏好或 route / caller lease pin 的模型,只有可执行且满足全部硬模型与档位边界才会继续,并产生 advisory。
26
+ 这些来源都不存在时,派生以 `model.not_configured` 失败;调用方模型与主 Agent 的 `default_model` 都不是静默回退来源。在 profile、route 或 caller lease 上写 `model_alias: inherit`,才会绑定调用方当前的模型与思考强度;工具显式 `effort` 或适用的 effort pin 优先。`AgentRun` 本身拒绝 `model_alias: "inherit"`——请写具体的已配置模型名,或省略参数以使用目标默认模型。未知 alias 或命中禁止列表的模型会在子 Agent 启动前失败。选一个不在 `preferred_models` / `discouraged_models` 里的模型是可以的,只要它仍在所有硬模型与档位限制之内。
27
27
 
28
28
  恢复或重试的 subagent 会保持已持久化的绑定,除非 `AgentRun` 的 `resume` 显式请求修改。同时省略 `model_alias` 与 `effort` 会保留已有绑定;显式传入的 effort 应用于下一次空闲运行。`AgentRun` 恢复时同样拒绝 `model_alias: "inherit"`;显式换模请写具体模型名,或省略参数以保留已保存模型。切换到不同规范模型需要传 `allow_model_change: true`;如果解析到同一规范模型,则不产生模型变化。
29
29
 
30
30
  ## Agent 文件与 routes
31
31
 
32
- Agent 文件与 profile route sidecar 使用 `model_alias` 固定模型;main agent 没有调用方,其 profile 不可使用 `inherit`。旧字段 `model_preference` 会被显式拒绝,并给出迁移诊断;其他工具写入的未知 `model` 元数据也会加载失败。请删除不支持的字段,不要依赖忽略行为。
32
+ Agent 文件与 profile route sidecar 使用 `model_alias` 固定模型;main agent 没有调用方,其 profile 不可使用 `inherit`。旧字段 `model_preference` 会被拒绝并给出迁移提示,其他工具留下的未知 `model` 元数据同样会加载失败——请删掉不支持的字段,不要指望它们被忽略。
33
33
 
34
- Route 声明的 `model_alias` 是软默认值。Subagent 的覆盖可执行且满足硬规则时,仍保留 route 身份,同时标记为 detached 并携带 advisory。`allowed_models`、`deny_models`、`allowed_efforts` 在 profile、lease、`spawn_constraints` 与匹配的 `model_profiles` 中都是硬规则;违规会拒绝 subagent 绑定、人工切换与恢复。Main 会话以用户选择为准:profile 模型 / 档位硬规则违规只警示,推荐或 pin 的偏离不警告、不拒发。只有 `preferred_models`、`discouraged_models`、`preferred_efforts` 是建议。机器级 `[subagent].deny_models` 增加另一道硬边界。原生模型列表比较规范身份,外部 executor 则比较实际生效模型 ID。
34
+ Route 声明的 `model_alias` 是软默认值;`preferred_models`、`discouraged_models`、`preferred_efforts` 是建议。`allowed_models`、`deny_models`、`allowed_efforts` 是硬限制:在 subagent 中越界会拒绝绑定、人工切换或恢复;在主会话中以你的选择为准,越界只警示。`[subagent].deny_models` 是另一道硬限制。原生模型列表比较规范身份,外部 executor 比较它实际调用的生效模型 ID。
35
35
 
36
36
  ## 按身份区分的设置
37
37
 
@@ -41,13 +41,11 @@ Route 声明的 `model_alias` 是软默认值。Subagent 的覆盖可执行且
41
41
  - **主智能体**:模型作为主智能体时生效,与当前由哪个 profile 持有无关。未填的字段继续继承。
42
42
  - **外部委派智能体**:外部宿主委派进来的智能体。未填的字段继续继承。
43
43
 
44
- 身份说的是模型在为谁服务,而不是选了哪个 profile,所以切换 profile 不会丢掉这一层。覆盖提示词或认知字段是另一套机制:它们整组替换,而上面的设置逐字段合并,两者互不影响。
44
+ 身份说的是模型在为谁服务,而不是选了哪个 profile,所以切换 profile 不会丢掉这一层。覆盖提示词或认知字段是另一套机制:它们整组替换,而这里的设置逐字段修改。清空某个覆盖即恢复共用值。`usage_effective` 与 `usage_sources` 报告各身份实际解析到的值及其来源;它们描述模型自身的解析结果,不包含 profile pin 或会话覆盖。
45
45
 
46
- 清空某个覆盖即恢复共用值。`usage_effective` 与 `usage_sources` 报告各身份实际求解到的值及其来源;它们描述模型自身的求解结果,不包含 profile pin 或会话覆盖。
46
+ 上下文使用预算与最大生成 token 是上限而非偏好:生效值取共用上限与身份值中的较小者,因此身份只能收紧,不能放宽到超出模型允许的范围。
47
47
 
48
- 上下文使用预算与最大生成 token 是上限而非偏好:生效值取共用上限与身份差异中的较小者,因此身份只能收紧,不能放宽到超出模型允许的范围。
49
-
50
- 在设置 › 模型中,模型编辑器默认展示共用值;切到主智能体只看并编辑该身份的差异,编辑器会显示每个字段继承自哪里、最终生效值是多少。服务端没有这一层的模型,本来就没有可编辑的差异。
48
+ 在设置 › 模型中,模型编辑器默认展示共用值;切到主智能体只看并编辑该身份的差异,编辑器会显示每个字段继承自哪里、最终生效值是多少。
51
49
 
52
50
  ## 模型 ID 解析
53
51
 
@@ -130,7 +130,7 @@ Kiki 随包内置了一组 Skill,直接以 `/<name>` 形式出现在斜杠命
130
130
 
131
131
  已激活的外部 Skill 会自动注册为斜杠命令。普通外部 Skill 以 `skill:` 作为命名空间前缀:
132
132
 
133
- ```
133
+ ```text
134
134
  /skill:<name> [附加文本]
135
135
  ```
136
136
 
@@ -138,7 +138,7 @@ Kiki 随包内置了一组 Skill,直接以 `/<name>` 形式出现在斜杠命
138
138
 
139
139
  外部子 Skill 会直接以点分名称出现在斜杠命令面板中:
140
140
 
141
- ```
141
+ ```text
142
142
  /<parent-skill>.<sub-skill> [附加文本]
143
143
  ```
144
144
 
@@ -146,7 +146,7 @@ Kiki 随包内置了一组 Skill,直接以 `/<name>` 形式出现在斜杠命
146
146
 
147
147
  为方便输入,外部 Skill 命令同时支持省略 `skill:` 前缀的简写形式 `/<name>`,前提是该名称未被系统斜杠命令占用——即 `/code-style` 会回退匹配到 `/skill:code-style`。
148
148
 
149
- ::: info 说明
149
+ ::: tip 说明
150
150
  所有 Skill 命令仅在空闲状态下可用。`flow` 类型的 Skill 同样通过 `/skill:<name>` 暴露,没有独立的 `/flow:` 命名空间。
151
151
  :::
152
152