Skip to content
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,8 @@ max_tokens = 2048
|:---:|:---|
| 技能配置 | 仅支持标准 SKILL.md 格式(frontmatter 的 name/description 自动解析,正文为技能内容),可直接粘贴其他 agent 的技能文件;默认包含核心命令、内置扩展命令及别名的 `run_ext_command` / `run_core_command` 调用帮助。格式定义见 [agentskills.io 规范](https://agentskills.io/specification) |

> system prompt 的「可用技能」段只列技能摘要(名称 + 描述,1500 字符预算内尽可能多列),技能过多时超出部分用 `skill_list` 查看完整列表、用 `use_skill` 按需获取正文。

### 记忆

| 设置项 | 说明 |
Expand All @@ -280,7 +282,7 @@ max_tokens = 2048
| 设置项 | 说明 |
|:---:|:---|
| 启用知识库记忆 | 开启后把知识库内容注入 system prompt,供对话参考 |
| 知识库注入阈值(字符) | 知识库总内容不超过该值时全量注入;超过时只注入条目索引,模型用 kb_read 工具读取详情(默认 5000) |
| 知识库注入阈值(字符) | 已弃用:知识库注入只列条目索引(ID + 标题,1500 字符预算内尽可能多列,最多 100 条),不注入正文;模型用 knowledge_read 工具按 ID 读取详情(保留该配置仅为兼容旧存档) |
| 知识库 | Markdown 模板,每条一份完整文档(# 条目标题、##/### 小节,超长自动分块);只读,内容由管理员维护,AI 通过 kb 工具/指令检索。语法定义见 [CommonMark 规范](https://commonmark.org/help/) |

### 回复
Expand Down Expand Up @@ -436,8 +438,8 @@ max_tokens = 2048

| 分类 | 工具函数 |
|:---:|:---|
| 记忆 | `add_memory`、`update_memory`、`del_memory`、`search_memory`、`clear_memory`、`reflect_memory`、`consolidate_memory` |
| 知识库 | `kb_search`、`kb_read`、`kb_list`(只读检索,内容由配置维护) |
| 记忆 | `memory_add`、`memory_update`、`memory_delete`、`memory_recall`、`memory_clear`、`memory_reflect`、`memory_consolidate`、`memory_mm_list`、`memory_mm_view`、`memory_mm_create`、`memory_mm_refresh`、`memory_mm_delete` |
| 知识库 | `knowledge_search`、`knowledge_read`、`knowledge_list`(只读检索,内容由配置维护) |
| OB11 API | `call_ob11_api`(通过 action 调用消息、查询、管理、文件和合并转发 API) |
| 特殊ID | `resolve_special_id`(还原上下文短 ID/句柄为原始字段,用于对接协议 API) |
| 定时 | `set_timer`、`show_timer_list`、`cancel_timer` |
Expand All @@ -454,7 +456,7 @@ max_tokens = 2048
| 音乐资源 | `search_music`(返回 music 消息段,不直接发送) |
| 黑名单 | `suggest_block`(AI 建议拉黑,带冷却;默认需骰主确认)、`unblock_user`、`get_block_list` |
| 论坛 | `forum_get_posts`、`forum_get_post_detail`、`forum_search`、`forum_create_post`、`forum_manage_comment`、`forum_get_activity`、`forum_manage_post` |
| MCP / 技能 | 远端工具名(MCP 工具,同名冲突时跳过)、`use_skill`(技能) |
| MCP / 技能 | 远端工具名(MCP 工具,同名冲突时跳过)、`use_skill`、`skill_list`(技能) |

> 指令类技能(今日人品、COC 模组抽取/搜索、属性展示、属性检定、san 检定等)通过 `use_skill` 按需获取内容,内部统一使用 `run_ext_command` / `run_core_command` 调用海豹指令,对应指令需加入「可调用指令白名单」。

Expand Down
2 changes: 1 addition & 1 deletion docs/02-架构设计.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ SYSTEM_MESSAGE_TEMPLATE(用户可编辑的骨架)
├── 图片/音频资源(本地图片、本地语音)
├── memoryPrompt:长期记忆段(按开关 MEMORY)
├── summaryPrompt:观察记忆段(按开关 SUMMARY)
├── knowledgePrompt:知识库段(按开关 KNOWLEDGE;总内容 ≤ 注入阈值时全量注入,否则只注入条目索引,模型用 kb_read 读取详情)
├── knowledgePrompt:知识库段(按开关 KNOWLEDGE;只列条目索引:ID + 标题,1500 字符预算内尽可能多列(≤100 条),不注入正文,模型用 knowledge_read 读取详情)
└── toolPrompt:工具函数段(仅提示词工程模式)
最后追加"可用技能"摘要段(两种模式都可见)
```
Expand Down
6 changes: 3 additions & 3 deletions docs/03-核心模块详解.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
| `mcp.ts` | MCP | 是否启用MCP、MCP服务器配置、MCP会话空闲回收分钟、MCP每服务器最大会话数 |
| `skills.ts` | 技能 | 技能配置(仅标准 SKILL.md) |
| `memory.ts` | 记忆 | 长期/观察记忆开关、观察间隔轮数/参与轮数、巩固间隔、记忆LLM抽取/重排/观察合成/推理、新近度权重/半衰期、长期记忆条数上限(默认100,0=不限制)、巩固后自动刷新心智模型、刷新最小间隔 |
| `knowledge_base.ts` | 知识库 | 知识库开关、注入阈值(字符)、知识库(Markdown 模板) |
| `knowledge_base.ts` | 知识库 | 知识库开关、知识库注入阈值(字符,已弃用,不再参与注入)、知识库(Markdown 模板) |
| `reply.ts` | 回复 | 引用(含戳戳跳过)、最大字数、去空白、禁止复读与相似度、过滤正则与模板 |
| `message.ts` | 对话 | 角色扮演设定(每条第一行为名称,以 `.` 开头隐藏)、示例对话、轮数、token 上限、system 插入间隔、压缩阈值 |
| `resource.ts` | 资源 | 本地图片路径、本地语音路径(`语音名=路径`,供 system prompt 列出资源) |
Expand Down Expand Up @@ -124,10 +124,10 @@
- `memory.ts`:`MemoryService` 提供 `memoryMap` 增删改查、`search()`(方法:importance/similarity/score/early/late/recent)、去重合并、按分数淘汰;内含旧格式迁移逻辑(兼容早期 `src/AI/memory.ts` 存档)。
- `session_memory.ts`:`SessionMemoryService` 提供会话级观察记忆:`summarize()` 把游标之后 `SUMMARY_SIZE` 轮对话交给 `summarize_agent`,解析 JSON 摘要与事实列表(facts,含 op/type/importance),写入 `summaries` 并落库;旧存档「短期记忆」自动迁移为观察记忆。
- `knowledge_chunk.ts`:`splitMarkdownIntoChunks()` 按 `#`/`##`/`###` 标题与段落把 Markdown 文档切块(单块约 800 字符、块间保留重叠),生成稳定 ID(`kb_xxxxxxxx`)。
- `knowledge_base.ts`:`KnowledgeBaseService` 单例,配置驱动(Markdown 模板,每条一份完整文档),解析时不出向量(懒向量);`search()` 先关键词过滤,嵌入可用时仅对命中候选(≤20 块)做惰性向量重排,失败自动降级关键词;`buildKnowledgePrompt()` 总内容 ≤ 注入阈值(默认 5000)时全量注入,否则只注入条目索引
- `knowledge_base.ts`:`KnowledgeBaseService` 单例,配置驱动(Markdown 模板,每条一份完整文档),解析时不出向量(懒向量);`search()` 先关键词过滤,嵌入可用时仅对命中候选(≤20 块)做惰性向量重排,失败自动降级关键词;`buildKnowledgePrompt()` 只展示条目索引:ID + 标题,1500 字符预算内尽可能多列(≤100 条),不注入正文,详情由模型用 `knowledge_read` 按 ID 读取;`formatIndex(limit)` 支持索引条数上限,`knowledge_list` 工具与 `.ai kb list` 上限 200 条
- `knowledge.ts`:兼容导出层,`knowledgeService = knowledgeBase`(旧 `KnowledgeService` 已移除)。
- `manager.ts`:`MemoryManager` 统一入口:`buildLongTermPrompt` / `buildSummaryPrompt` / `buildKnowledgePrompt` / `addMemory` / `search` / `summarize`。
- `v2/`(4.17.0 起):Hindsight-like 纯 TS 记忆引擎。`engine.ts` 实现 Retain(抽取原子事实/观察记忆,可选 LLM 结构化抽取 occurred_at/entities)、Recall(RRF 混合检索 + Hindsight 式新近度加权(按 lastAccessedAt 指数衰减,权重/半衰期可配)+ 可选 LLM 重排)、Consolidation(LLM 合成观察记忆、合并重复、清理 90 天过期观察)、MentalModel(心智模型:question/answer/scopeTags/lastRefreshedAt/history/trigger,支持 refresh/delete、persona 懒迁移)、遗忘机制(长期记忆条数上限,默认 100,0=不限制;retain/consolidate 后超限时按「已被观察覆盖 → 普通按衰减分 → observation 沉淀 → 保护项(importance≥0.9 或 pinned)」优先级物理删除多余记忆,上限为硬约束);`repository.ts` 统一存取长期/观察记忆与心智模型,`bank_resolver.ts` 按会话解析记忆库,`migrate.ts` 负责旧记忆自动迁移,`llm.ts` 提供可选的 LLM 抽取/重排/合成/推理回调,`prompt.ts` 负责注入裁剪(scopeTags 严格过滤 + 90 天过期观察剔除 + 心智模型/观察各取最新 5/20 条)。配套记忆工具为 `memory_*` 系列(增删改查/巩固/推理/心智模型),`.ai memo` 子命令重构为 status/add/list/update/delete/clear/obs/consolidate/reflect/mm,范围参数改用 `--u`/`--g`。
- `v2/`(4.17.0 起):Hindsight-like 纯 TS 记忆引擎。`engine.ts` 实现 Retain(抽取原子事实/观察记忆,可选 LLM 结构化抽取 occurred_at/entities)、Recall(RRF 混合检索 + Hindsight 式新近度加权(按 lastAccessedAt 指数衰减,权重/半衰期可配)+ 可选 LLM 重排)、Consolidation(LLM 合成观察记忆、合并重复、清理 90 天过期观察)、MentalModel(心智模型:question/answer/scopeTags/lastRefreshedAt/history/trigger,支持 refresh/delete、persona 懒迁移)、遗忘机制(长期记忆条数上限,默认 100,0=不限制;retain/consolidate 后超限时按「已被观察覆盖 → 普通按衰减分 → observation 沉淀 → 保护项(importance≥0.9 或 pinned)」优先级物理删除多余记忆,上限为硬约束);`repository.ts` 统一存取长期/观察记忆与心智模型,`bank_resolver.ts` 按会话解析记忆库(私聊 `user_<id>` / 群聊 `group_<gid>`),`migrate.ts` 负责旧记忆自动迁移,`llm.ts` 提供可选的 LLM 抽取/重排/合成/推理回调,`prompt.ts` 负责注入裁剪(scopeTags 任一命中过滤 + 90 天过期观察剔除 + 心智模型/观察各取最新 5/20 条,观察记忆只在长期记忆段裁剪注入,避免重复)与分组渲染(`buildGroupedMemoryPrompt`:按「群聊 / 每个发言者」分别渲染长期记忆 + 心智模型)。`manager.ts buildLongTermPrompt` 在群聊时除群记忆库外,还会并入最近发言者(最近 2~3 条消息发言人)的个人记忆库并分组渲染:群心智模型 ≤5、群观察 ≤20、个人记忆每用户最多 5 条(单用户 2048 字符预算)、个人心智模型每用户最多 2 条,私有记忆仅创建者本人可见。配套记忆工具为 `memory_*` 系列(增删改查/巩固/推理/心智模型,含 `memory_mm_list/view` 查看心智模型、`memory_mm_delete` 可按 model_id 或 question 删除),`.ai memo` 子命令重构为 status/add/list/update/delete/clear/obs/consolidate/reflect/mm,范围参数改用 `--u`/`--g`。

## 智能体(src/agent/)

Expand Down
8 changes: 4 additions & 4 deletions docs/04-工具系统.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@

| 分类 | 工具 |
| --- | --- |
| 记忆 | `memory_add`、`memory_update`、`memory_delete`、`memory_recall`、`memory_clear`、`memory_reflect`、`memory_consolidate`、`memory_mm_create`、`memory_mm_refresh`、`memory_mm_delete` |
| 记忆 | `memory_add`、`memory_update`、`memory_delete`、`memory_recall`、`memory_clear`、`memory_reflect`、`memory_consolidate`、`memory_mm_list`、`memory_mm_view`、`memory_mm_create`、`memory_mm_refresh`、`memory_mm_delete`(可按 model_id 或 question 删除) |
| 知识库 | `knowledge_search`、`knowledge_read`、`knowledge_list`(只读检索,内容由「知识库」配置维护) |
| OB11 API | `call_ob11_api`(通过 action 调用消息、查询、管理、文件和合并转发 API) |
| 特殊ID | `resolve_special_id`(还原上下文短 ID/句柄为原始字段,用于对接协议 API) |
Expand Down Expand Up @@ -100,7 +100,7 @@
外部注册:

- MCP 工具:默认直接按远端 `tools/list` 返回的工具名注册;与本地/已有工具同名时自动跳过。
- 技能工具:`use_skill`(见技能节)。
- 技能工具:`use_skill`、`skill_list`(见技能节)。

依赖说明:AI 只调用 `call_ob11_api`。有 ob11 网络连接依赖时 action 原样透传;没有依赖时原生可完成的发送和上下文查询继续可用,其余 action 返回 `OB11_DEPENDENCY_REQUIRED`。

Expand All @@ -126,6 +126,6 @@
## 技能(Skills,src/tool/skills.ts)

- 配置项 `技能配置`(技能 分组)只支持标准 SKILL.md 格式:直接粘贴 Claude/Codex/Cursor 的技能文件,frontmatter 的 `name`/`description` 自动解析为技能名与摘要,正文为技能内容
- 注册 `use_skill` 工具;`getSkillSummaries()` 生成的技能摘要会追加到 system prompt 的"可用技能"段(两种工具模式都可见)。
- 技能内容支持 `{{skill:名称}}` 引用其他技能(最大解析深度 2),单次返回上限 4000 字符(超出截断并注明)。
- 注册 `use_skill` 与 `skill_list` 工具;`getSkillSummariesBudgeted()` 生成的技能摘要追加到 system prompt 的"可用技能"段(两种工具模式都可见),摘要按 1500 字符预算截断、预算内尽可能多列,超出提示用 `skill_list` 查看完整技能名列表;`use_skill` 按名称获取正文
- 技能内容支持 `{{skill:名称}}` 引用其他技能(最大解析深度 2),单次返回上限 12000 字符(超出截断并注明)。
- 默认技能包含当前 SealDice 核心命令、内置扩展命令及全部别名的调用帮助:扩展指令使用 `run_ext_command`,核心命令(含 `core|team`)使用 `run_core_command`;默认白名单与 SealDice 源码中的命令表同步。
4 changes: 2 additions & 2 deletions docs/05-命令与配置.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
.ai memo mm view <ID> # 心智模型详情
.ai memo mm add <问题> [答案] # 添加心智模型(不填答案时自动推理;--tag=xx 自定义范围标签)
.ai memo mm refresh [ID] # 刷新心智模型(基于当前记忆重新推理)
.ai memo mm del <ID> # 删除心智模型
.ai memo mm del <ID|问题关键词> # 删除心智模型(ID 或问题名/关键词,关键词唯一命中时直接删除)
.ai kb list # 列出知识库条目索引
.ai kb search <关键词> # 按关键词搜索知识库
.ai kb read <ID> # 按 ID 读取知识库条目
Expand Down Expand Up @@ -120,7 +120,7 @@
| MCP | 是否启用MCP、MCP服务器配置、MCP会话空闲回收分钟、MCP每服务器最大会话数 | 「是否启用MCP」默认关闭,开启后才会解析并连接 MCP 服务器;仅支持标准 mcpServers JSON(默认后端直接提供 mcp-files-exec(read_file、download_file、run_shell)、md-html-render/render_markdown/render_html,格式见 modelcontextprotocol.io/specification/latest) |
| 技能 | 技能配置 | 仅支持标准 SKILL.md(格式见 agentskills.io/specification) |
| 记忆 | 启用长期/观察记忆、每隔多少轮对话生成一次观察、每次观察纳入最近的对话轮数、每隔多少次观察整合一次记忆、用LLM抽取记忆/重排召回结果/合成观察记忆/推理记忆(默认开)、记忆召回新近度权重(默认0.4)/半衰期(默认60天)、长期记忆条数上限(默认100)、巩固后自动刷新心智模型(默认开)、心智模型刷新最小间隔(默认30分钟) | 观察记忆增量观察(只观察上次之后的新消息);巩固间隔 0 为关闭;长期记忆条数上限 0 为不限制,超限自动物理删除最不重要的记忆(先删已被观察覆盖的细节,后删重要/置顶保护项),释放存储空间;新近度加权只影响召回排序 |
| 知识库 | 启用知识库记忆、知识库注入阈值(字符)、知识库(Markdown 模板,每条一份完整文档) | 知识库只读,AI 通过 kb 工具/指令检索;修改后需重载 JS 生效;Markdown 语法见 commonmark.org/help/ |
| 知识库 | 启用知识库记忆、知识库注入阈值(字符,已弃用,不再参与注入)、知识库(Markdown 模板,每条一份完整文档) | 知识库只读,AI 通过 knowledge_search/knowledge_read/knowledge_list 工具或 .ai kb 指令检索;注入只列条目索引(ID + 标题,1500 字符预算内尽可能多列,≤100 条),正文用 knowledge_read 按 ID 读取;修改后需重载 JS 生效;Markdown 语法见 commonmark.org/help/ |
| 回复 | 回复引用、回复最大字数、分段发送延时/基础延时/含图额外延时、禁止回复复读 | 回复过滤规则已内置硬编码 |
| 后端 | 流式输出、图片转base64、联网搜索、用量图表、论坛地址/API Token/签名密钥、核心桥WS地址/核心桥Token | 可自建,见 [08-相关后端项目](08-相关后端项目.md);md/html 渲染(MCP)在「MCP → MCP服务器配置」;核心桥用于 run_core_command 直连(默认 ws://127.0.0.1:46880/plugin) |
| 资源 | 本地图片路径、本地语音路径(支持 `语音名=路径`) | 供 system prompt 列出可发送资源 |
Expand Down
Loading
Loading