Kiokuko(記憶庫) DeepSeek Harness Plugin
Kiokuko 控制的 Harness(尚未发布)
本源码版本通过 bundle 注册 kiokuko-dsh/harness AgentFactory,并禁用标准 agent-loop。Kiokuko 控制轮次、模型请求和原生工具调用;DSH 提供 Agent/Session API、模型适配器、UI 和权限检查。请使用本地构建的 tarball 验证此未发布版本:
dsh plugin --profile dsh-cli add ./kiokuko-dsh-0.2.39.tgz --ignore-scripts
dsh --profile dsh-cli --dump-config
dsh-cli
配置中应只有一个启用的 kiokuko-dsh/harness,且 agent-loop 已禁用。传统插件模式需在 bundle 之后应用安装目录中的 kiokuko-dsh/dsh/cordis.legacy.patch.yml。支持该功能的 CLI 可用 dsh-cli --ignore-kiokuko 仅在当前启动中排除 Kiokuko。保留记忆生成、保存、检索与利用;辅助服务失败不阻止无关的已授权工作,整理后的记忆仍需批准。配置与验证边界说明了 SBCL 前提、固定响应与实时 AI 判断的区别。
记忆正文默认上限为 16,000 个 Unicode 字符,关系元数据有独立限额。请参阅记忆传递预算。
为 DeepSeek Harness 添加项目记忆、任务规划和验证支持。 AgenticReplay 可记录模型和工具活动,查看记录并导出 HTML。
记录正文默认使用 capture.content: redacted。若要尽量减少正文保存,可选择 agenticReplay.capture.content: metadata;不提供 raw 模式。已知凭据赋值、引号中的值、认证 header 和 URL 凭据会被移除,普通正文保留。这不能保证检测所有秘密,也不会修改过去的 trace 或 export;处理旧文件需要用户另行选择。
标准 DSH agent preset 提供 subagent 和 subagent_fork。普通子 agent 不会再次询问 Kiokuko 的执行模式。配置说明。
新的修改任务使用普通执行,并可选配头/工作者模型对。模型选择与连接限制。
可选的自动模型选择默认关闭(modelAutoMode.mode: off)。/kioku-model-auto on | observe | off | status 仅更改当前会话;observe 只记录建议,不更换模型。普通任务需要已就绪的 Jev、Laya 或 OpenAI、dsh-codex,以及 DSH 的模型元数据和 token meter。判定失败时保留当前模型,手动选择优先。
记忆是辅助信息。保留原生轮次观察与仓库学习;整理后的记忆只保存用户批准的确切预览版本。检索或生成失败不阻止无关的已授权工作,也不授予操作权限。审查、回忆与遗忘。
使用 /kioku-memory explain ENTRY_ID 查看来源和更正;使用 /kioku-memory forget ENTRY_ID --revision N 明确遗忘一条记忆。证据、解释与遗忘。
ObservationPack 默认保持 observationPack: { mode: auto }。若完整行摘录无法保留任何原文,则不进行 pack,保留全文。已有 v1 pack 和 handle 仍可读取和恢复。
功能
- Kiokuko Models — 通过 Web 设置或
/kiokuko model连接并认证,独立于原生 Models 设置。支持 Infron Standard/Flex。设置与共享凭据 - 执行模式 — 普通执行;模型选择详见详情
- 项目记忆 — 检索有用的项目知识,供后续工作使用。概念
- 深度规划 — 由四个角色开展有边界的只读调查。使用方法
- DSH 子代理 — 标准 preset 提供
subagent和subagent_fork;原生子代理不会重复询问 Kiokuko 的执行模式。配置 - Continuity — 默认关闭。设置
continuity.mode: active,即可将近期执行证据汇总给模型。设置 - AgenticReplay — 记录模型与工具活动,并导出为 HTML。设置与命令
- 日语输出 — 通过内置 Skill 帮助受支持的模型输出自然的日语。详情
工具展示默认为 auto:根据任务类型和当前阶段决定向模型展示哪些 Kiokuko 工具。原生工具仍然可用;full 是需要显式选择的兼容性覆盖选项。请参阅工具展示。
安装与使用
兼容性通过官方 DSH 当前源码和实际主机 API 验证,不以固定版本名称作为兼容条件。请参阅验证范围。
支持 Linux x64/ARM64 和 macOS Apple Silicon,不支持 Intel Mac 和 Windows。
需要 Node.js 24.16.0 以上和 pnpm。 在 DSH 源码目录中首次安装并启动 Web 版:
pnpm dsh plugin --profile web add kiokuko-dsh
pnpm dsh web
首次安装并启动 CLI 版:
pnpm dsh plugin --profile dsh-cli add @askdkc/dsh-cli
pnpm dsh plugin --profile dsh-cli add kiokuko-dsh
pnpm dsh --profile dsh-cli
如果使用全局安装的 dsh CLI,请省略各命令中的 pnpm。
启动后直接输入任务,无需额外的 Kiokuko setup 操作。
GitHub 和本地安装方式见插件指南。
AgenticReplay 的功能配置会自动安装,无需手动设置。每次聊天都会在无需确认的情况下记录详细日志。
记录后,后续模型回复和工具执行结果将保存到会话工作目录的 .agenticreplay/runs/。决定按会话保存,因此执行过 /kioku-agenticreplay stop 的聊天保持不记录。若想在聊天开始时确认,请设置 agenticReplay.askOnStart: true。
/kioku-agenticreplay start:手动开始记录,或在停止后重新开始。若该聊天未被停止,则无需执行。不会补录过去的活动。/kioku-agenticreplay status:简要显示记录状态、保存位置和下一步操作。诊断详情可用/kioku-agenticreplay status --json查看。
用 /kioku-agenticreplay stop 完成日志记录后,用 list 查看 run ID、show <run ID> 查看内容、export <run ID> 导出 HTML(均在 /kioku-agenticreplay 后输入)。
要禁用记录,请设置 agenticReplay.enabled: false 并重新加载。详见记录设置与命令。
更新
停止 DSH 后,更新并重启 Web 版:
pnpm dsh plugin --profile web update kiokuko-dsh --latest
pnpm dsh web
停止 DSH 后,更新并重启 CLI 版:
pnpm dsh plugin --profile dsh-cli update kiokuko-dsh --latest
pnpm dsh --profile dsh-cli
要更新到发布不足24小时的版本,请关闭 pnpm 11 默认的
minimumReleaseAge
检查,以更新 Kiokuko 及其依赖。确认第二条命令输出 0 后再执行更新:
pnpm config set --location=global --json minimumReleaseAge 0
pnpm config get minimumReleaseAge
pnpm dsh plugin --profile web update kiokuko-dsh --latest
此设置会保存到全局配置,后续 pnpm 安装和更新也会关闭发布时间检查。 更新成功后,请重启 DSH。
启动时会将包括日语输出在内的全部内置 Skill 及其引用文件同步到 ~/.agents/skills/,创建缺失文件并更新受管理的副本,不覆盖非受管理文件。其他代理需要重新加载 Skill 目录。
以上是完整包的默认行为。核心与可选模块构建仅打包所选资源;核心可独立处理对话、调研、写作和项目记忆,不包含 Lisp 运行时。
启动时也会更新启动目录中 AGENTS.md 的现有 Kiokuko 管理块,保留块外的指令。更新包后请重启 DSH。其他工作目录或旧副本的检查与修复请参阅设置步骤。kiokuko use 不是 DSH 的设置命令。
agenticreplay 包的版本范围为 >=0.1.0 <1.0.0,后续补丁和次版本可在不修改范围的情况下更新。
锁文件会保留已验证的版本,直到明确更新依赖。更新后请重启 DSH。
从 OrcaReplay 升级时,请将显式 orca 配置改为 agenticReplay;
已保存的记录选择和旧日志会保留,但旧日志不会导入。
更新详情 · 记录功能迁移
DSH 更新后若无法加载 Kiokuko,请参阅启动恢复步骤,按对应 profile 更新或重新安装。请保留会话日志和 Kiokuko 数据库;重新安装不一定能解决 API 兼容性问题。
类型化判定(Jev / Laya / OpenAI / Nimble)
可选的自动模型选择会为新的普通任务选择经过验证的 openai-codex 模型和推理强度。默认值为 modelAutoMode.mode: off;/kioku-model-auto on | observe | off | status 仅更改当前会话。observe 评估建议,但不更换模型。此功能需要已就绪的 Jev、Laya 或 OpenAI 后端、dsh-codex、原生模型元数据和 token meter。分类失败或不可用时保留当前模型;手动选择优先。
回答复核在完整插件和模块化核心中默认启用。它通过配置的 Jev、Laya、OpenAI 或 Nimble provider 评估已经显示的普通回答,并可能让同一个主模型重新考虑一次。默认配置为:
answerReview:
mode: auto
budgetMs: 5000
设置 answerReview.mode: off 可禁用此功能。它沿用 typedDecisions 配置,会增加评估推理(以及最多一轮主模型调用),但不会延迟首次回答。所选 provider 不可用时会跳过复核并保留原回答,不会替换为其他 provider。由于无法检查 worker 内部的截断,Laya v1 的评估结果仅作为未经验证的建议。/kioku-decisions status 显示进度与跳过原因,并不证明回答正确。
Lisp 与判定的默认值
普通任务开始时只询问一次是否使用型别化判定和 Lisp,并在该请求内保留选择。在设置 → 通用 → Kiokuko 作业开始时的默认值 中指定后,该卡片会预先选好这一项,日常任务即可从惯用选择开始。
| 设置 | 取值 | 作用 |
|---|---|---|
startupDefaults.decision | ask(默认)、on、off | 预先选择是否使用型别化判定;没有提问 UI 时以该值决定 |
startupDefaults.lisp | ask(默认)、on、off | 预先选择是否把 Lisp 作为执行路径 |
typedDecisions.provider | typesafe(默认)、openai、nimble、laya-coreml | 新请求使用的判定 provider |
ask 让卡片保持未选择状态,行为与以前相同。默认值只是预先选中已提供的某个回答,不会增加执行权限、启用被禁用的模块,也不会跳过 Lisp 的启动、审批与 Stop 检查。卡片仍会显示并保留另一选项,在该处选择的回答对该请求优先。
- id: kiokuko-dsh
config:
startupDefaults:
decision: on
lisp: on
typedDecisions:
provider: openai
provider 默认值只在项目尚未保存 /kioku-decisions use 选择时生效。显式选择保持优先,不会被默认值覆盖;use default 会回到配置值。配置不完整(例如 Nimble 缺少 endpoint 与 model)的 provider 仍按不可用处理,不会替换成其他后端。
在无法提问的无头环境中,ask 继续沿用既有配置与手动会话选择,on/off 则明确给出该回答。
设置 OpenAI Decisions
默认仍为 Jev,也可选择 OpenAI、本地 Laya 或 Nimble。OpenAI 使用官方 Decisions API 的 POST /v1/decisions;此源码中的默认判定模型为 gpt-6-luna。它与主聊天模型的认证分开:ChatGPT/Codex OAuth 登录不会提供 OPENAI_API_KEY,TypeSafe/Jev 密钥也不能替代它。
以下步骤对应当前源码,并不表示已发布的 npm latest 已包含 OpenAI 支持。如果没有 use openai,请先确认已安装 build 支持的命令。
-
为 OpenAI API 项目创建 API 密钥,添加到运行中的 DSH 使用的凭据存储中。标准
credentials-local按以下规则选择文件:配置 凭据文件 默认 harness home ~/.dsh/.credentials.yaml自定义 DSH_HOME$DSH_HOME/.credentials.yaml显式 credentials.path(provider 的config.path)指定路径,优先于 home 默认值 --profile web的软件包和 patch 位于$DSH_HOME/profiles/web,但该选项本身不会移动凭据文件。如果 profile 设置了credentials.path,或 launcher 使用另一个DSH_HOME,请编辑实际路径,不要猜测为profiles/web/.credentials.yaml。 -
对于已有文件,只在
refs下添加OPENAI_API_KEY,保留其他所有refs和records。以下是带有无效示例密钥的新文件最小示例:version: 1 refs: OPENAI_API_KEY: "OPENAI_API_KEY_EXAMPLE_ONLY" records: {}请在本机私下将示例值替换为真实密钥。macOS/Linux 上将实际文件权限设为600。默认路径的命令为:
chmod 600 "$HOME/.dsh/.credentials.yaml"如果更改了路径,也请修改命令中的路径。默认
watch: true会自动重新读取有效的文件修改,供后续请求使用,无需重启 DSH。不要把密钥贴到对话、截图或 Git 中。 -
在 DSH 命令输入框中选择 OpenAI 并查看结果:
/kioku-decisions use openai /kioku-decisions statususe openai的 probe 会调用真实 API,可能产生使用费用。只有 probe 和保存均成功后,才会为本项目的新请求保存选择;失败或取消时保留原选择,进行中的请求仍使用原 binding。status不调用推理。可选的/kioku-decisions probe会再发送一次真实 probe。
标准 provider 的优先级为 保存文件 > 启动时环境变量 > 项目 .env > harness home .env。即使 credentials 服务存在,只要没有更高优先级的保存值,环境变量仍可使用。若只使用环境变量,请在同一 shell 中启动 DSH 之前设置:
export OPENAI_API_KEY='OPENAI_API_KEY_EXAMPLE_ONLY'
此值只是不可用的示例。DSH 启动后在其他 shell 中 export 不会更新启动时 snapshot;更新运行中的实例应编辑 watch 监视的文件。含密钥的 .env 也不要提交到 Git。
其他选项仍可使用:
/kioku-decisions use jev
/kioku-decisions use laya
/kioku-decisions use nimble
/kioku-decisions use default
Jev 使用 TYPESAFE_API_KEY;/kioku-typesafe-key 只管理该密钥,不会保存 OpenAI 密钥。Laya 通过 ~/Library/Caches/laya-coreml/worker.sock 的 v1 health/predict 连接 start-laya 启动的现有 worker。install-laya 会复用 worker 或显示设置说明。Nimble 需要预先配置端点和模型。use default 恢复插件配置。
详情请参阅优先级、设置与故障排查、官方凭据存储说明及 TypeSafe Lisp API。
英语及其他语言请使用 aac6fef/laya-multilingual-coreml。其 1,024-token 输入容量包括问题、选项和状态;-ane 变体仅允许 96 tokens。请参阅上游模型规格。完成初始设置后,使用以下命令。请先停止正在运行的 Laya worker,再使用新模型启动;LAYA_MODEL 也会覆盖现有 worker 脚本中的旧默认值。
mkdir -p ~/.local/share/laya-coreml/multilingual
hf download \
aac6fef/laya-multilingual-coreml \
--local-dir ~/.local/share/laya-coreml/multilingual
LAYA_MODEL="$HOME/.local/share/laya-coreml/multilingual" start-laya
语义记忆复用
语义记忆复用在 provider 的合成测试探测成功后,根据当前请求检查已有检索候选。嵌入并非必需;memoryReuse.mode: off 可禁用这一步额外筛选。
记忆应用与验证记录采纳或排除等处理结果,以及宿主观察到的回归验证证据。使用 /kioku-memory-application status 或 /kioku-memory-application status --json 查看当前原生会话的状态。
语义压缩
ObservationPack(observationPack: { mode: auto })会将大型、成功的原生工具结果保留供模型调用两次,然后替换为摘录和 observation_read 句柄。语义压缩会在 TODO 完成边界进行评估,并在普通和 Lisp 模式中,先于原生自动压缩选择性地缩短旧工具结果。默认值为 semanticCompaction: { mode: auto, preemptive: true, budgetMs: 5000 },需要已就绪的类型化判定后端及受支持的原生服务。使用 /kioku-decisions status 查看启用状态和最近结果。若完整行摘录无法保留任何原文,则保留全文而不进行 pack。现有 v1 pack 和句柄仍可读取和恢复。
Laya 压缩另有独立配置,默认值为 typedDecisions.laya-coreml.compaction.mode: off。显式选择 shadow 会评估但不改变历史;auto 仍处于 experimental_not_qualified 状态。此开关保留 ObservationPack 和原生摘要的现有行为。Akinator 仅使用经过验证的 debug/research/writing 范围;可选 Skill 选择最多使用四个信息完整的候选,并由模型最多追加选择一个。请参阅Laya 设置与评估。
可选代码分析
kioku.code 通过 @askdkc/dsh-lsp-server,在 Lisp 中读取代码结构和只读 LSP 结果。
请在 kiokuko-dsh 所用的同一 profile 中安装或更新。CLI 版请将 web 替换为 dsh-cli。
pnpm dsh plugin --profile web add @askdkc/dsh-lsp-server@latest
pnpm dsh plugin --profile web update @askdkc/dsh-lsp-server --latest
详见设置、支持的语言和限制。
Lisp
明确的常规实现请求会在第一次模型请求前提议使用 Lisp,包括默认 on-demand native Bash 路径;对话、调研和仅规划请求不强制提议。同一请求的拒绝回答会在 Goal 准备时复用。/kioku-lisp enable 开启当前会话。ON 状态下的实现先运行小型相关 lisp_eval 试作(prototype: true),再用 lisp_inspect 查看成功的保存结果,然后才能使用实现工具。ON 显示本身不是验证证据。两次失败后停止自动重试,应修复原因或通过 /kioku-lisp disable 选择普通路径。原有权限和 Stop 保持有效。工具显示 full 不会开启 Lisp;新请求需要新的试作证据,试作成功不等于任务完成。