1 line
40 KiB
JSON
1 line
40 KiB
JSON
{"repo": "aidara233/agentlilaraprojectsolution", "files": {"docs/core/configuration.md": {"18f865061cecbcf7ce06dc41c7164d7d73d1638f": {"t": 1785746424.4814785, "n": 5007, "h": "190da22287be3b3d", "c": "# Core 配置指南\n\n## 配置文件位置\n\n```\nStorage/Core/{CoreName}.json\n```\n\n每个 Core 按其名称加载同名 JSON 配置。文件不存在时回退到 `Storage/Core/Base.json`。\n\n## 完整配置字段\n\n### 通用字段(所有协议)\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `apiKey` | string | `\"\"` | API 密钥 |\n| `apiEndpoint` | string | `\"https://api.siliconflow.cn/v1/chat/completions\"` | API 端点完整 URL |\n| `model` | string | `\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\"` | 模型 ID |\n| `temperature` | double | `0.7` | 采样温度 |\n| `maxTokens` | int? | `null` | 最大输出 token 数 |\n| `topP` | double? | `null` | 核采样参数 |\n| `frequencyPenalty` | double? | `null` | 频率惩罚 |\n| `presencePenalty` | double? | `null` | 存在惩罚 |\n| `stream` | bool | `true` | 是否流式输出 |\n| `n` | int | `1` | 候选回复数 |\n| `useNativeTools` | bool | `false` | 是否使用原生 tool_use/function_calling |\n| `extraBody` | dict? | `null` | 注入请求体的额外字段 |\n| `conversationHistory` | List\\<Message\\> | `[]` | 预设对话历史(系统提示词等) |\n| `provider` | string | `\"openai\"` | 协议选择(见下方) |\n\n### Claude/Anthropic 专属字段\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `anthropicVersion` | string? | `null` | Anthropic API 版本头(如 `\"2023-06-01\"`) |\n| `promptCaching` | bool | `false` | 启用细粒度 prompt caching(system/user 消息自动加 `cache_control`) |\n\n---\n\n## 协议选择 (`provider`)\n\n`provider` 字段是**唯一的协议切换开关**,在 `ModelClientFactory.Create()` 中决定使用哪个 SDK:\n\n| `provider` 值 | 客户端类 | SDK |\n|---------------|----------|-----|\n| `\"claude\"` 或 `\"anthropic\"` | `ClaudeModelClient` | `Anthropic.SDK` |\n| `\"openai\"` 或其他/省略 | `OpenAIModelClient` | `OpenAI` NuGet |\n\n### OpenAI 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://api.deepseek.com/v1/chat/completions\",\n \"model\": \"deepseek-v4-flash\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true\n}\n```\n\n- `provider` 可省略(默认值 `\"openai\"`)\n- `apiEndpoint` 填完整路径(含 `/v1/chat/completions`)\n- 适用后端:DeepSeek、SiliconFlow、OpenAI 官方、任何 OpenAI 兼容 API\n\n### Claude 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://514claude.xyz/v1/messages\",\n \"model\": \"claude-opus-4-6\",\n \"provider\": \"claude\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true,\n \"anthropicVersion\": null,\n \"promptCaching\": true\n}\n```\n\n- `provider` **必须设为** `\"claude\"`(或 `\"anthropic\"`)\n- `apiEndpoint` 填 Anthropic 格式基路径(`/v1/messages`),SDK 自动拼接 `{base}/{version}/messages`\n- `promptCaching` 启用时自动在 system/user 消息上添加 `cache_control`\n- `extraBody.thinking` 可启用 Claude 扩展思考(`{\"type\": \"enabled\", \"budget_tokens\": 16000}`)\n\n### 协议互换注意事项\n\n切换 `provider` 时必须同步更新 `apiEndpoint`,否则 API 调用会 404:\n\n| 切换方向 | Endpoint 变化 |\n|----------|--------------|\n| Claude → OpenAI | `/v1/messages` → `/v1/chat/completions` |\n| OpenAI → Claude | `/v1/chat/completions` → `/v1/messages` |\n\n协议专属功能在切换后**静默丢失**(不报错):\n- `promptCaching` → OpenAI 客户端忽略\n- `anthropicVersion` → OpenAI 客户端忽略\n- `extraBody.thinking` → OpenAI 客户端忽略\n- Thinking 流事件 → OpenAI 客户端不发出\n\n---\n\n## Persona 注入\n\nPersona.txt 作为普通 prompt 文件处理。需要 Persona 的 Core 在 `promptFiles` 数组首项加入 `\"Persona.txt\"`,由 `PromptLoader` 统一按序加载。不需要 Persona 的 Core(工具性核心如 SummarizationCore、MemoryExtractionCore 等)不在 `promptFiles` 中包含即可。\n\n---\n\n## 当前配置分布\n\n| 配置文件名 | provider | model | useNativeTools | 用途 |\n|-----------|----------|-------|:---:|------|\n| `Base.json` | openai | deepseek-v4-flash | - | 默认回退 + 工具核心共用 |\n| `SessionCore.json` | claude | claude-opus-4-6 | ✓ | RuntimeSession 多轮推理(原 WorkingCore) |\n| `ExpressCore.json` | claude | claude-sonnet-4-6 | ✓ | 频道循环 Express 模式 |\n| `SystemCore.json` | claude | claude-opus-4-6 | ✓ | 系统循环 |\n| `ReviewCore.json` | openai | deepseek-v4-pro | ✓ | 复盘引擎 |\n| `CombineCore.json` | openai | deepseek-v4-flash | - | 记忆组合 |\n| `LinkCore.json` | openai | deepseek-v4-flash | - | 关联分析 |\n| `ConsolidationCore.json` | openai | deepseek-v4-flash | - | 记忆整合第一轮 |\n| `ConsolidationFinalCore.json` | openai | deepseek-v4-flash | - | 记忆整合第二轮 |\n| `DedupCore.json` | openai | deepseek-v4-flash | - | 记忆去重 |\n| `WeightCore.json` | openai | deepseek-v4-flash | - | 权重评估 |\n| `MemoryExtractionCore.json` | openai | deepseek-v4-flash | - | 记忆提取 |\n| `MemoryQueryCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SleepTalkCore.json` | openai | deepseek-v4-flash | - | 梦话生成 |\n| `SummarizationCore.json` | — | — | — | (已删除,模板归档于 templates/Core/) |\n\n> 注:`VisionProvider.json`、`OcrProvider.json`、`EmbeddingProvider.json` 不是 Core 配置,而是独立 Provider 的配置。\n\n---\n\n## ExtraBody 用法\n\n`extraBody` 用于向 API 请求体注入非标准字段,常见用途:\n\n### DeepSeek 思考功能(OpenAI 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\" }\n }\n}\n```\n\n### Claude 扩展思考(Claude 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 16000 }\n }\n}\n```\n\n> 警告:`extraBody.thinking` **仅被 ClaudeModelClient 解析**。在 OpenAI 协议下,需要通过 `extraBody` 的原始注入机制(取决于中转站是否支持转发)。\n\n---\n\n## conversationHistory(预设消息)\n\n`conversationHistory` 用于注入固定的系统提示词和预设对话:\n\n```json\n{\n \"conversationHistory\": [\n { \"role\": \"system\", \"content\": \"你是一个记忆管理助手...\" },\n { \"role\": \"user\", \"content\": \"请开始处理。\" }\n ]\n}\n```\n\n消息在 `ApplyExtraMessages()` 中按顺序注入到客户端。\n"}, "d7a45c076cbf977c33b96744382305c50d2d79fa": {"t": 1785764002.7998183, "n": 5007, "h": "190da22287be3b3d", "c": "# Core 配置指南\n\n## 配置文件位置\n\n```\nStorage/Core/{CoreName}.json\n```\n\n每个 Core 按其名称加载同名 JSON 配置。文件不存在时回退到 `Storage/Core/Base.json`。\n\n## 完整配置字段\n\n### 通用字段(所有协议)\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `apiKey` | string | `\"\"` | API 密钥 |\n| `apiEndpoint` | string | `\"https://api.siliconflow.cn/v1/chat/completions\"` | API 端点完整 URL |\n| `model` | string | `\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\"` | 模型 ID |\n| `temperature` | double | `0.7` | 采样温度 |\n| `maxTokens` | int? | `null` | 最大输出 token 数 |\n| `topP` | double? | `null` | 核采样参数 |\n| `frequencyPenalty` | double? | `null` | 频率惩罚 |\n| `presencePenalty` | double? | `null` | 存在惩罚 |\n| `stream` | bool | `true` | 是否流式输出 |\n| `n` | int | `1` | 候选回复数 |\n| `useNativeTools` | bool | `false` | 是否使用原生 tool_use/function_calling |\n| `extraBody` | dict? | `null` | 注入请求体的额外字段 |\n| `conversationHistory` | List\\<Message\\> | `[]` | 预设对话历史(系统提示词等) |\n| `provider` | string | `\"openai\"` | 协议选择(见下方) |\n\n### Claude/Anthropic 专属字段\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `anthropicVersion` | string? | `null` | Anthropic API 版本头(如 `\"2023-06-01\"`) |\n| `promptCaching` | bool | `false` | 启用细粒度 prompt caching(system/user 消息自动加 `cache_control`) |\n\n---\n\n## 协议选择 (`provider`)\n\n`provider` 字段是**唯一的协议切换开关**,在 `ModelClientFactory.Create()` 中决定使用哪个 SDK:\n\n| `provider` 值 | 客户端类 | SDK |\n|---------------|----------|-----|\n| `\"claude\"` 或 `\"anthropic\"` | `ClaudeModelClient` | `Anthropic.SDK` |\n| `\"openai\"` 或其他/省略 | `OpenAIModelClient` | `OpenAI` NuGet |\n\n### OpenAI 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://api.deepseek.com/v1/chat/completions\",\n \"model\": \"deepseek-v4-flash\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true\n}\n```\n\n- `provider` 可省略(默认值 `\"openai\"`)\n- `apiEndpoint` 填完整路径(含 `/v1/chat/completions`)\n- 适用后端:DeepSeek、SiliconFlow、OpenAI 官方、任何 OpenAI 兼容 API\n\n### Claude 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://514claude.xyz/v1/messages\",\n \"model\": \"claude-opus-4-6\",\n \"provider\": \"claude\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true,\n \"anthropicVersion\": null,\n \"promptCaching\": true\n}\n```\n\n- `provider` **必须设为** `\"claude\"`(或 `\"anthropic\"`)\n- `apiEndpoint` 填 Anthropic 格式基路径(`/v1/messages`),SDK 自动拼接 `{base}/{version}/messages`\n- `promptCaching` 启用时自动在 system/user 消息上添加 `cache_control`\n- `extraBody.thinking` 可启用 Claude 扩展思考(`{\"type\": \"enabled\", \"budget_tokens\": 16000}`)\n\n### 协议互换注意事项\n\n切换 `provider` 时必须同步更新 `apiEndpoint`,否则 API 调用会 404:\n\n| 切换方向 | Endpoint 变化 |\n|----------|--------------|\n| Claude → OpenAI | `/v1/messages` → `/v1/chat/completions` |\n| OpenAI → Claude | `/v1/chat/completions` → `/v1/messages` |\n\n协议专属功能在切换后**静默丢失**(不报错):\n- `promptCaching` → OpenAI 客户端忽略\n- `anthropicVersion` → OpenAI 客户端忽略\n- `extraBody.thinking` → OpenAI 客户端忽略\n- Thinking 流事件 → OpenAI 客户端不发出\n\n---\n\n## Persona 注入\n\nPersona.txt 作为普通 prompt 文件处理。需要 Persona 的 Core 在 `promptFiles` 数组首项加入 `\"Persona.txt\"`,由 `PromptLoader` 统一按序加载。不需要 Persona 的 Core(工具性核心如 SummarizationCore、MemoryExtractionCore 等)不在 `promptFiles` 中包含即可。\n\n---\n\n## 当前配置分布\n\n| 配置文件名 | provider | model | useNativeTools | 用途 |\n|-----------|----------|-------|:---:|------|\n| `Base.json` | openai | deepseek-v4-flash | - | 默认回退 + 工具核心共用 |\n| `SessionCore.json` | claude | claude-opus-4-6 | ✓ | RuntimeSession 多轮推理(原 WorkingCore) |\n| `ExpressCore.json` | claude | claude-sonnet-4-6 | ✓ | 频道循环 Express 模式 |\n| `SystemCore.json` | claude | claude-opus-4-6 | ✓ | 系统循环 |\n| `ReviewCore.json` | openai | deepseek-v4-pro | ✓ | 复盘引擎 |\n| `CombineCore.json` | openai | deepseek-v4-flash | - | 记忆组合 |\n| `LinkCore.json` | openai | deepseek-v4-flash | - | 关联分析 |\n| `ConsolidationCore.json` | openai | deepseek-v4-flash | - | 记忆整合第一轮 |\n| `ConsolidationFinalCore.json` | openai | deepseek-v4-flash | - | 记忆整合第二轮 |\n| `DedupCore.json` | openai | deepseek-v4-flash | - | 记忆去重 |\n| `WeightCore.json` | openai | deepseek-v4-flash | - | 权重评估 |\n| `MemoryExtractionCore.json` | openai | deepseek-v4-flash | - | 记忆提取 |\n| `MemoryQueryCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SleepTalkCore.json` | openai | deepseek-v4-flash | - | 梦话生成 |\n| `SummarizationCore.json` | — | — | — | (已删除,模板归档于 templates/Core/) |\n\n> 注:`VisionProvider.json`、`OcrProvider.json`、`EmbeddingProvider.json` 不是 Core 配置,而是独立 Provider 的配置。\n\n---\n\n## ExtraBody 用法\n\n`extraBody` 用于向 API 请求体注入非标准字段,常见用途:\n\n### DeepSeek 思考功能(OpenAI 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\" }\n }\n}\n```\n\n### Claude 扩展思考(Claude 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 16000 }\n }\n}\n```\n\n> 警告:`extraBody.thinking` **仅被 ClaudeModelClient 解析**。在 OpenAI 协议下,需要通过 `extraBody` 的原始注入机制(取决于中转站是否支持转发)。\n\n---\n\n## conversationHistory(预设消息)\n\n`conversationHistory` 用于注入固定的系统提示词和预设对话:\n\n```json\n{\n \"conversationHistory\": [\n { \"role\": \"system\", \"content\": \"你是一个记忆管理助手...\" },\n { \"role\": \"user\", \"content\": \"请开始处理。\" }\n ]\n}\n```\n\n消息在 `ApplyExtraMessages()` 中按顺序注入到客户端。\n"}, "43a6ba1189d584c97ebae00c4897f560568fd9a3": {"t": 1785764004.7491975, "n": 5072, "h": "ea8b4c0052bb419c", "c": "# Core 配置指南\n\n## 配置文件位置\n\n```\nStorage/Core/{CoreName}.json\n```\n\n每个 Core 按其名称加载同名 JSON 配置。文件不存在时回退到 `Storage/Core/Base.json`。\n\n## 完整配置字段\n\n### 通用字段(所有协议)\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `apiKey` | string | `\"\"` | API 密钥 |\n| `apiEndpoint` | string | `\"https://api.siliconflow.cn/v1/chat/completions\"` | API 端点完整 URL |\n| `model` | string | `\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\"` | 模型 ID |\n| `temperature` | double | `0.7` | 采样温度 |\n| `maxTokens` | int? | `null` | 最大输出 token 数 |\n| `topP` | double? | `null` | 核采样参数 |\n| `frequencyPenalty` | double? | `null` | 频率惩罚 |\n| `presencePenalty` | double? | `null` | 存在惩罚 |\n| `stream` | bool | `true` | 是否流式输出 |\n| `n` | int | `1` | 候选回复数 |\n| `useNativeTools` | bool | `false` | 是否使用原生 tool_use/function_calling |\n| `extraBody` | dict? | `null` | 注入请求体的额外字段 |\n| `conversationHistory` | List\\<Message\\> | `[]` | 预设对话历史(系统提示词等) |\n| `provider` | string | `\"openai\"` | 协议选择(见下方) |\n\n### Claude/Anthropic 专属字段\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `anthropicVersion` | string? | `null` | Anthropic API 版本头(如 `\"2023-06-01\"`) |\n| `promptCaching` | bool | `false` | 启用细粒度 prompt caching(system/user 消息自动加 `cache_control`) |\n\n---\n\n## 协议选择 (`provider`)\n\n`provider` 字段是**唯一的协议切换开关**,在 `ModelClientFactory.Create()` 中决定使用哪个 SDK:\n\n| `provider` 值 | 客户端类 | SDK |\n|---------------|----------|-----|\n| `\"claude\"` 或 `\"anthropic\"` | `ClaudeModelClient` | `Anthropic.SDK` |\n| `\"openai\"` 或其他/省略 | `OpenAIModelClient` | `OpenAI` NuGet |\n\n### OpenAI 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://api.deepseek.com/v1/chat/completions\",\n \"model\": \"deepseek-v4-flash\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true\n}\n```\n\n- `provider` 可省略(默认值 `\"openai\"`)\n- `apiEndpoint` 填完整路径(含 `/v1/chat/completions`)\n- 适用后端:DeepSeek、SiliconFlow、OpenAI 官方、任何 OpenAI 兼容 API\n\n### Claude 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://514claude.xyz/v1/messages\",\n \"model\": \"claude-opus-4-6\",\n \"provider\": \"claude\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true,\n \"anthropicVersion\": null,\n \"promptCaching\": true\n}\n```\n\n- `provider` **必须设为** `\"claude\"`(或 `\"anthropic\"`)\n- `apiEndpoint` 填 Anthropic 格式基路径(`/v1/messages`),SDK 自动拼接 `{base}/{version}/messages`\n- `promptCaching` 启用时自动在 system/user 消息上添加 `cache_control`\n- `extraBody.thinking` 可启用 Claude 扩展思考(`{\"type\": \"enabled\", \"budget_tokens\": 16000}`)\n\n### 协议互换注意事项\n\n切换 `provider` 时必须同步更新 `apiEndpoint`,否则 API 调用会 404:\n\n| 切换方向 | Endpoint 变化 |\n|----------|--------------|\n| Claude → OpenAI | `/v1/messages` → `/v1/chat/completions` |\n| OpenAI → Claude | `/v1/chat/completions` → `/v1/messages` |\n\n协议专属功能在切换后**静默丢失**(不报错):\n- `promptCaching` → OpenAI 客户端忽略\n- `anthropicVersion` → OpenAI 客户端忽略\n- `extraBody.thinking` → OpenAI 客户端忽略\n- Thinking 流事件 → OpenAI 客户端不发出\n\n---\n\n## Persona 注入\n\nPersona.txt 作为普通 prompt 文件处理。需要 Persona 的 Core 在 `promptFiles` 数组首项加入 `\"Persona.txt\"`,由 `PromptLoader` 统一按序加载。不需要 Persona 的 Core(工具性核心如 SummarizationCore、MemoryExtractionCore 等)不在 `promptFiles` 中包含即可。\n\n---\n\n## 当前配置分布\n\n| 配置文件名 | provider | model | useNativeTools | 用途 |\n|-----------|----------|-------|:---:|------|\n| `Base.json` | openai | deepseek-v4-flash | - | 默认回退 + 工具核心共用 |\n| `SessionCore.json` | claude | claude-opus-4-6 | ✓ | RuntimeSession 多轮推理(原 WorkingCore) |\n| `ExpressCore.json` | claude | claude-sonnet-4-6 | ✓ | 频道循环 Express 模式 |\n| `SystemCore.json` | claude | claude-opus-4-6 | ✓ | 系统循环 |\n| `ReviewCore.json` | openai | deepseek-v4-pro | ✓ | 复盘引擎 |\n| `CombineCore.json` | openai | deepseek-v4-flash | - | 记忆组合 |\n| `LinkCore.json` | openai | deepseek-v4-flash | - | 关联分析 |\n| `ConsolidationCore.json` | openai | deepseek-v4-flash | - | 记忆整合第一轮 |\n| `ConsolidationFinalCore.json` | openai | deepseek-v4-flash | - | 记忆整合第二轮 |\n| `DedupCore.json` | openai | deepseek-v4-flash | - | 记忆去重 |\n| `WeightCore.json` | openai | deepseek-v4-flash | - | 权重评估 |\n| `MemoryExtractionCore.json` | openai | deepseek-v4-flash | - | 记忆提取 |\n| `MemoryQueryCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SleepTalkCore.json` | openai | deepseek-v4-flash | - | 梦话生成 |\n| `SubAgentCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SummarizationCore.json` | — | — | — | (已删除,模板归档于 templates/Core/) |\n\n> 注:`VisionProvider.json`、`OcrProvider.json`、`EmbeddingProvider.json` 不是 Core 配置,而是独立 Provider 的配置。\n\n---\n\n## ExtraBody 用法\n\n`extraBody` 用于向 API 请求体注入非标准字段,常见用途:\n\n### DeepSeek 思考功能(OpenAI 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\" }\n }\n}\n```\n\n### Claude 扩展思考(Claude 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 16000 }\n }\n}\n```\n\n> 警告:`extraBody.thinking` **仅被 ClaudeModelClient 解析**。在 OpenAI 协议下,需要通过 `extraBody` 的原始注入机制(取决于中转站是否支持转发)。\n\n---\n\n## conversationHistory(预设消息)\n\n`conversationHistory` 用于注入固定的系统提示词和预设对话:\n\n```json\n{\n \"conversationHistory\": [\n { \"role\": \"system\", \"content\": \"你是一个记忆管理助手...\" },\n { \"role\": \"user\", \"content\": \"请开始处理。\" }\n ]\n}\n```\n\n消息在 `ApplyExtraMessages()` 中按顺序注入到客户端。\n"}, "dea8e289b9583d7816e4a28eeb8bd884ca57a84b": {"t": 1785764006.5379024, "n": 5054, "h": "4ea24037808fc328", "c": "# Core 配置指南\n\n## 配置文件位置\n\n```\nStorage/Core/{CoreName}.json\n```\n\n每个 Core 按其名称加载同名 JSON 配置。文件不存在时回退到 `Storage/Core/Base.json`。\n\n## 完整配置字段\n\n### 通用字段(所有协议)\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `apiKey` | string | `\"\"` | API 密钥 |\n| `apiEndpoint` | string | `\"https://api.siliconflow.cn/v1/chat/completions\"` | API 端点完整 URL |\n| `model` | string | `\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\"` | 模型 ID |\n| `temperature` | double | `0.7` | 采样温度 |\n| `maxTokens` | int? | `null` | 最大输出 token 数 |\n| `topP` | double? | `null` | 核采样参数 |\n| `frequencyPenalty` | double? | `null` | 频率惩罚 |\n| `presencePenalty` | double? | `null` | 存在惩罚 |\n| `stream` | bool | `true` | 是否流式输出 |\n| `n` | int | `1` | 候选回复数 |\n| `useNativeTools` | bool | `false` | 是否使用原生 tool_use/function_calling |\n| `extraBody` | dict? | `null` | 注入请求体的额外字段 |\n| `conversationHistory` | List\\<Message\\> | `[]` | 预设对话历史(系统提示词等) |\n| `provider` | string | `\"openai\"` | 协议选择(见下方) |\n\n### Claude/Anthropic 专属字段\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `anthropicVersion` | string? | `null` | Anthropic API 版本头(如 `\"2023-06-01\"`) |\n| `promptCaching` | bool | `false` | 启用细粒度 prompt caching(system/user 消息自动加 `cache_control`) |\n\n---\n\n## 协议选择 (`provider`)\n\n`provider` 字段是**唯一的协议切换开关**,在 `ModelClientFactory.Create()` 中决定使用哪个 SDK:\n\n| `provider` 值 | 客户端类 | SDK |\n|---------------|----------|-----|\n| `\"claude\"` 或 `\"anthropic\"` | `ClaudeModelClient` | `Anthropic.SDK` |\n| `\"openai\"` 或其他/省略 | `OpenAIModelClient` | `OpenAI` NuGet |\n\n### OpenAI 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://api.deepseek.com/v1/chat/completions\",\n \"model\": \"deepseek-v4-flash\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true\n}\n```\n\n- `provider` 可省略(默认值 `\"openai\"`)\n- `apiEndpoint` 填完整路径(含 `/v1/chat/completions`)\n- 适用后端:DeepSeek、SiliconFlow、OpenAI 官方、任何 OpenAI 兼容 API\n\n### Claude 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://514claude.xyz/v1/messages\",\n \"model\": \"claude-opus-4-6\",\n \"provider\": \"claude\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true,\n \"anthropicVersion\": null,\n \"promptCaching\": true\n}\n```\n\n- `provider` **必须设为** `\"claude\"`(或 `\"anthropic\"`)\n- `apiEndpoint` 填 Anthropic 格式基路径(`/v1/messages`),SDK 自动拼接 `{base}/{version}/messages`\n- `promptCaching` 启用时自动在 system/user 消息上添加 `cache_control`\n- `extraBody.thinking` 可启用 Claude 扩展思考(`{\"type\": \"enabled\", \"budget_tokens\": 16000}`)\n\n### 协议互换注意事项\n\n切换 `provider` 时必须同步更新 `apiEndpoint`,否则 API 调用会 404:\n\n| 切换方向 | Endpoint 变化 |\n|----------|--------------|\n| Claude → OpenAI | `/v1/messages` → `/v1/chat/completions` |\n| OpenAI → Claude | `/v1/chat/completions` → `/v1/messages` |\n\n协议专属功能在切换后**静默丢失**(不报错):\n- `promptCaching` → OpenAI 客户端忽略\n- `anthropicVersion` → OpenAI 客户端忽略\n- `extraBody.thinking` → OpenAI 客户端忽略\n- Thinking 流事件 → OpenAI 客户端不发出\n\n---\n\n## Persona 注入\n\nPersona.txt 作为普通 prompt 文件处理。需要 Persona 的 Core 在 `promptFiles` 数组首项加入 `\"Persona.txt\"`,由 `PromptLoader` 统一按序加载。不需要 Persona 的 Core(工具性核心如 SummarizationCore、MemoryExtractionCore 等)不在 `promptFiles` 中包含即可。\n\n---\n\n## 当前配置分布\n\n| 配置文件名 | provider | model | useNativeTools | 用途 |\n|-----------|----------|-------|:---:|------|\n| `Base.json` | openai | deepseek-v4-flash | - | 默认回退 + 工具核心共用 |\n| `SessionCore.json` | claude | claude-opus-4-6 | ✓ | RuntimeSession 多轮推理(原 WorkingCore) |\n| `ExpressCore.json` | claude | claude-sonnet-4-6 | ✓ | 频道循环 Express 模式 |\n| `SystemCore.json` | claude | claude-opus-4-6 | ✓ | 系统循环 |\n| `ReviewCore.json` | openai | deepseek-v4-pro | ✓ | 复盘引擎 |\n| `CombineCore.json` | openai | deepseek-v4-flash | - | 记忆组合 |\n| `LinkCore.json` | openai | deepseek-v4-flash | - | 关联分析 |\n| `ConsolidationCore.json` | openai | deepseek-v4-flash | - | 记忆整合第一轮 |\n| `ConsolidationFinalCore.json` | openai | deepseek-v4-flash | - | 记忆整合第二轮 |\n| `DedupCore.json` | openai | deepseek-v4-flash | - | 记忆去重 |\n| `WeightCore.json` | openai | deepseek-v4-flash | - | 权重评估 |\n| `MemoryExtractionCore.json` | openai | deepseek-v4-flash | - | 记忆提取 |\n| `MemoryQueryCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SleepTalkCore.json` | openai | deepseek-v4-flash | - | 梦话生成 |\n| `SubAgentCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SummarizationCore.json` | (特殊格式) | - | - | 摘要压缩 |\n\n> 注:`VisionProvider.json`、`OcrProvider.json`、`EmbeddingProvider.json` 不是 Core 配置,而是独立 Provider 的配置。\n\n---\n\n## ExtraBody 用法\n\n`extraBody` 用于向 API 请求体注入非标准字段,常见用途:\n\n### DeepSeek 思考功能(OpenAI 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\" }\n }\n}\n```\n\n### Claude 扩展思考(Claude 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 16000 }\n }\n}\n```\n\n> 警告:`extraBody.thinking` **仅被 ClaudeModelClient 解析**。在 OpenAI 协议下,需要通过 `extraBody` 的原始注入机制(取决于中转站是否支持转发)。\n\n---\n\n## conversationHistory(预设消息)\n\n`conversationHistory` 用于注入固定的系统提示词和预设对话:\n\n```json\n{\n \"conversationHistory\": [\n { \"role\": \"system\", \"content\": \"你是一个记忆管理助手...\" },\n { \"role\": \"user\", \"content\": \"请开始处理。\" }\n ]\n}\n```\n\n消息在 `ApplyExtraMessages()` 中按顺序注入到客户端。\n"}, "237aa6617cf96d781b2f6409625577bc28ad1910": {"t": 1785764007.8529928, "n": 5035, "h": "4c54ca05191eb3a9", "c": "# Core 配置指南\n\n## 配置文件位置\n\n```\nStorage/Core/{CoreName}.json\n```\n\n每个 Core 按其名称加载同名 JSON 配置。文件不存在时回退到 `Storage/Core/Base.json`。\n\n## 完整配置字段\n\n### 通用字段(所有协议)\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `apiKey` | string | `\"\"` | API 密钥 |\n| `apiEndpoint` | string | `\"https://api.siliconflow.cn/v1/chat/completions\"` | API 端点完整 URL |\n| `model` | string | `\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\"` | 模型 ID |\n| `temperature` | double | `0.7` | 采样温度 |\n| `maxTokens` | int? | `null` | 最大输出 token 数 |\n| `topP` | double? | `null` | 核采样参数 |\n| `frequencyPenalty` | double? | `null` | 频率惩罚 |\n| `presencePenalty` | double? | `null` | 存在惩罚 |\n| `stream` | bool | `true` | 是否流式输出 |\n| `n` | int | `1` | 候选回复数 |\n| `useNativeTools` | bool | `false` | 是否使用原生 tool_use/function_calling |\n| `extraBody` | dict? | `null` | 注入请求体的额外字段 |\n| `conversationHistory` | List\\<Message\\> | `[]` | 预设对话历史(系统提示词等) |\n| `provider` | string | `\"openai\"` | 协议选择(见下方) |\n\n### Claude/Anthropic 专属字段\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `anthropicVersion` | string? | `null` | Anthropic API 版本头(如 `\"2023-06-01\"`) |\n| `promptCaching` | bool | `false` | 启用细粒度 prompt caching(system/user 消息自动加 `cache_control`) |\n\n---\n\n## 协议选择 (`provider`)\n\n`provider` 字段是**唯一的协议切换开关**,在 `ModelClientFactory.Create()` 中决定使用哪个 SDK:\n\n| `provider` 值 | 客户端类 | SDK |\n|---------------|----------|-----|\n| `\"claude\"` 或 `\"anthropic\"` | `ClaudeModelClient` | `Anthropic.SDK` |\n| `\"openai\"` 或其他/省略 | `OpenAIModelClient` | `OpenAI` NuGet |\n\n### OpenAI 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://api.deepseek.com/v1/chat/completions\",\n \"model\": \"deepseek-v4-flash\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true\n}\n```\n\n- `provider` 可省略(默认值 `\"openai\"`)\n- `apiEndpoint` 填完整路径(含 `/v1/chat/completions`)\n- 适用后端:DeepSeek、SiliconFlow、OpenAI 官方、任何 OpenAI 兼容 API\n\n### Claude 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://514claude.xyz/v1/messages\",\n \"model\": \"claude-opus-4-6\",\n \"provider\": \"claude\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true,\n \"anthropicVersion\": null,\n \"promptCaching\": true\n}\n```\n\n- `provider` **必须设为** `\"claude\"`(或 `\"anthropic\"`)\n- `apiEndpoint` 填 Anthropic 格式基路径(`/v1/messages`),SDK 自动拼接 `{base}/{version}/messages`\n- `promptCaching` 启用时自动在 system/user 消息上添加 `cache_control`\n- `extraBody.thinking` 可启用 Claude 扩展思考(`{\"type\": \"enabled\", \"budget_tokens\": 16000}`)\n\n### 协议互换注意事项\n\n切换 `provider` 时必须同步更新 `apiEndpoint`,否则 API 调用会 404:\n\n| 切换方向 | Endpoint 变化 |\n|----------|--------------|\n| Claude → OpenAI | `/v1/messages` → `/v1/chat/completions` |\n| OpenAI → Claude | `/v1/chat/completions` → `/v1/messages` |\n\n协议专属功能在切换后**静默丢失**(不报错):\n- `promptCaching` → OpenAI 客户端忽略\n- `anthropicVersion` → OpenAI 客户端忽略\n- `extraBody.thinking` → OpenAI 客户端忽略\n- Thinking 流事件 → OpenAI 客户端不发出\n\n---\n\n## Persona 注入\n\nPersona.txt 作为普通 prompt 文件处理。需要 Persona 的 Core 在 `promptFiles` 数组首项加入 `\"Persona.txt\"`,由 `PromptLoader` 统一按序加载。不需要 Persona 的 Core(工具性核心如 SummarizationCore、MemoryExtractionCore 等)不在 `promptFiles` 中包含即可。\n\n---\n\n## 当前配置分布\n\n| 配置文件名 | provider | model | useNativeTools | 用途 |\n|-----------|----------|-------|:---:|------|\n| `Base.json` | openai | deepseek-v4-flash | - | 默认回退 + 工具核心共用 |\n| `WorkingCore.json` | claude | claude-opus-4-6 | ✓ | 频道循环 Working 模式 |\n| `ExpressCore.json` | claude | claude-sonnet-4-6 | ✓ | 频道循环 Express 模式 |\n| `SystemCore.json` | claude | claude-opus-4-6 | ✓ | 系统循环 |\n| `ReviewCore.json` | openai | deepseek-v4-pro | ✓ | 复盘引擎 |\n| `CombineCore.json` | openai | deepseek-v4-flash | - | 记忆组合 |\n| `LinkCore.json` | openai | deepseek-v4-flash | - | 关联分析 |\n| `ConsolidationCore.json` | openai | deepseek-v4-flash | - | 记忆整合第一轮 |\n| `ConsolidationFinalCore.json` | openai | deepseek-v4-flash | - | 记忆整合第二轮 |\n| `DedupCore.json` | openai | deepseek-v4-flash | - | 记忆去重 |\n| `WeightCore.json` | openai | deepseek-v4-flash | - | 权重评估 |\n| `MemoryExtractionCore.json` | openai | deepseek-v4-flash | - | 记忆提取 |\n| `MemoryQueryCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SleepTalkCore.json` | openai | deepseek-v4-flash | - | 梦话生成 |\n| `SubAgentCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SummarizationCore.json` | (特殊格式) | - | - | 摘要压缩 |\n\n> 注:`VisionProvider.json`、`OcrProvider.json`、`EmbeddingProvider.json` 不是 Core 配置,而是独立 Provider 的配置。\n\n---\n\n## ExtraBody 用法\n\n`extraBody` 用于向 API 请求体注入非标准字段,常见用途:\n\n### DeepSeek 思考功能(OpenAI 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\" }\n }\n}\n```\n\n### Claude 扩展思考(Claude 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 16000 }\n }\n}\n```\n\n> 警告:`extraBody.thinking` **仅被 ClaudeModelClient 解析**。在 OpenAI 协议下,需要通过 `extraBody` 的原始注入机制(取决于中转站是否支持转发)。\n\n---\n\n## conversationHistory(预设消息)\n\n`conversationHistory` 用于注入固定的系统提示词和预设对话:\n\n```json\n{\n \"conversationHistory\": [\n { \"role\": \"system\", \"content\": \"你是一个记忆管理助手...\" },\n { \"role\": \"user\", \"content\": \"请开始处理。\" }\n ]\n}\n```\n\n消息在 `ApplyExtraMessages()` 中按顺序注入到客户端。\n"}, "43cfe0640971b1d3a300e89267040d84aac48a16": {"t": 1785764009.3265114, "n": 5108, "h": "32841d774d3a18e8", "c": "# Core 配置指南\n\n## 配置文件位置\n\n```\nStorage/Core/{CoreName}.json\n```\n\n每个 Core 按其名称加载同名 JSON 配置。文件不存在时回退到 `Storage/Core/Base.json`。\n\n## 完整配置字段\n\n### 通用字段(所有协议)\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `apiKey` | string | `\"\"` | API 密钥 |\n| `apiEndpoint` | string | `\"https://api.siliconflow.cn/v1/chat/completions\"` | API 端点完整 URL |\n| `model` | string | `\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\"` | 模型 ID |\n| `temperature` | double | `0.7` | 采样温度 |\n| `maxTokens` | int? | `null` | 最大输出 token 数 |\n| `topP` | double? | `null` | 核采样参数 |\n| `frequencyPenalty` | double? | `null` | 频率惩罚 |\n| `presencePenalty` | double? | `null` | 存在惩罚 |\n| `stream` | bool | `true` | 是否流式输出 |\n| `n` | int | `1` | 候选回复数 |\n| `useNativeTools` | bool | `false` | 是否使用原生 tool_use/function_calling |\n| `extraBody` | dict? | `null` | 注入请求体的额外字段 |\n| `conversationHistory` | List\\<Message\\> | `[]` | 预设对话历史(系统提示词等) |\n| `provider` | string | `\"openai\"` | 协议选择(见下方) |\n\n### Claude/Anthropic 专属字段\n\n| JSON 键 | 类型 | 默认值 | 说明 |\n|---------|------|--------|------|\n| `anthropicVersion` | string? | `null` | Anthropic API 版本头(如 `\"2023-06-01\"`) |\n| `promptCaching` | bool | `false` | 启用细粒度 prompt caching(system/user 消息自动加 `cache_control`) |\n\n---\n\n## 协议选择 (`provider`)\n\n`provider` 字段是**唯一的协议切换开关**,在 `ModelClientFactory.Create()` 中决定使用哪个 SDK:\n\n| `provider` 值 | 客户端类 | SDK |\n|---------------|----------|-----|\n| `\"claude\"` 或 `\"anthropic\"` | `ClaudeModelClient` | `Anthropic.SDK` |\n| `\"openai\"` 或其他/省略 | `OpenAIModelClient` | `OpenAI` NuGet |\n\n### OpenAI 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://api.deepseek.com/v1/chat/completions\",\n \"model\": \"deepseek-v4-flash\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true\n}\n```\n\n- `provider` 可省略(默认值 `\"openai\"`)\n- `apiEndpoint` 填完整路径(含 `/v1/chat/completions`)\n- 适用后端:DeepSeek、SiliconFlow、OpenAI 官方、任何 OpenAI 兼容 API\n\n### Claude 协议配置示例\n\n```json\n{\n \"apiKey\": \"sk-xxx\",\n \"apiEndpoint\": \"https://514claude.xyz/v1/messages\",\n \"model\": \"claude-opus-4-6\",\n \"provider\": \"claude\",\n \"temperature\": 0.7,\n \"maxTokens\": 4096,\n \"stream\": true,\n \"useNativeTools\": true,\n \"anthropicVersion\": null,\n \"promptCaching\": true\n}\n```\n\n- `provider` **必须设为** `\"claude\"`(或 `\"anthropic\"`)\n- `apiEndpoint` 填 Anthropic 格式基路径(`/v1/messages`),SDK 自动拼接 `{base}/{version}/messages`\n- `promptCaching` 启用时自动在 system/user 消息上添加 `cache_control`\n- `extraBody.thinking` 可启用 Claude 扩展思考(`{\"type\": \"enabled\", \"budget_tokens\": 16000}`)\n\n### 协议互换注意事项\n\n切换 `provider` 时必须同步更新 `apiEndpoint`,否则 API 调用会 404:\n\n| 切换方向 | Endpoint 变化 |\n|----------|--------------|\n| Claude → OpenAI | `/v1/messages` → `/v1/chat/completions` |\n| OpenAI → Claude | `/v1/chat/completions` → `/v1/messages` |\n\n协议专属功能在切换后**静默丢失**(不报错):\n- `promptCaching` → OpenAI 客户端忽略\n- `anthropicVersion` → OpenAI 客户端忽略\n- `extraBody.thinking` → OpenAI 客户端忽略\n- Thinking 流事件 → OpenAI 客户端不发出\n\n---\n\n## Persona 注入\n\n若 Core 的 `UsePersona = true` 且 `Storage/Core/Persona.txt` 文件存在,`Processor` 构造时会自动将 Persona 文本注入到配置的 `conversationHistory` 的第一条 system 消息之前。\n\n控制逻辑:\n- `CoreBase` 默认 `UsePersona = true`(虚属性)\n- 子类通过 `override bool UsePersona => false` 跳过\n- `AgentCore` 通过 `usePersona` 构造参数条件化控制\n\n---\n\n## 当前配置分布\n\n| 配置文件名 | provider | model | useNativeTools | 用途 |\n|-----------|----------|-------|:---:|------|\n| `Base.json` | openai | deepseek-v4-flash | - | 默认回退 + 工具核心共用 |\n| `WorkingCore.json` | claude | claude-opus-4-6 | ✓ | 频道循环 Working 模式 |\n| `ExpressCore.json` | claude | claude-sonnet-4-6 | ✓ | 频道循环 Express 模式 |\n| `SystemCore.json` | claude | claude-opus-4-6 | ✓ | 系统循环 |\n| `ReviewCore.json` | openai | deepseek-v4-pro | ✓ | 复盘引擎 |\n| `CombineCore.json` | openai | deepseek-v4-flash | - | 记忆组合 |\n| `LinkCore.json` | openai | deepseek-v4-flash | - | 关联分析 |\n| `ConsolidationCore.json` | openai | deepseek-v4-flash | - | 记忆整合第一轮 |\n| `ConsolidationFinalCore.json` | openai | deepseek-v4-flash | - | 记忆整合第二轮 |\n| `DedupCore.json` | openai | deepseek-v4-flash | - | 记忆去重 |\n| `WeightCore.json` | openai | deepseek-v4-flash | - | 权重评估 |\n| `MemoryExtractionCore.json` | openai | deepseek-v4-flash | - | 记忆提取 |\n| `MemoryQueryCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SleepTalkCore.json` | openai | deepseek-v4-flash | - | 梦话生成 |\n| `SubAgentCore.json` | openai | deepseek-v4-flash | - | (已废弃) |\n| `SummarizationCore.json` | (特殊格式) | - | - | 摘要压缩 |\n\n> 注:`VisionProvider.json`、`OcrProvider.json`、`EmbeddingProvider.json` 不是 Core 配置,而是独立 Provider 的配置。\n\n---\n\n## ExtraBody 用法\n\n`extraBody` 用于向 API 请求体注入非标准字段,常见用途:\n\n### DeepSeek 思考功能(OpenAI 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\" }\n }\n}\n```\n\n### Claude 扩展思考(Claude 协议)\n\n```json\n{\n \"extraBody\": {\n \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 16000 }\n }\n}\n```\n\n> 警告:`extraBody.thinking` **仅被 ClaudeModelClient 解析**。在 OpenAI 协议下,需要通过 `extraBody` 的原始注入机制(取决于中转站是否支持转发)。\n\n---\n\n## conversationHistory(预设消息)\n\n`conversationHistory` 用于注入固定的系统提示词和预设对话:\n\n```json\n{\n \"conversationHistory\": [\n { \"role\": \"system\", \"content\": \"你是一个记忆管理助手...\" },\n { \"role\": \"user\", \"content\": \"请开始处理。\" }\n ]\n}\n```\n\n消息在 `ApplyExtraMessages()` 中按顺序注入到客户端。\n"}}}} |