Token导航 LogoToken导航

Agent Skill · 开发

compaction-ui-enhancements(压缩 UI 增强功能)

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

compaction-ui-enhancements 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 2,188。

总安装 19,657周安装 803GitHub Stars 公开资料未说明下载 6,360核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
2.3.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:compaction-ui-enhancements(压缩 UI 增强功能)
来源仓库:https://github.com/maverick-software/compaction-ui-enhancements
安装命令:
openclaw skills install compaction-ui-enhancements
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install compaction-ui-enhancements

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

提供后台内存压缩功能,支持自动触发与模型选择。包含聊天摘要段落、阈值配置与结果存储选项。可集成至 OpenClaw 界面实现可视化设置与管理。安装命令:openclaw skills install compaction-ui-enhancements。配置不当可能导致性能下降,建议逐步调优参数。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install compaction-ui-enhancements;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

compaction-ui-enhancements 怎么安装?

在终端执行 openclaw skills install compaction-ui-enhancements。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

compaction-ui-enhancements 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

compaction-ui-enhancements 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

compaction-ui-enhancements 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

compaction-ui-enhancements 用的人多吗?

公开数据是累计安装 19,657 次,近一周安装 803 次,下载 6,360 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

compaction-ui-enhancements 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
compaction-ui-enhancements

压缩 UI 增强功能 · 本页

19,657—接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
compaction-ui
version
2.3.0
description
Background memory compaction with auto-trigger, chat summary paragraph, configurable threshold, model selector, settings tab, and result storage for OpenClaw Control UI.

Compaction UI v2.1.0

Memory compaction system for the OpenClaw Control UI — background execution with toast notifications, auto-trigger at configurable token thresholds, conversation summary paragraphs in compacted output, dedicated settings tab with model selector, and result history.

Status: ✅ Active

ComponentStatus
Context Gauge Button✅ Working
Background Compaction (toast)✅ Working
Auto-Compaction Trigger✅ Working
Conversation Summary Paragraph✅ Working
Settings Tab (plugin-registered)✅ Working
Model Selector✅ Working
Last Result Storage + Viewer✅ Working
Settings Persistence & Reload✅ Working
Auth Hierarchy (OAuth > API > Fallback)✅ Working
Chat History Filters✅ Working
Full Background Isolation (no chat interference)✅ Working

Features

1. Context Gauge Button (app-render.helpers.ts)

A circular SVG progress ring in the chat toolbar that doubles as the manual compact trigger.

  • Placement: After session selector dropdown in renderChatControls()
  • Data source: sessionsResult.sessions[].totalTokens and contextTokens from session rows
  • Colors: Green (<60%), Yellow (60-85%), Red (≥85%)
  • Disabled: When utilization <20% or during active compaction
  • Tooltip: Shows "Context: XK / YK tokens (Z%)"

2. Background Compaction (Toast)

On click (or auto-trigger), compaction runs in the background using the standard bottom-right toast system — no blocking modal. The UI remains fully interactive.

  • Running toast: Shows "Memory Compaction" with spinner
  • Complete toast: Shows "Compacted: XK → YK" with checkmark (auto-dismisses after 5s)
  • Error toast: Shows failure message (auto-dismisses after 5s)
  • Uses backgroundJobToasts system consistent with all other background processes (cron, knowledge extraction, etc.)

3. Auto-Compaction

After every chat response (final event), the UI checks token usage against the configured threshold. If exceeded:

  • Background compaction triggers automatically
  • Toast shows "Auto-Compacting (X%)" with the current utilization
  • 5-minute debounce prevents repeated triggers
  • Chat refreshes automatically after successful compaction
  • Silent toast removal if nothing was compacted

4. Conversation Summary Paragraph

Every compaction output now begins with a ## Conversation Summary section before the structured ## Goal section. This is a 3-6 sentence natural language paragraph that:

  • Describes the overall topic(s) of the conversation
  • Explains the flow of discussion and key transitions
  • Summarizes how the conversation progressed
  • Written in past tense as a narrative overview

Implementation: Custom instructions are injected into the upstream compaction LLM call via compact.ts. The instruction is prepended to any user-provided custom instructions (from /compact [instructions]), so both coexist.

Example output:

## Conversation Summary
The conversation began with the user requesting improvements to the compaction
system, specifically moving from a blocking modal to background toasts. Discussion
then shifted to adding a settings tab with auto-compaction controls. After
implementing and testing those features, the user noticed settings weren't
persisting across tab navigations, which led to a fix for the module-level
state cache. Finally, the user requested adding a narrative summary paragraph
to the compaction output for better context.

## Goal
...

5. Settings Tab (Plugin-Registered)

A dedicated Compaction tab under the Agent navigation group, registered via the Plugin UI architecture.

Registration: plugins-ui.ts → BUILTIN_UI_VIEWS with id: "compaction", group: "agent", position: 7, icon: "archive"

Cards:

Auto-Compaction Card
  • Toggle: Enable/disable automatic compaction
  • Threshold slider: 10% to 95% (default: 60%)
  • Color-coded: Green (<60%), Yellow (60-85%), Red (≥85%)
Model Card
  • Dropdown: Select a specific model for compaction or use session default
  • Grouped by provider with context window sizes shown
  • Warning callout when custom model selected (API key reminder)
  • Fallback: If custom model fails, automatically falls back to session default
Result Storage Card
  • Toggle: Opt-in to save the compacted summary text for review
