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
@@ -4,12 +4,9 @@ Kiki 里每个 agent(包括 main agent 和每个 subagent)都由一份 **pro
4
4
 
5
5
  ## Profile 是什么
6
6
 
7
- 一份 profile 就是一个 Markdown 文件:
7
+ 一份 profile 就是一个 Markdown 文件:顶部的 **Frontmatter**(YAML 元数据块)声明名字、描述、工具白名单、模型绑定等,正文就是这个 agent 的**系统提示词**。
8
8
 
9
- - 文件顶部的 **Frontmatter**(YAML 元数据块)声明名字、描述、工具白名单、模型绑定等;
10
- - 文件正文就是这个 agent 的**系统提示词**。
11
-
12
- Kiki 内置了几份 profile:驱动会话的 main `agent`、默认 subagent `general`、只读探索用的 `explore`(旧安装还可能保留 `coder`、`plan`)。自定义 agent 不需要写代码——照样子写一份自己的 Markdown 文件,就会被自动发现,与内置 profile 并列使用。
9
+ Kiki 内置了几份 profile:驱动会话的 main `agent`、默认 subagent `general`、只读探索用的 `explore`。自定义 agent 不需要写代码——照这个样子写一份 Markdown 文件,就会被自动发现,与内置 profile 并列。
13
10
 
14
11
  ## 文件放在哪里
15
12
 
@@ -31,9 +28,7 @@ Kiki 按作用域发现 profile 文件,作用域越具体,优先级越高:
31
28
 
32
29
  ## 修改什么时候生效
33
30
 
34
- 用户级、项目级和额外目录根下的 profile 文件,以及 `$KIKI_HOME/SYSTEM.md`,都被文件系统监听:新增、修改、删除后约 200 ms 自动重载,无需重启——之后新派发的 subagent 立即使用重载后的版本。已有会话的 main agent 在创建时绑定了当时的 profile 快照;改动文件后,在会话里执行「重建上下文」即可让当前会话换上新版本,对话消息保留。详见 [重建会话上下文](./agents.md#重建会话上下文)。
35
-
36
- Agent 详情的提示生效预览分别展示绑定配置、磁盘变化与最近一次真实请求。首次请求前,请求证据为空。主动检查全部提示文件时,还会检查共用声明和其他身份分支,但不会应用它们或改变绑定;未选分支中的缺失文件可以在这里报告,不影响当前 Agent 继续运行。
31
+ 用户级、项目级和额外目录根下的 profile 文件,以及 `$KIKI_HOME/SYSTEM.md`,都被监听:新增、修改、删除后约 200 ms 自动重载,之后新派发的 subagent 立即用上新版本。已有会话的 main agent 仍绑定创建时的快照,改完文件后在会话里执行「重建上下文」即可换上新版本,对话记录保留。详见 [重建会话上下文](./agents.md#重建会话上下文)。
37
32
 
38
33
  ## Main agent 与 subagent
39
34
 
@@ -42,7 +37,7 @@ Agent 详情的提示生效预览分别展示绑定配置、磁盘变化与最
42
37
  - **main agent**:启动会话时用 `--agent <名字>` 或 `--agent-file <路径>` 指定,或在 GUI 的 profile 选择器中切换。Frontmatter 里 `main: true` 的 profile 会出现在 main agent 候选里。
43
38
  - **subagent**:由 main agent 在对话中自动派发,拥有独立上下文,只把最终结论带回。你也可以直接要求"用 explore 先梳理一遍"来指定。
44
39
 
45
- 提示词声明可以按 Agent 的实际身份生效,无须为此维护多份 profile。`prompt_overrides` 和各 `model_profiles` 条目里的正文都支持 `main`、`independent` 分支:省略或写 `same` 使用共用声明,写 `off` 只停用这条声明,写对象则为该身份整组替换。Subagent 使用共用声明。这些分支不改变选模或权限;顶层 `main: true` 仍只是标记 main agent 候选。[模型 cognition](../configuration/config-files.md#models) 的 overlay、steering 和 anchor 文件也按同一规则选择。
40
+ `prompt_overrides` 和各 `model_profiles` 条目里的正文都可以按 Agent 实际所处的身份分支:省略或写 `same` 使用共用声明,写 `off` 停用该声明,写对象则为该身份整组替换。Subagent 使用共用声明。这些分支只影响提示词,不改变选模或权限;顶层 `main: true` 仍只是标记 main agent 候选。[模型 cognition](../configuration/config-files.md#models) 的 overlay、steering 和 anchor 文件按同一规则选择。
46
41
 
47
42
  ```yaml
48
43
  model_profiles:
@@ -61,23 +56,23 @@ prompt_overrides:
61
56
  system.shared: 向用户简洁说明结果和下一步。
62
57
  ```
63
58
 
64
- 对象独立生效:`main` 正文替换共用的 `prompt_mode` / `prompt` 对;`main` 字段对象替换本条声明的共用文件和字段。如果该对象也需要共用内容,就在对象里明确写出。身份由实际绑定决定,不按 profile 名字或 `main: true` 判断;外部委派的 Agent 使用 `independent`,不会收到 main 专用分支。
59
+ 两个对象各自替换:`main` 正文替换共用的 `prompt_mode` / `prompt` 对,`main` 字段对象替换该声明的文件和字段。对象里请写全你仍然需要的共用内容。身份由实际绑定决定,不看 profile 名字或 `main: true`;外部委派的 Agent 使用 `independent`。
65
60
 
66
- 作为子智能体使用的档案,在自己的 `tools` 与 `disallowedTools` 名单之上还有一层:有部分工具对子智能体默认关闭,需要点名才开放,例如 `ThreadRead`、`AskUserQuestion` 和 `Cron`。在 `tools` 中点名一个工具,只为该档案作为子智能体时开放这一个工具。没有白名单的档案可以把通配符写在名字旁边,因此多开一个工具不必放弃普通工具:
61
+ 档案作为 subagent 运行时,在自己的 `tools` 与 `disallowedTools` 之外还有一层:部分工具对 subagent 默认关闭,需要点名才开放,例如 `ThreadRead`、`AskUserQuestion` 和 `Cron`。在 `tools` 中点名一个,只为该档案作为 subagent 时开放它,不影响其他。把通配符写在名字旁边,普通工具照常可用:
67
62
 
68
63
  ```yaml
69
64
  tools: ["*", ThreadRead]
70
65
  ```
71
66
 
72
- 只写 `*` 不会开放任何 opt-in,也不会穿过任何 deny。有限名单仍然有限:`tools: [Read, Grep, ThreadRead]` 就只选这三个。服务端 `subagent.allowed_tools` 与在这里点名是「或」的关系,但本名单仍会过滤结果:它点名的工具,只有本档案也选中时才对该档案开放,这也正是上面 `["*", ThreadRead]` 这种写法的由来。没写名单(或写了 `*`)的档案对该项开放到的工具都是开放的,而本档案自己的 `disallowedTools` 仍能禁用它。主对话不受这些 opt-in 限制;主对话能选哪些工具,仍由同一档案自己的名单决定。完整清单,以及始终仅供主智能体使用的 `MemoryWrite`、`ThreadSend`、`SendMessage` 与 Goal 工具,见 [subagent 默认限制](../configuration/config-files.md#subagent)。
67
+ 只写 `*` 不会开放任何 opt-in,也不会穿过任何 deny;有限名单仍然有限,`tools: [Read, Grep, ThreadRead]` 就只选这三个。服务端 `subagent.allowed_tools` 与在这里点名是「或」的关系,但档案仍需自己选中该工具才会开放——这就是上面 `["*", ThreadRead]` 写法的用途。没写名单(或写了 `*`)的档案对这一项放行的工具都开放,本档案自己的 `disallowedTools` 仍能禁用。主对话不受这些 opt-in 限制,能选哪些工具仍由同一档案的名单决定。完整清单见 [subagent 默认限制](../configuration/config-files.md#subagent)。
73
68
 
74
- 想让默认 main agent 永久换成自己的配置,还有一种特例文件:`$KIKI_HOME/SYSTEM.md`(默认 `~/.kiki/SYSTEM.md`)。纯正文的 `SYSTEM.md` 只替换默认 main agent 的系统提示词;以 `---` Frontmatter 开头的升级版还能同时改 `tools`、`subagents`、模型绑定等 profile 字段。优先级交互见 [用 SYSTEM.md 覆盖 main agent 的系统提示词](./agents.md#用-system-md-覆盖-main-agent-的系统提示词)。
69
+ 想让默认 main agent 永久换成自己的配置,用这一个特例文件:`$KIKI_HOME/SYSTEM.md`(默认 `~/.kiki/SYSTEM.md`)。纯正文的 `SYSTEM.md` 只替换默认 main agent 的系统提示词;以 `---` Frontmatter 开头的还能同时改 `tools`、`subagents`、模型绑定等 profile 字段。见 [用 SYSTEM.md 覆盖 main agent 的系统提示词](./agents.md#用-system-md-覆盖-main-agent-的系统提示词)。
75
70
 
76
71
  ## 模型菜单与硬边界
77
72
 
78
- `model_profiles` 可以为不同模型提供参数与提示词;默认情况下,它只是候选菜单,不是全部获准模型的穷举。顶层 Frontmatter 字段 `restrict_models_to_menu` 只接受布尔值,默认 `false`。用于 subagent 绑定时,设为 `true` 后,菜单成为该 profile 的模型绑定契约:只允许作者声明的默认 `model_alias` 与 `model_profiles[].alias`,并继续受其他硬规则和执行器能力限制。它适用于 main agent、subagent、注册 profile 与显式 profile 文件,不放在 route、caller lease(调用方给子 Agent 的配置覆写)、`spawn_constraints` 或菜单条目里;父 profile 开启也不会自动替子 profile 开启。
73
+ `model_profiles` 为不同模型提供参数与提示词。默认情况下它只是候选菜单,不是唯一获准的模型清单。Frontmatter 字段 `restrict_models_to_menu` 只接受布尔值,默认 `false`;设为 `true` 后,菜单成为 subagent 绑定的契约,只允许声明的默认 `model_alias` 和 `model_profiles[].alias`。它适用于 main agent、subagent、注册 profile 与显式 profile 文件,不适用于 route、caller lease(调用方给子 Agent 的配置)、`spawn_constraints` 或菜单条目;父 profile 开启不会自动传给子 profile。
79
74
 
80
- 例如,完整获准菜单可以只维护一份正向名单,不必再复制到 `allowed_models`:
75
+ 要表达完整的获准集合,维护一份正向名单即可,不必再抄进 `allowed_models`:
81
76
 
82
77
  ```yaml
83
78
  model_alias: fast-model
@@ -88,49 +83,49 @@ model_profiles:
88
83
  thinking_effort: high
89
84
  ```
90
85
 
91
- 这里的菜单包含 `fast-model` 和 `review-model`;默认模型不必重复写成一个空条目。模型按执行器使用的规范身份比较,不靠 alias 的字符串尾段匹配;无法解析或执行的声明不会因此获得运行能力。修改默认模型也会改变菜单:若旧默认没有单独列在 `model_profiles` 中,换默认就会移除旧模型并加入新模型。
86
+ 这份菜单包含 `fast-model` 和 `review-model`,默认模型不必再写一个空条目。模型按执行器的规范身份比较,不看 alias 尾缀。换默认模型也会改变菜单:旧默认若未单独列在 `model_profiles` 中,替换后它就不再获准。
92
87
 
93
- 开关只增加一层**硬允许域**,不改变选模优先级,也不自动选菜单第一项。Kiki 在按目录与作用域选定 profile 后、route 与 lease 改写前捕获原始默认和菜单,并随绑定冻结。显式派发参数、route / lease pin(默认模型指定)、已保存的实际模型,或 lease 替换的 `model_profiles` 都不能扩充它;lease 把条目替换为子集或空列表也不会抹除或收窄原菜单,另加硬限制应使用 `allowed_models`。原菜单条目的硬规则仍保留。
88
+ 开关增加一层硬允许域。它不改变选模优先级,也不会自动选菜单第一项。Kiki 在按目录与作用域选定 profile 后捕获原始默认和菜单并随绑定冻结,因此显式派发参数、route / lease pin、已保存的实际模型,以及替换了 `model_profiles` 的 lease 都无法放宽它;把条目换成子集或空列表也不会收窄冻结的菜单——额外的硬限制请用 `allowed_models`。
94
89
 
95
- Caller lease 提供 `model_profiles` 时,替换 child 的菜单和参数默认值,但默认保留原角色的模型提示词(`model_prompts: preserve`)。Kiki 按 child 的最终 alias 分别匹配两层来源,先应用原角色正文,再应用 lease 正文,字段也按这个顺序合并。需要移除原提示来源时,在 lease 菜单旁设置 `model_prompts: replace`;保存的模型菜单与硬规则仍有效。Caller lease 只作用于 child,因此它自身的模型正文和字段声明不能包含 `main`、`independent` 分支。
90
+ caller lease 提供 `model_profiles` 时会替换 child 的菜单和参数默认值,但默认保留原角色的模型提示词(`model_prompts: preserve`):Kiki 按 child 的最终 alias 匹配两层来源,先应用角色正文再应用 lease 正文,字段也按此顺序合并。`model_prompts: replace` 只丢弃原提示词,冻结的菜单和硬规则仍在。lease 只作用于 child,因此它自身的模型正文和字段声明不能包含 `main`、`independent` 分支。
96
91
 
97
- 会话的 **main agent** 以用户选模为准,优先于 profile 的模型约束。偏离推荐或默认 pin 不警告;超出 profile 硬模型域时只显示非阻断警示。GUI 保留已配置模型的选择入口,不因 profile 模型规则拒发,约束投影尚未加载时也不会拦截。模型存在性与 provider / executor 能力仍会校验。通过 `AgentRun` 派遣的 `main: true` profile 仍是 subagent,不是用户控制的 main 会话。
92
+ 会话的 **main agent** 以你的选模为准,优先于 profile 约束。偏离推荐或默认 pin 不产生警告,超出硬域也只显示非阻断提示;GUI 保留已配置模型的可选性,不会因此拒发。模型存在性与 provider / executor 能力照常校验。通过 `AgentRun` 派遣的 `main: true` profile 仍是 subagent,不是 main 会话。
98
93
 
99
- 以下规则针对 **subagent 绑定**,在 GUI、CLI、`AgentRun` 与 API 中一致:
94
+ **subagent 绑定**在 GUI、CLI、`AgentRun` 和 API 中规则一致:
100
95
 
101
- - **菜单外拒绝,不降级。** 开启后,显式选菜单外模型返回 `profile.constraint_violation`,不回落到默认。省略模型参数仍先按既有默认规则选模,再校验菜单;若默认或配置回退在菜单外则拒绝,不扫描菜单找替代。没有选出模型仍报未绑定。
102
- - **所有硬域同时生效。** 菜单与各层 `allowed_models` 求交,`deny_models` 命中始终拒绝;`"*"` 不能放宽菜单。机器级禁止与模型 / effort 能力限制仍按原有范围生效。关闭开关也不会撤销这些硬规则或菜单条目内部的硬规则。菜单与 `allowed_models` 完全等价时只是冗余,不是加载错误;两者不同时仍求交,不忽略任何一层。
103
- - **提示不是门禁。** `when` 是供调用方阅读的提示,不执行条件判断;缺省、条件看似未满足或多个条件同时满足都不影响许可。`preferred_*` 与 `discouraged_models` 仍是软建议,不因开启菜单而变成硬规则;菜单顺序也不是降级链。
104
- - **空域不放行。** 菜单为空但有默认时形成单模型限制;菜单与默认都没有、无法形成有效候选,或与其他硬域的有效交集为空时,拒绝绑定,而不是把空集当不限(fail closed)。
105
- - **恢复不扩权。** `resume` 校验冻结的菜单与保存的硬规则,以及适用的当前调用方 / 机器硬域;违规时保留已保存绑定。换模仍须满足 `allow_model_change: true`,该确认不授权越过菜单。磁盘上改开关或菜单不会悄悄改写已有快照;新绑定使用新定义,已有会话需明确重新绑定或新建。
96
+ - **菜单外拒绝,不降级。** 显式选择菜单外模型返回 `profile.constraint_violation`,不会回落到默认。省略模型时仍按既有默认规则选模再校验,若选中的模型在菜单外则拒绝绑定,而不是换成菜单里的其他条目。
97
+ - **其他硬规则照常生效。** 菜单与各层 `allowed_models` 求交,`deny_models` 命中始终拒绝,`"*"` 不能放宽菜单。菜单与某条 `allowed_models` 完全相同只是冗余,不是错误;不同时仍求交,两层都不会被忽略。
98
+ - **`when` 是提示不是门禁。** 它是给调用方看的文字,不做条件判断,缺失或看似不满足都不影响许可。`preferred_*` 与 `discouraged_models` 仍只是建议,菜单顺序也不是降级链。
99
+ - **空集合什么都不允许。** 空菜单加默认会限制为那一个模型;两者都没有、没有有效候选,或与其他硬域交集为空时,绑定被拒绝。
100
+ - **恢复不会扩权。** `resume` 重新校验冻结的菜单、已保存的硬规则和当前调用方 / 机器规则,拒绝时已保存的绑定保持不变。换模型仍需 `allow_model_change: true`,但它不授权走出菜单。改磁盘上的文件不会改写已有快照:新绑定用新定义,已有会话需要显式重新绑定或新建会话。
106
101
 
107
- Subagent 遇到硬拒绝时,选择仍满足其他硬规则的有效菜单项,或修改 profile 声明;显式 pin、人工选择与换模确认都不是绕过菜单的方法。
102
+ Subagent 被硬拒绝时,选一个同时满足其他硬规则的菜单项,或修改 profile 声明;pin、人工选择和换模确认都不是绕过菜单的方式。
108
103
 
109
104
  ### 何时开启
110
105
 
111
- 优先为**已经把 `model_profiles` 维护成完整获准菜单**的 profile 开启;普通通用 profile 或只列几个示例的菜单继续关闭。Kiki 不会批量替现有 profile 开启或自动迁移它们。按意图选择:
106
+ `model_profiles` 已经是完整获准集合的 profile 适合开启;通用 profile 或只列几个示例的菜单保持关闭。
112
107
 
113
- | 场景 | 推荐写法 |
108
+ | 你想表达什么 | 配置 |
114
109
  | --- | --- |
115
- | 默认模型与菜单条目就是全部获准候选,需要逐模型参数 / 提示,并让 GUI 与调用方共用一份候选事实 | 开启 `restrict_models_to_menu`,维护默认与 `model_profiles`;通常不再手抄等价的 `allowed_models` |
116
- | 只是成本、速度或经验推荐,仍希望人工或调用方尝试菜单外模型 | 保持关闭,使用软字段 `preferred_models`、`preferred_efforts` / `discouraged_models` |
117
- | 真正边界来自预算、合规、部署或下级树策略,并不等于 profile 菜单 | 使用硬字段 `allowed_models` / `deny_models`,不必为此编造菜单条目;可与开关叠加,取有效交集 |
110
+ | 默认模型与菜单条目就是全部获准候选,带逐模型参数或提示,GUI 与调用方共用一份 | 开启 `restrict_models_to_menu`,不必再写等价的 `allowed_models` |
111
+ | 只是成本、速度或经验上的建议,希望用户仍能试菜单外的模型 | 保持关闭,使用 `preferred_models`、`preferred_efforts` 或 `discouraged_models` |
112
+ | 真正边界来自预算、合规、部署或下级树策略,与菜单无关 | 单独使用 `allowed_models` / `deny_models`;确实还要约束菜单时再叠加开关 |
118
113
 
119
114
  字段参考与更多示例见 [Agent 文件格式](./agents.md#agent-文件格式)。
120
115
 
121
116
  ## 定制机制地图
122
117
 
123
- Kiki 的定制机制各管一件事。先想清楚要改什么,再选机制:
118
+ 下面的机制各管一件事。先确定想改什么,再选:
124
119
 
125
120
  | 想改什么 | 用什么 |
126
121
  | --- | --- |
127
122
  | 跨会话复用的身份与私有记忆 | [角色、Bot 与房间](./personas.md) |
128
123
  | Agent 的执行指令、可用工具、权限、模型 | **Profile 文件**(本页与 [Agent 与 subagent](./agents.md)) |
129
- | 内置提示词里的一段具名文本(如语言要求、工具描述) | [Prompt 字段覆写](./prompt-fields.md) |
130
- | 让 agent 在需要时自动调用的专业知识或工作流 | [Agent Skills](./skills.md) |
131
- | 自己用 `/名字` 主动触发的提示片段 | [提示命令](./skills.md#自定义提示命令) |
124
+ | 内置提示词里的一段具名文本(语言要求、工具描述) | [Prompt 字段覆写](./prompt-fields.md) |
125
+ | Agent 在需要时自动调用的专业知识或工作流 | [Agent Skills](./skills.md) |
126
+ | 自己用 `/名字` 触发的提示片段 | [提示命令](./skills.md#自定义提示命令) |
132
127
  | 把 profile、Skill、命令、hook 打包分发给团队 | [Plugins](./plugins.md) |
133
- | 在工具调用、会话事件上拦截或通知 | [Hooks](./hooks.md) |
128
+ | 在工具调用、会话事件上做出反应 | [Hooks](./hooks.md) |
134
129
  | 终端界面配色 | [自定义主题](./themes.md) |
135
130
 
136
131
  ## 下一步