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.
- package/README.md +13 -10
- package/dist/docs/en/configuration/config-files.md +63 -20
- package/dist/docs/en/configuration/data-locations.md +12 -4
- package/dist/docs/en/configuration/env-vars.md +4 -6
- package/dist/docs/en/configuration/overrides.md +13 -14
- package/dist/docs/en/configuration/providers.md +8 -6
- package/dist/docs/en/customization/agent-profiles.md +33 -38
- package/dist/docs/en/customization/agents.md +129 -107
- package/dist/docs/en/customization/hooks.md +41 -48
- package/dist/docs/en/customization/personas.md +19 -21
- package/dist/docs/en/customization/plugins.md +180 -156
- package/dist/docs/en/customization/prompt-fields.md +10 -6
- package/dist/docs/en/customization/skills.md +11 -13
- package/dist/docs/en/customization/skins.md +23 -27
- package/dist/docs/en/customization/themes.md +15 -15
- package/dist/docs/en/features/agents.md +85 -0
- package/dist/docs/en/features/daily.md +37 -7
- package/dist/docs/en/features/ecosystem.md +3 -1
- package/dist/docs/en/features/extend.md +7 -1
- package/dist/docs/en/features/freedom.md +4 -0
- package/dist/docs/en/features/index.md +6 -5
- package/dist/docs/en/features/long-work.md +23 -5
- package/dist/docs/en/features/look.md +1 -1
- package/dist/docs/en/features/people.md +10 -2
- package/dist/docs/en/features/spaces.md +16 -4
- package/dist/docs/en/features/workbench.md +11 -3
- package/dist/docs/en/getting-started/desktop-app.md +44 -29
- package/dist/docs/en/getting-started/first-launch.md +32 -21
- package/dist/docs/en/getting-started/installation.md +27 -12
- package/dist/docs/en/getting-started/use-cases.md +35 -35
- package/dist/docs/en/guides/goals.md +9 -7
- package/dist/docs/en/guides/interaction.md +26 -26
- package/dist/docs/en/guides/interface.md +18 -14
- package/dist/docs/en/guides/memory.md +43 -14
- package/dist/docs/en/guides/sessions.md +32 -26
- package/dist/docs/en/guides/settings.md +60 -29
- package/dist/docs/en/index.md +8 -2
- package/dist/docs/en/reference/command.md +8 -4
- package/dist/docs/en/reference/keyboard.md +18 -4
- package/dist/docs/en/reference/model-vocabulary.md +6 -8
- package/dist/docs/en/reference/slash-commands.md +4 -4
- package/dist/docs/en/reference/tools.md +92 -15
- package/dist/docs/en/release-notes/changelog.md +1 -9
- package/dist/docs/en/server/acp.md +1 -1
- package/dist/docs/en/server/ide.md +1 -1
- package/dist/docs/en/server/local-server.md +5 -5
- package/dist/docs/en/server/mcp.md +2 -2
- package/dist/docs/en/server/rest-api.md +79 -5
- package/dist/docs/en/server/sdk.md +2 -2
- package/dist/docs/zh/configuration/config-files.md +56 -15
- package/dist/docs/zh/configuration/data-locations.md +12 -4
- package/dist/docs/zh/configuration/env-vars.md +4 -6
- package/dist/docs/zh/configuration/overrides.md +13 -14
- package/dist/docs/zh/configuration/providers.md +7 -5
- package/dist/docs/zh/customization/agent-profiles.md +31 -36
- package/dist/docs/zh/customization/agents.md +120 -98
- package/dist/docs/zh/customization/hooks.md +35 -42
- package/dist/docs/zh/customization/personas.md +16 -18
- package/dist/docs/zh/customization/plugins.md +167 -142
- package/dist/docs/zh/customization/prompt-fields.md +9 -5
- package/dist/docs/zh/customization/skills.md +10 -12
- package/dist/docs/zh/customization/skins.md +19 -23
- package/dist/docs/zh/customization/themes.md +12 -12
- package/dist/docs/zh/features/agents.md +85 -0
- package/dist/docs/zh/features/daily.md +37 -7
- package/dist/docs/zh/features/ecosystem.md +3 -1
- package/dist/docs/zh/features/extend.md +7 -1
- package/dist/docs/zh/features/freedom.md +4 -0
- package/dist/docs/zh/features/index.md +6 -5
- package/dist/docs/zh/features/long-work.md +22 -4
- package/dist/docs/zh/features/look.md +1 -1
- package/dist/docs/zh/features/people.md +10 -2
- package/dist/docs/zh/features/spaces.md +15 -3
- package/dist/docs/zh/features/workbench.md +11 -3
- package/dist/docs/zh/getting-started/desktop-app.md +43 -28
- package/dist/docs/zh/getting-started/first-launch.md +32 -21
- package/dist/docs/zh/getting-started/installation.md +26 -11
- package/dist/docs/zh/getting-started/use-cases.md +35 -37
- package/dist/docs/zh/guides/goals.md +8 -8
- package/dist/docs/zh/guides/interaction.md +25 -25
- package/dist/docs/zh/guides/interface.md +18 -14
- package/dist/docs/zh/guides/memory.md +43 -14
- package/dist/docs/zh/guides/sessions.md +30 -24
- package/dist/docs/zh/guides/settings.md +54 -23
- package/dist/docs/zh/index.md +7 -1
- package/dist/docs/zh/reference/command.md +7 -3
- package/dist/docs/zh/reference/keyboard.md +18 -4
- package/dist/docs/zh/reference/model-vocabulary.md +6 -8
- package/dist/docs/zh/reference/slash-commands.md +3 -3
- package/dist/docs/zh/reference/tools.md +74 -9
- package/dist/docs/zh/release-notes/changelog.md +1 -9
- package/dist/docs/zh/server/acp.md +1 -1
- package/dist/docs/zh/server/ide.md +1 -1
- package/dist/docs/zh/server/local-server.md +5 -5
- package/dist/docs/zh/server/mcp.md +2 -2
- package/dist/docs/zh/server/rest-api.md +69 -1
- package/dist/docs/zh/server/sdk.md +2 -2
- package/dist/main.mjs +12545 -3456
- package/dist/web/assets/AppErrorBoundary-RFIAb-Uf.js +1 -0
- package/dist/web/assets/NavScopeBoundary-DY_ET7A-.js +1 -0
- package/dist/web/assets/{arc-y2SkSoyr.js → arc-CMgTB1m7.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-uCwLz53m.js → architectureDiagram-3BPJPVTR-BU79ou2C.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-BZyWv36G.js → blockDiagram-GPEHLZMM-Bkuldod2.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-DKGx9i50.js → c4Diagram-AAUBKEIU-C3WMeqyu.js} +1 -1
- package/dist/web/assets/channel-DpDZUJRn.js +1 -0
- package/dist/web/assets/{chunk-2J33WTMH-CSkrhrsp.js → chunk-2J33WTMH-CesyWmwo.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-CtxMoJ68.js → chunk-4BX2VUAB-C7rghYTf.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-Dos3ftEy.js → chunk-55IACEB6-BqRHhwtz.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-wbzEYK9z.js → chunk-727SXJPM-BhSqCRBc.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-B9GKvCD6.js → chunk-AQP2D5EJ-DdYE2ZVZ.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-u5Y2P6IX.js → chunk-FMBD7UC4-BCRPUxDF.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-B8rFKkTV.js → chunk-ND2GUHAM-CuvyDjTR.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-EQsKtuD-.js → chunk-QZHKN3VN-BU5vAS78.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-Bju1GfNu.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Bju1GfNu.js +1 -0
- package/dist/web/assets/client-C0oH7-8r.js +2 -0
- package/dist/web/assets/connection-BhO2nh7P.js +1 -0
- package/dist/web/assets/{cose-bilkent-S5V4N54A-D6dr5mIW.js → cose-bilkent-S5V4N54A-CXrvsA1a.js} +1 -1
- package/dist/web/assets/{dagre-BM42HDAG-Dnyhc4Hn.js → dagre-BM42HDAG-TaAea3Rt.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-CYXkWdne.js → diagram-2AECGRRQ-CdEH4jGt.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-DPwBf5Ag.js → diagram-5GNKFQAL-A0jZ_p-T.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-DNeLYZ8X.js → diagram-KO2AKTUF-miHWORz3.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-zU8RsQTX.js → diagram-LMA3HP47-BlUIwEIg.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-Cf9Mm94H.js → diagram-OG6HWLK6-DwDzMhEg.js} +1 -1
- package/dist/web/assets/{erDiagram-TEJ5UH35-Ch4CeiUI.js → erDiagram-TEJ5UH35-BJr5w62i.js} +1 -1
- package/dist/web/assets/export-BlxaZKEe.js +2 -0
- package/dist/web/assets/{flowDiagram-I6XJVG4X-Csn6WqEH.js → flowDiagram-I6XJVG4X-BP7KSFjx.js} +1 -1
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-DsuBgEyu.js → ganttDiagram-6RSMTGT7-BstLBBof.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-CPA7jCxU.js → gitGraphDiagram-PVQCEYII-C57s7nZ-.js} +1 -1
- package/dist/web/assets/highlighted-body-OFNGDK62-BVb-7KsA.js +1 -0
- package/dist/web/assets/index-69qhvTvD.js +1 -0
- package/dist/web/assets/{index-BYUHmd8w.js → index-BDNM6yJI.js} +2 -2
- package/dist/web/assets/{index-BGgZxlEQ.js → index-BJF_gEDs.js} +2 -2
- package/dist/web/assets/index-BOwMP6BP.js +1 -0
- package/dist/web/assets/{index-C69a5Mcz.js → index-BZsyXCqm.js} +1 -1
- package/dist/web/assets/{index-C7EA7a_g.js → index-Bfl4JiNq.js} +2 -2
- package/dist/web/assets/index-BlD3AKX-.js +1 -0
- package/dist/web/assets/{index-CIymCfcP.js → index-BnvW0EvQ.js} +1 -1
- package/dist/web/assets/index-C4rmWyOm.js +1 -0
- package/dist/web/assets/index-CGLcb3HY.js +1 -0
- package/dist/web/assets/{index-kWBxPqIX.js → index-CPvOeQPX.js} +1 -1
- package/dist/web/assets/index-Cjbe0JKM.js +1 -0
- package/dist/web/assets/index-CmYoJWUm.js +1 -0
- package/dist/web/assets/index-CtUFrjKe.js +1 -0
- package/dist/web/assets/index-DDvDRMTK.js +1 -0
- package/dist/web/assets/index-DSpndwAR.css +1 -0
- package/dist/web/assets/index-D_JjTHxi.js +1 -0
- package/dist/web/assets/index-DbuwcnbT.js +1 -0
- package/dist/web/assets/index-DcXyS0nN.js +1 -0
- package/dist/web/assets/index-Dcl9ruKA.js +1 -0
- package/dist/web/assets/index-DgwALPNA.js +121 -0
- package/dist/web/assets/{index-DoN1FTEe.js → index-DkE8hRT1.js} +2 -2
- package/dist/web/assets/index-DsyRBZ4h.js +1 -0
- package/dist/web/assets/{index-29zav3JI.js → index-DuudNhLL.js} +4 -4
- package/dist/web/assets/index-Gc4F0b2f.js +1 -0
- package/dist/web/assets/index-HGqqwKoV.js +13 -0
- package/dist/web/assets/index-KchrJnno.js +3 -0
- package/dist/web/assets/{index-B0KNSyji.js → index-Tmi2BPYU.js} +1 -1
- package/dist/web/assets/index-Ya4GuDs0.js +1 -0
- package/dist/web/assets/index-_aDaKqLB.js +1 -0
- package/dist/web/assets/index-_qwOAotB.js +1 -0
- package/dist/web/assets/index-hnIkczza.js +7 -0
- package/dist/web/assets/{infoDiagram-5YYISTIA-D3Q__m62.js → infoDiagram-5YYISTIA-CifuVY6C.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CcvCBuZ5.js → ishikawaDiagram-YF4QCWOH-Cd60vQUi.js} +1 -1
- package/dist/web/assets/{journeyDiagram-JHISSGLW-COZU4LNt.js → journeyDiagram-JHISSGLW-Cb3Xl_wl.js} +1 -1
- package/dist/web/assets/{kanban-definition-UN3LZRKU-BrXjBoAU.js → kanban-definition-UN3LZRKU-Ei6ThuZt.js} +1 -1
- package/dist/web/assets/{linear-BgP1STFi.js → linear-CDZJx-o2.js} +1 -1
- package/dist/web/assets/mermaid-GHXKKRXX-DFxyxD7G.js +331 -0
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-CgjSrE5r.js → mindmap-definition-RKZ34NQL-B0ygxzkx.js} +1 -1
- package/dist/web/assets/navViewState-Ck_HK-TK.js +1 -0
- package/dist/web/assets/{pieDiagram-4H26LBE5-DTfe1sKA.js → pieDiagram-4H26LBE5-B2FdrvDv.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D95hfh0q.js → quadrantDiagram-W4KKPZXB-CwpOTy3d.js} +1 -1
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-DtSLi7Mh.js → requirementDiagram-4Y6WPE33-ExdZNzLQ.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-gi_dJpcU.js → sankeyDiagram-5OEKKPKP-u0EZKD7D.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DKQ9a72t.js → sequenceDiagram-3UESZ5HK-BXHMy5DY.js} +1 -1
- package/dist/web/assets/{spaces-B2Ccyh_T.js → spaces-C8n7xQPx.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-Bz7tmSqa.js → stateDiagram-AJRCARHV-DMXx7ell.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Bydq1_By.js +1 -0
- package/dist/web/assets/theme-BBnHttAf.js +1 -0
- package/dist/web/assets/{timeline-definition-PNZ67QCA-BfMXPwhV.js → timeline-definition-PNZ67QCA-DtqVG_4u.js} +1 -1
- package/dist/web/assets/{vennDiagram-CIIHVFJN-WLxW2KT5.js → vennDiagram-CIIHVFJN-Dom0ex8r.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-DiiqwIdq.js → wardley-L42UT6IY-C-RstmuQ.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-DmCukWuw.js → wardleyDiagram-YWT4CUSO-C8CzNfdf.js} +1 -1
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-Cfq1W2tT.js → xychartDiagram-2RQKCTM6-1AxVTyB6.js} +1 -1
- package/dist/web/index.html +2 -2
- package/native/auth-native/prebuilds/linux-arm64/auth-native.node +0 -0
- package/native/auth-native/prebuilds/linux-x64/auth-native.node +0 -0
- package/native/auth-native/prebuilds/win32-arm64/auth-native.node +0 -0
- package/native/auth-native/prebuilds/win32-x64/auth-native.node +0 -0
- package/package.json +1 -1
- package/dist/web/assets/AppErrorBoundary-DWpgwxFV.js +0 -1
- package/dist/web/assets/NavScopeBoundary-D8Lf1G0U.js +0 -1
- package/dist/web/assets/channel-BGdXootG.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-CPcnLy_H.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CPcnLy_H.js +0 -1
- package/dist/web/assets/client-DSIbyfoz.js +0 -2
- package/dist/web/assets/connection-DYZn9oPZ.js +0 -1
- package/dist/web/assets/export-Bq8ZECqX.js +0 -2
- package/dist/web/assets/highlighted-body-OFNGDK62-CDPBxM_E.js +0 -1
- package/dist/web/assets/index-AksnytJj.js +0 -1
- package/dist/web/assets/index-B8xhhYDh.css +0 -1
- package/dist/web/assets/index-BUrlrKap.js +0 -1
- package/dist/web/assets/index-B_5-HLed.js +0 -62
- package/dist/web/assets/index-BfmoxdpP.js +0 -1
- package/dist/web/assets/index-Bo3e-ohM.js +0 -3
- package/dist/web/assets/index-BrYV9gV_.js +0 -1
- package/dist/web/assets/index-C8XUtAvK.js +0 -1
- package/dist/web/assets/index-C9uil5my.js +0 -13
- package/dist/web/assets/index-CKpWHSp9.js +0 -1
- package/dist/web/assets/index-CLKBgQxV.js +0 -1
- package/dist/web/assets/index-CTyyUNWj.js +0 -7
- package/dist/web/assets/index-D7cg9qYZ.js +0 -1
- package/dist/web/assets/index-D7dg8R_q.js +0 -1
- package/dist/web/assets/index-DCSpedV_.js +0 -1
- package/dist/web/assets/index-DLbD0Nx5.js +0 -1
- package/dist/web/assets/index-DaEzbvvu.js +0 -1
- package/dist/web/assets/index-DhbcjMZF.js +0 -1
- package/dist/web/assets/index-Dw2h88mF.js +0 -1
- package/dist/web/assets/index-FcMtfmKv.js +0 -1
- package/dist/web/assets/index-XFq9Kgg0.js +0 -1
- package/dist/web/assets/index-iI2mM43w.js +0 -1
- package/dist/web/assets/index-oXOF7lko.js +0 -1
- package/dist/web/assets/locale-CANfezJ4.js +0 -17
- package/dist/web/assets/mermaid-GHXKKRXX-_JLagMll.js +0 -321
- package/dist/web/assets/navViewState-DS5LnMYc.js +0 -1
- package/dist/web/assets/settings-CcwMWXbp.js +0 -42
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-D6-wdUbw.js +0 -1
- package/dist/web/assets/theme-DlDhDxeD.js +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# 常见使用案例
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
下面每一节都是你实际会遇到的场景,附带的 prompt 可以直接发送,也可以按你的项目改写。
|
|
4
4
|
|
|
5
5
|
## 理解陌生项目
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
27
|
+
调研规模较大时,可以让 main agent(直接与你对话的那个)把任务拆给多个 subagent 并行处理。写法见 [Agent 与 subagent](../customization/agents.md)。
|
|
28
28
|
|
|
29
29
|
## 实现新功能
|
|
30
30
|
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
84
|
+
涉及多个文件的重构,先用 Plan 模式确认方案。也可以 `/fork` 出一个副本先试,之后从 `/sessions` 在两者之间切换,原会话不受影响。
|
|
85
85
|
|
|
86
86
|
## 一次性脚本与自动化任务
|
|
87
87
|
|
|
88
|
-
|
|
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
|
-
|
|
102
|
+
确认安全的批量任务可以不再逐条审批:启动 CLI 时加 `--yolo`,或在会话中输入 `/yolo`,两者都会把会话切到 YOLO 模式,工具调用(包括读取敏感文件)不再询问,除非被权限规则显式拒绝;退出 Plan 模式时仍会审核。想收窄范围,就在[配置文件](../configuration/config-files.md#permission)的 `[permission]` 段为特定工具预置允许规则。
|
|
103
103
|
|
|
104
104
|
## 定时任务与提醒
|
|
105
105
|
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
81
|
+
停止条件要写进目标本身,`/goal` 没有单独的停止限制参数。
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
目标阻塞时不会取消它已经启动的工作。为它启动的任务完成后,结果会唤醒 main agent 处理这一次完成;目标本身仍是阻塞状态,要等你恢复。如果你暂停或取消了目标,或者预算用尽,同样会把这个结果留到你的下一条消息。
|
|
84
84
|
|
|
85
85
|
## 在 Web 界面中管理目标
|
|
86
86
|
|
|
@@ -90,13 +90,13 @@ Web 界面会在对话下方显示当前目标条。点击目标条可以展开
|
|
|
90
90
|
|
|
91
91
|
## 安排后续目标
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
目标很快就完成、而你已经知道下一步要做什么时,可以直接排队,不必干等:
|
|
94
94
|
|
|
95
95
|
```sh
|
|
96
96
|
/goal next 测试通过后更新发布说明
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
|
|
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
|
-
|
|
117
|
+
权限模式决定工具调用是否等你审批。`manual`(手动)模式下目标工作会停下来等审批;要无人值守运行,就选一个与代码库风险和 Agent 将要执行的命令相匹配的权限模式。
|
|
118
118
|
|
|
119
119
|
在非交互式 prompt 模式(`kiki -p`,执行单条指令后直接退出)中,只支持创建目标:
|
|
120
120
|
|
|
@@ -1,49 +1,47 @@
|
|
|
1
1
|
# 交互与输入
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
CLI 和 TUI 是一个终端界面,由输入框、对话视图和状态栏组成。本页讲输入与粘贴、审批流程,以及可以切换的模式。
|
|
4
4
|
|
|
5
5
|
## 输入框基本操作
|
|
6
6
|
|
|
7
|
-
输入框接受自由文本:`Enter` 发送,`Shift-Enter`
|
|
7
|
+
输入框接受自由文本:`Enter` 发送,`Shift-Enter` / `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓` 浏览在当前工作目录输入过的内容,包括跑过的 Shell 命令。
|
|
8
8
|
|
|
9
|
-
**退出 CLI**:输入框为空时按 `Ctrl-D
|
|
9
|
+
**退出 CLI**:输入框为空时按 `Ctrl-D`,空闲时连按两次 `Ctrl-C`,或输入 `/exit`。三种方式都要求 Agent 空闲——流式输出期间 `Ctrl-C` 和 `Esc` 只是中断当前轮次。
|
|
10
10
|
|
|
11
11
|
## 粘贴图片与视频
|
|
12
12
|
|
|
13
|
-
|
|
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
|
-
|
|
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
|
|
26
|
+
已激活的 [Agent Skills](../customization/skills.md)(扩展 Agent 能力的技能包)会注册成斜杠命令:普通外部 Skill 用 `/skill:<name>` 调用,外部子 Skill 显示为 `/parent.child` 这样的点分命令,内置 Skill 直接是 `/<name>`。外部 Skill 名称不和系统命令冲突时,可以省掉 `skill:` 前缀直接输入 `/<name>`。
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
在长提示词里,空白字符后(包括后续行的行首)输入 `/` 会打开只含 Skill 的补全菜单,一条提示词里可以引用多个 Skill:Kiki 会一起激活并作为同一轮次执行,一次 `/undo` 撤销整次提交。提示词中的 Skill 引用只按名称激活,不能带参数;要传参数仍需单独写 `/skill:<name> args`。内置命令和 plugin 命令只能放在输入开头。
|
|
31
29
|
|
|
32
|
-
部分命令仅在 Agent
|
|
30
|
+
部分命令仅在 Agent 空闲时可用,流式输出或上下文压缩期间要先按 `Esc` 中断。`/yolo`、`/plan`、`/help`、`/btw` 等切换和查询类命令始终可用。全部命令见[斜杠命令参考](../reference/slash-commands.md)。
|
|
33
31
|
|
|
34
32
|
## 文件引用
|
|
35
33
|
|
|
36
|
-
键入 `@`
|
|
34
|
+
键入 `@` 触发文件路径补全,选中后插入相对路径,Agent 读到这条消息时会直接加载该文件。git 和非 git 目录都可用;文件夹候选以 `/` 结尾,可以继续往下补全。Kiki 的文件快速搜索组件还在后台下载时,补全会先退回基础的文件系统扫描。隐藏路径会出现在候选中,`.git` 不会。
|
|
37
35
|
|
|
38
|
-
> `@`
|
|
36
|
+
> `@` 和 `/` 是两套机制:`@` 给 Agent 补文件上下文,`/` 调用内置功能或 Skill。空白后的 `/` 只补 Skill,内置命令和 plugin 命令要用开头的 `/`。
|
|
39
37
|
|
|
40
38
|
## 审批流程
|
|
41
39
|
|
|
42
|
-
|
|
40
|
+
工具调用有副作用时(执行命令、在工作区信任边界之外改文件),TUI 会弹出审批面板。已信任工作目录内的 `Write` / `Edit` 不再逐项询问;manual 模式下,Shell 命令、工作区外写入、工作区里指向外部目标的链接和敏感文件访问都会先问。YOLO 模式下的普通工具调用、Plan 模式下对计划文件的写入都不触发审批。
|
|
43
41
|
|
|
44
|
-
|
|
42
|
+
用方向键选、`Enter` 确认,或按 `1`/`2`/`3` 直接选数字项。`Esc`、`Ctrl-C`、`Ctrl-D` 都表示拒绝。
|
|
45
43
|
|
|
46
|
-
|
|
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
|
|
55
|
+
Agent 给出方案后会停下来等你:批准、拒绝,或要求修改。退出 Plan 模式需要你确认,即使开着 YOLO 模式也一样;Auto 和「替我审批」是例外,计划退出自动批准,并在记录里标为 "Auto-approved"。
|
|
58
56
|
|
|
59
57
|
### 权限模式
|
|
60
58
|
|
|
61
|
-
|
|
59
|
+
`/permission` 在 Manual、Auto、「替我审批」和 YOLO 之间切换。
|
|
60
|
+
|
|
61
|
+
**YOLO 模式**(`/yolo`)自动批准 Agent 的文件访问,包括 `.env`、SSH 私钥等敏感目标。显式 deny 规则仍优先,Git 控制路径仍可能询问。退出 Plan 模式仍要审核,Agent 也仍可能向你提问。
|
|
62
62
|
|
|
63
|
-
**Auto 模式**(`/auto
|
|
63
|
+
**Auto 模式**(`/auto`)自动批准普通工具调用和计划退出,访问敏感文件和工作区里指向外部目标的链接时才会问。显式 deny 规则仍会拦截,危险 Bash 命令默认也仍会请求审批,除非关掉该检查。
|
|
64
64
|
|
|
65
|
-
**「替我审批」模式**(`review
|
|
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
|
|
75
|
+
Shell 模式让你不离开对话就能跑终端命令,输出写进对话上下文,Agent 在后续轮次能看到结果。
|
|
76
76
|
|
|
77
77
|
- 进入:在空输入框中键入 `!`,或粘贴以 `!` 开头的命令。
|
|
78
78
|
- 退出:在空输入框中按 `Backspace` 或 `Esc`;提交命令后也会自动回到普通模式。
|
|
79
|
-
- 召回历史命令:在 Shell 模式的空输入框中按
|
|
79
|
+
- 召回历史命令:在 Shell 模式的空输入框中按 `↑`,召回后仍在 Shell 模式,可再次作为命令执行。
|
|
80
80
|
|
|
81
|
-
|
|
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
|
-
|
|
95
|
+
编辑器选取顺序:`/editor` 配置 → `$VISUAL` → `$EDITOR`。三个都没有时,先运行 `/editor` 选一个。
|
|
96
96
|
|
|
97
97
|
## 下一步
|
|
98
98
|
|
|
@@ -1,42 +1,46 @@
|
|
|
1
1
|
# 界面导览
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
桌面版和浏览器界面是同一套 UI,一个会话由三块组成:对话视图、输入框、右侧栏。本页就是这三块的导览;看板、草稿和恢复见[工作区与会话管理](/zh/guides/sessions),同样的概念在终端里的操作见[交互与输入](/zh/guides/interaction)。
|
|
4
4
|
|
|
5
5
|
## 对话视图
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
这里是会话时间线:assistant 消息、工具调用、审批、提问和后台任务通知。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
已处理的内容——你回答过的提问、你批准过的请求、各种标记——会收成单行紧凑条目,留在它发生的位置。连续多条会折叠成一行**活动历史**,点开即可展开;失败和取消的条目始终单独显示。目标更新这类重复标记,在中间没有消息或工具调用时只显示最新一条并带上次数(例如「目标已更新 ×12」)。
|
|
10
|
+
|
|
11
|
+
文件引用可以预览、打开,或在所在文件夹中显示。重新打开会话或加载 Agent 的已保存历史时,每次模型切换都会显示一条分隔条,标出切换前后的模型;只调整思考力度不会多出分隔条。
|
|
12
|
+
|
|
13
|
+
较长的工具输出和其他大字段分段加载。字段被截断时选**继续加载**可以取回其余部分,行上会告诉你已加载多少。续读在有原件可取的字段上失败时——工具的输入或输出、后台任务自己的输出——同一行会提供**下载原文**,把完整内容存到你的机器上,并显示保存中、已保存和重试状态。重试始终可用,但不是每个字段都能下载。
|
|
10
14
|
|
|
11
15
|
## 输入框
|
|
12
16
|
|
|
13
|
-
输入框接受自由文本:`Enter` 发送,`Shift-Enter` / `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓`
|
|
17
|
+
输入框接受自由文本:`Enter` 发送,`Shift-Enter` / `Ctrl-J` 插入换行。输入框为空时按 `↑` / `↓` 浏览在当前工作目录输入过的内容。剪贴板里的图片和视频可以直接粘贴,前提是当前模型支持——细节见[交互与输入](/zh/guides/interaction)。
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
输入框的 **+** 菜单可以把 SSH 主机加入会话。加入的主机属于这个会话,而不是每条消息都要带一遍,所以输入框上方的 **本会话 SSH** 只要有主机加入就一直在:它列出已加入的主机,点 **X** 移出,也可以从这一行重新打开主机列表增删。添加主机只是让会话能用上它,不会立刻连过去。全新会话中该控件显示为 **待加入 SSH**,你选中的主机会在第一条消息发出前加入。
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
Agent 忙碌时,新消息默认进入输入框上方的队列,而不是打断它。每条排队消息可以单独设定发送时机——**空闲后**、**子智能体完成后**、**任务完成后**——并在队列中对应的那一行上改时机、改文字、调顺序或立即发送。
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
要选时机,把鼠标悬停在发送按钮上,或聚焦后按 `↓`。除默认时机外,你可以把消息送进当前轮次、让 Agent 在下一个安全步骤读到它(等同 `Ctrl-Enter`)、等子智能体结束后再开始,或等所有后台任务结束后再开始。当 main agent 正在前台等一个 `AgentRun` 时,**Send now** 会把这个等待转到后台而不终止子 Agent,子 Agent 完成时仍会自动回报;普通排队不会触发这个转移。选定后只作用于这一条消息。Agent 空闲时不显示这个菜单。
|
|
20
24
|
|
|
21
|
-
在 main agent
|
|
25
|
+
在 main agent 还没回复、也没调用工具时把它停掉,被打断的提示词连同附件会回到会话草稿里,和你尚未发送的编辑放在一起。Agent 已经回复过或已被 steering 的提示词不会回填;附件回填要求已加载的对话记录里保留了完整提示词,且回填的附件只存在于本次应用运行的内存中。
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
重启后,排队消息会回来等着你决定。单条消息上选立即发送,就只发这一条;**继续发送**释放整个队列。**稍后**只是收起说明——继续发送按钮仍然可见,你在此期间新提交的消息也会继续排队,直到你恢复队列。
|
|
24
28
|
|
|
25
|
-
在 subagent
|
|
29
|
+
在 subagent 的输入框里,停止请求还没返回时停止按钮会暂时禁用;请求失败会给出原因提示,按钮恢复后可重试。停掉一次运行不会动这个 subagent 队列里的其他消息。
|
|
26
30
|
|
|
27
31
|
## 审批
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
受保护的操作执行前会在时间线里显示审批请求,你可以只批准这一次,或批准整个会话。默认的 Auto 模式下普通工具调用直接执行,敏感文件和指向工作区外的链接仍要审批。manual 模式会先问 Shell 命令和工作区外的写入,受信任目录内的 `Write` / `Edit` 不再逐项询问。YOLO 模式跳过敏感文件询问,但显式 deny 规则依然优先。按 `Esc` 中断的工具调用会在执行前停下。
|
|
30
34
|
|
|
31
35
|
## 右侧栏
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
右栏一次只描述一个 Agent:你最后点进去或聚焦的那个。main agent 和每个 subagent 用的是同一套页面,进到 subagent 的记录里,右栏也跟着你走。它显示这个 Agent 此刻在做什么、等着你处理的条目(可以直接在行上做决定)、活动流,以及一个折起来的能力区块。**Dispatch capabilities** 打开的是 Agent 派发 subagent 的配置面板,从那里可以看到某个 subagent 的配置档案(profile)、路由和执行器,以及它的默认模型与思考力度(effort,模型投入多少推理)来自哪里——见 [Agent 与 subagent](../customization/agents.md#重建会话上下文)。
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
桌面宽度下右栏默认展开。页头的 **Standard / Cockpit** 让它临时加宽、占用预览区,对话和输入框仍留在主列;选 **Standard** 或 **退出驾驶舱**会把原来的预览内容、页签、草稿和宽度还原。
|
|
36
40
|
|
|
37
41
|
## 会话与工作区
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
会话列表按工作区分组,选一个恢复,或在那里新建草稿。已保存但已不可用的模型、配置档案(profile)或思考力度会带着诊断信息继续显示,等你选一个有效值,界面不会悄悄换成别的模型。其余见[工作区与会话管理](/zh/guides/sessions)。
|
|
40
44
|
|
|
41
45
|
## 下一步
|
|
42
46
|
|
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
# 记忆
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Kiki 记住那些你不想每个会话都重讲一遍的东西:你的代码希望怎么被审、上周确认过的哪个项目事实、参考资料放在哪。它默认开启,数据只存在运行 Kiki 的那台机器上,每次写入都会在对话里留下一行。
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
27
|
+
**有效性(validity)**说明依赖一个会变的事实之前要核什么。它带一个 `check` 写明该验证什么,可以再带一个 `until` 时间戳。带 check 的条目显示**依赖前:重新核对**;过了 `until` 的显示**已过期**,条目仍留在盘上作为历史线索,而不再是可以直接采信的前提;没有记录有效性的条目会显示「没有记录复核条件」。到了 `until` 也不会自动删除或归档任何东西。
|
|
12
28
|
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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**
|
|
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 入口
|