Last Compaction Card
  • Before/After: Large styled token counts in a 2-column grid
  • Stats: Tokens saved, percent reduction, trigger type, timestamp, session key
  • View Results: Expandable summary viewer (when storage is enabled)
  • Clear: Reset stored result
  • Hint: Shows "Enable Store Results" message when storage is off

State Management:

  • Module-level state persists across re-renders within a session
  • Settings reload from backend every time the tab is visited (2-second staleness threshold)
  • resetCompactionSettingsState() exported for tests and tab switches

6. Auth Hierarchy

Compaction uses resolveApiKeyForProvider via getApiKeyForModel — the same auth chain as chat:

OAuth → API Key → Fallback

No separate configuration needed. If OAuth (Claude Max) is configured as the primary auth profile, compaction uses it automatically. Custom model selection uses this same auth chain independently.

7. Result Storage

When enabled, the most recent compaction result is persisted to {agentDir}/compaction-config.json:

{
  "settings": {
    "autoEnabled": true,
    "autoThresholdPercent": 60,
    "storeLastResult": true,
    "compactionModel": "anthropic/claude-sonnet-4-6"
  },
  "lastResult": {
    "timestamp": 1709283600000,
    "trigger": "manual",
    "tokensBefore": 50614,
    "tokensAfter": 4766,
    "tokensSaved": 45848,
    "percentReduction": 91,
    "sessionKey": "agent:main:main",
    "summary": "## Conversation Summary\
The conversation focused on...\
\
## Goal\
..."
  }
}

When storage is disabled, metadata (timestamps, token counts) is still saved but the summary text is omitted.

8. Chat History Filters

  • NO_REPLY/HEARTBEAT_OK filtering: Skips assistant messages with these exact texts
  • Compaction divider: Renders labeled divider line for __openclaw.kind === "compaction" messages

Architecture

Backend RPCs

MethodDescription
sessions.compactExecute compaction (records result after completion)
compaction.getSettingsRead settings from config file
compaction.saveSettingsUpdate settings (threshold auto-clamped 10-95%)
compaction.getLastResultGet stored last compaction result
compaction.clearLastResultClear stored result

Files Modified

FilePurpose
src/gateway/server-methods/compaction.tsSettings RPCs, config I/O, result recording
src/gateway/server-methods/sessions.tssessions.compact RPC (records result after compaction)
src/gateway/server-methods/plugins-ui.tsPlugin view registration
src/gateway/server-methods.tsHandler wiring
src/gateway/server-methods-list.tsMethod registration
src/gateway/method-scopes.tsScope registration
src/agents/pi-embedded-runner/compact.tsChat summary instruction injection
ui/src/ui/app-render.helpers.tsContext gauge + background toast trigger
ui/src/ui/app-gateway.tsAuto-compaction check after final event
ui/src/ui/views/compaction-settings.tsSettings tab view
ui/src/ui/app-render.tsView wiring + import
ui/src/ui/views/chat.tsChat history filters

Config File

{agentDir}/compaction-config.json — per-agent, created on first settings save.

Plugin Registration

The compaction tab is registered as a builtin plugin view in plugins-ui.ts:

{
  id: "compaction",
  label: "Compaction",
  subtitle: "Memory Management",
  icon: "archive",
  group: "agent",
  position: 7,
  pluginId: "compaction-ui",
}

Known Gotchas

  • Settings not persisting across tab visits: Fixed in v2.1.0. The module-level _state.loaded flag was preventing reloads. Now reloads every 2 seconds when re-entering the tab.
  • Model selector requires API keys: If you select a custom model, make sure the provider's API key is configured. The UI shows a warning callout.
  • Compaction model format: Must be "provider/model" format (e.g. "anthropic/claude-sonnet-4-6"). Invalid formats are silently ignored and fall back to session default.
  • parentId skip-set propagation must be message-only: When filtering memory flush messages from readSessionMessages, the skip set must ONLY propagate through entries with a message field. Non-message protocol entries (type:"custom") bridge between logical turns — if their IDs enter the skip set, the entire remaining conversation gets hidden. The fix: only check parsed?.message entries against the skip set, and only add their IDs to it.
  • No blocking modal — ever: The gauge button in app-render.helpers.ts must NEVER render a full-screen overlay modal. Compaction is a background process; all status is communicated via the bottom-right toast system. Remove any position:fixed; inset:0 overlay conditioned on compactState.phase. The button may show a spinner icon while running, but must not block the UI.

Changelog

v2.1.0

  • Conversation summary paragraph: Compaction output now starts with a ## Conversation Summary narrative paragraph before structured sections
  • Model selector: Choose a specific model for compaction or use session default, with provider-grouped dropdown
  • Settings reload fix: Tab now reloads settings from backend every 2s instead of caching forever
  • Reference files updated: Synced references/ with current source

v2.0.0

  • Background compaction: Replaced blocking full-screen modal with background job toast
  • Auto-compaction: Triggers after chat response when token usage exceeds threshold (configurable, default 60%, 5-minute debounce)
  • Settings tab: Plugin-registered Compaction tab under Agent nav group
  • Result recording: sessions.compact records before/after token counts and optional summary
  • Auth hierarchy: Same OAuth → API → Fallback chain as chat
  • Settings RPCs: compaction.getSettings, compaction.saveSettings, compaction.getLastResult, compaction.clearLastResult

v1.0.0

  • Initial release: Context gauge button, blocking modal with animated phases, sessions.compact RPC with LLM summarization, chat history NO_REPLY/HEARTBEAT_OK filtering, compaction divider lines

平台分布

OpenClaw

87.27%
按下载量换算5,550

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills