Skip to content

feat: add utility models and generated session titles#87643

Merged
steipete merged 6 commits into
openclaw:mainfrom
zhangguiping-xydt:feat/issue-77165-new
Jul 4, 2026
Merged

feat: add utility models and generated session titles#87643
steipete merged 6 commits into
openclaw:mainfrom
zhangguiping-xydt:feat/issue-77165-new

Conversation

@zhangguiping-xydt

@zhangguiping-xydt zhangguiping-xydt commented May 28, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Closes #77165.

New Control UI sessions otherwise fall back to first-message snippets or session ids, which makes a busy sidebar difficult to scan. Small internal model tasks also had no shared lower-cost model setting, so title generation had to reuse ad hoc operation-specific routing or the agent's primary model.

This supersedes the older implementation attempt in #77225. The broader periodic re-titling proposal in #99583 remains out of scope.

Why This Change Was Made

  • Add agents.defaults.utilityModel plus agents.list[].utilityModel as a shared model route for short internal tasks. Explicit operation overrides win, then the per-agent utility model, the default utility model, and the agent primary model.
  • Generate one asynchronous dashboard-session title from the first non-command message and persist it as displayName, which the existing sidebar/session picker already consumes.
  • Preserve explicit labels, display names, subjects, and origin labels. Historical sessions, replaced/reset sessions, duplicate concurrent sends, and title failures do not overwrite metadata or block chat.
  • Route the existing Telegram DM topic-label and Discord generated thread-title paths through the same utility model selection.
  • Keep utility-only providers discoverable at Gateway startup and include utility refs in configured-model catalog scans.

User Impact

New dashboard sessions get a concise 3-6 word sidebar title after their first message. Existing sessions are not backfilled, explicit/manual names are never replaced, and title generation runs off the chat critical path.

Users can set a smaller model globally or per agent:

{
  agents: {
    defaults: {
      utilityModel: "openai/gpt-5.4-mini",
    },
  },
}

Utility tasks are separate model calls. Dashboard titles send at most the first 1,000 characters of the first non-command message to the selected provider; when utilityModel is unset, the agent primary model is used. The docs call out the cost and data-handling boundary.

Evidence

Thanks @Juliangsm for the feature request and @zhangguiping-xydt for the original PR work.

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui gateway Gateway runtime size: M triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 28, 2026
@clawsweeper

clawsweeper Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Codex review: stale review; fresh review needed.

Summary
The latest durable ClawSweeper review was for head b44a3af2913d39b60f987fc2bdabe7657379f878, but the PR head is now 3657c373c65982b67b3be3520641c266e9ac7ac1. Its old verdict and PR readiness labels are no longer current.

Next step
Run or wait for a fresh ClawSweeper review on the current PR head.

Review history (6 earlier review cycles)
  • reviewed 2026-07-04T05:08:31.721Z sha e646864 :: needs changes before merge. :: [P2] Deduplicate in-flight title generation
  • reviewed 2026-07-04T11:37:59.920Z sha 1ccb8a2 :: needs changes before merge. :: [P2] Allow origin-labeled sessions to generate titles
  • reviewed 2026-07-04T14:22:38.796Z sha c341b43 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-04T15:09:03.490Z sha fce07c4 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-04T15:17:24.856Z sha fce07c4 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-04T21:06:41.091Z sha 37b2e3e :: found issues before merge. :: [P2] Keep generated titles separate from manual display names | [P3] Remove the normal-PR changelog entry

@zhangguiping-xydt
zhangguiping-xydt force-pushed the feat/issue-77165-new branch 2 times, most recently from c60ea46 to d341f2d Compare May 28, 2026 13:42
@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 28, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. labels May 28, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 28, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 28, 2026
@zhangguiping-xydt
zhangguiping-xydt requested a review from a team as a code owner May 28, 2026 14:29
@github-actions github-actions Bot added the dependencies-changed PR changes dependency-related files label May 28, 2026
@openclaw-barnacle openclaw-barnacle Bot added channel: discord Channel integration: discord channel: googlechat Channel integration: googlechat channel: line Channel integration: line channel: matrix Channel integration: matrix extensions: diagnostics-otel Extension: diagnostics-otel extensions: lobster Extension: lobster extensions: memory-lancedb Extension: memory-lancedb channel: feishu Channel integration: feishu extensions: acpx labels May 28, 2026
@openclaw-barnacle openclaw-barnacle Bot removed channel: feishu Channel integration: feishu channel: twitch Channel integration: twitch extensions: acpx labels May 28, 2026
@zhangguiping-xydt

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@zhangguiping-xydt

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@zhangguiping-xydt

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@zhangguiping-xydt

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@steipete

steipete commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Merged via squash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: web-ui App: web-ui channel: discord Channel integration: discord channel: telegram Channel integration: telegram docs Improvements or additions to documentation extensions: codex gateway Gateway runtime P2 Normal backlog priority with limited blast radius. proof: supplied External PR includes structured after-fix real behavior proof. scripts Repository scripts size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Auto-Generate Session Titles via AI Summarization

3 participants