-
Notifications
You must be signed in to change notification settings - Fork 1
Session Title zh
上游会话标题生成系统在 Edge 中的适配。
上游参考:会话标题文档
会话标题管理 session 的持久化、写一次可覆盖的标题状态。由两个插件组成:
-
SessionTitleService(
ctx.sessionTitle)— 维护基于日志的标题状态。标题来自三个来源:显式用户重命名(钉住标题,停止自动生成)、已注册的提供者、或降级方案(首条 prompt 的前 N 个词)。向 session 日志追加session/title事件。 - FirstPromptTitle — 标题提供者,通过轻量 LLM 调用从首条用户 prompt 生成简洁标题。可配置目标词数、CJK 字符数、输入字节限制和超时。
标题同时注册为 SessionProjectionRegistry 中的 'title' 投影定义,通过标准投影机制推送给客户端。
SessionTitleService 和 FirstPromptTitle 原封安装,使用 Edge 专属配置:
-
fallbackMaxWords: 8、maxTitleBytes: 640— 标题长度限制 -
targetWords: 6、targetCjkCharacters: 12— LLM 生成目标 -
maxInputBytes: 4096、maxOutputTokens: 32、timeoutMs: 10_000— LLM 调用边界 -
provider: 'deepseek-official'、model: 'deepseek-v4-flash'— 使用与主 agent 相同的 DeepSeek 提供者
标题变更通过通用的 onChanged 投影桥流转——与 goal 和所有其他投影键使用相同的机制。SessionTitleService 追加 session/title 事件后,投影注册表计算新标题值,onChanged 缓冲,publishSessionEvent 在 flush 后以 WebSocket 帧 drain。
- 标题状态管理(基于日志的 fold、用户重命名钉住、提供者节奏)
- LLM 标题生成逻辑和 prompt 构造
- 首条 prompt 文本的降级标题派生
-
session/title事件格式和语义 - 标题投影定义及其在
SessionProjectionCache中的参与
FirstPromptTitle 在首条用户 prompt 后异步生成标题。LLM 调用限制在 32 个输出 token 和 10 秒超时。它独立于 agent turn 运行——session 可以在标题就绪前开始响应。标题到达后追加 session/title 事件,触发投影推送更新浏览器侧边栏。
标题是上游 SessionProjectionCache 管理的投影缓存的一部分。冷 session 从缓存快照或物化摘要提供标题——不需要事件重放。dsh_session_summaries 表也为 session 列表存储最新的标题事件数据。
| 组件 | 分类 | Edge 代码 |
|---|---|---|
| SessionTitleService | 复用 | 一行 ctx.plugin() 调用(含配置) |
| FirstPromptTitle | 复用 | 一行 ctx.plugin() 调用(含配置) |
| 标题投影推送 | 桥接 | 通用投影桥 |
关键观察:标题生成完全是上游代码——Edge 只提供配置值和通用投影桥。LLM 调用、降级逻辑和重命名处理都是上游代码。标题是证明通用桥有效的投影之一:同一个 onChanged 机制服务 goal、title 和任何未来的投影键,无需逐键适配器代码。
- Home
- Architecture
- Core & Scope
- Session & Persistence
- Model & Context
-
Execution & Tools
- Tools
- Bash
- Subprocess 🚫
- PTY Session 🚫
- Background Jobs 🚫
- Filesystem
- LSP Navigation 🚫
- Code Runtime 🚫
-
Web Access
⚠️ -
Skills
⚠️ - Workflow 🚫
- Subagent 🚫
-
Policy & Interaction
- Goal
- Approval 🚫
- Permission Presets 🚫
-
Sandbox
⚠️ - Plan Mode 🚫
- User Interaction 🚫
- Commands 🚫
- Schedule 🚫
- Message Feedback 🚫
- Platform & Access
- Development
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发