Townrain/dsh-session-title-interval-llm--packages-session-title-interval-llm1

@deepseek-ai/dsh-session-title-interval-llm

Every-N-prompts LLM provider plugin for DeepSeek Harness session titles

AI 分析

核心用途是按设定的 Prompt 间隔(interval)调用 LLM 自动更新会话标题。适合需要自动整理会话标题、同时希望控制 LLM 调用频率以节省 Token 的用户。

パッケージ
@deepseek-ai/dsh-session-title-interval-llm
バージョン
0.3.0
ライセンス
MIT
最終更新
2026/08/16

インストール

検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗

ドキュメント

README 全文を読む ↗

@deepseek-ai/dsh-session-title-interval-llm

English | 中文

Optional ctx.sessionTitle provider that summarizes every eligible human message through ctx.llm, but starts a new revision only after every interval new human prompts — plus the first eligible prompt of a fresh non-fork session, so a short session still gains a model title over the fallback. It registers the interval cadence and uses seeded history as well as child-session prompts; the interval continues counting across a fork boundary. A newer revision aborts and supersedes older work; even a provider that ignores cancellation cannot commit stale output.

Modes

The optional mode field selects the integration path:

  • provider (default) registers the interval cadence on the session-title service. It needs a harness build whose service ships the interval cadence, and it integrates with every service-owned surface (automatic scheduling, explicit refresh, the web session-row Regenerate title action).
  • injected runs on a stock harness with zero core changes: the plugin listens to session/event, counts eligible human messages per session, and appends session/title events directly — the deterministic fallback, the title fold, and the manual-rename pin keep working because every surface reads the log. A /retitle slash command (registered when a commands service is composed) regenerates on demand and deliberately unpins a manual rename.

The plugin uses the complete required shared LLM configuration plus its own required interval; the optional shared enabled switch composes as on by default. Omit both provider and model to inherit the exact route from each current logged main request, or set both to route title generation independently. The composed policy also registers the shared title-policy settings section, so a deployment with a settings service can re-route title generation, change the interval, or switch automatic titles off from the Web settings page without editing cordis.yml. If the final framed aggregate prompt exceeds maxInputBytes, the request fails instead of truncating history; automatic use warns and keeps the prior title.

Model Experience

Interval title request

What the model sees

The title model receives the shared title instruction and a JSON array of all eligible human messages through the current revision, in log order with exact seqs. Seeded history is included. Each revision re-reads the complete history, so later titles track the whole conversation instead of its first prompt.

Token effect

At most one auxiliary request follows every interval new eligible prompts, bounded per request by maxInputBytes and maxOutputTokens; explicit refreshes may add calls. The main agent request gains zero tokens.

KV Cache effect

No main-request invalidation. The auxiliary input grows or changes at each revision, so provider-specific cache reuse ends at the first changed JSON token.

Known Limitations and Deferred Work

  • Input overflow retains the prior title; this provider has no summarization-of-summaries or retention policy for very long sessions.
  • It treats all eligible human messages equally and offers no weighting, filtering, or manual-title precedence.
  • Only eligible text prompts advance the interval; attachment-only or empty prompts schedule no revision.