LightMem2

agent
Guvenlik Denetimi
Basarisiz
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 11 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in components/tokenpilot/adapters/openclaw/scripts/install_release.sh
  • rm -rf — Recursive force deletion command in components/tokenpilot/adapters/openclaw/scripts/pack_release.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

A Plug-and-Play, Cost-Efficient, and Lightweight Memory Plugin for Long-Horizon LLM Agents

README.md

LightMem2

A modular framework for long-running agent memory and context management

framework runtime component pnpm license

LightMem2 overview

LightMem2 is a lightweight runtime framework for long-running LLM agents. It reduces context growth and serving cost in real shared-session workloads.

95.7% fewer input tokens   |   87.0% lower cost
vs. Vanilla OpenClaw on Claw-Eval continuous mode

67.4% fewer input tokens   |   61.5% lower cost
vs. Vanilla OpenClaw on PinchBench continuous mode


📑 Table of Contents

📢 News

🔧 Installation

Installation Steps

If your OpenClaw home or config path is not under the default ~/.openclaw, you can override it with:

export LIGHTMEM2_OPENCLAW_HOME="/path/to/openclaw-home"
export OPENCLAW_CONFIG_PATH="/path/to/openclaw.json"

Then, clone this repository and run the installer script:

git clone https://github.com/zjunlp/LightMem2.git
cd LightMem2
corepack enable
pnpm install
pnpm build
pnpm component:install:tokenpilot:openclaw

The installer will:

  • package the current TokenPilot OpenClaw adapter
  • install it into ~/.openclaw/extensions/tokenpilot
  • update ~/.openclaw/openclaw.json
  • enable the TokenPilot plugin entry
  • switch plugins.slots.contextEngine to layered-context
  • apply the default normal runtime mode
  • try to restart the OpenClaw gateway automatically

⚡ Quick Start

1. Use the Component Namespace

When the current OpenClaw adapter is active, OpenClaw will expose models under:

lightmem2/<model>

For example:

lightmem2/gpt-5.4-mini

For the current LightMem2 runtime path, use a lightmem2/... model instead of your original provider model.

2. Verify It in a Real Session

The simplest manual verification flow is:

  1. Start or restart OpenClaw.
  2. Open a session with a lightmem2/<model> model.
  3. Run:
/lightmem2 status

You should see a status block similar to:

  • plugin entry enabled
  • config enabled
  • mode normal
  • context engine slot layered-context
  • stabilizer enabled
  • reduction enabled

For a fuller runtime summary, run:

/lightmem2 report
/lightmem2 doctor
/lightmem2 visual
/lightmem2 mode normal

/lightmem2 doctor is the quickest integration self-check for the current
OpenClaw adapter surface.
/lightmem2 visual opens the local visual inspector for stability, reduction,
and eviction snapshots.
/lightmem2 mode <conservative|normal|aggressive> switches preset runtime behavior.

3. Run the Built-In Smoke Test

bash docs/scripts/smoke_isolated_gateway.sh

Before running it, set your upstream provider info:

export LIGHTMEM2_API_KEY="your_api_key"
export LIGHTMEM2_BASE_URL="https://your-openai-compatible-endpoint/v1"

If your machine does not need an upstream HTTP proxy, also clear:

export LIGHTMEM2_UPSTREAM_HTTP_PROXY=
export LIGHTMEM2_UPSTREAM_HTTPS_PROXY=

The smoke script will:

  • create a temporary OpenClaw runtime home
  • wire LightMem2 as a local proxy provider
  • start a local gateway
  • send a minimal Reply with exactly: pong request

4. Go Deeper

Once the basic runtime path is working, use these component-level docs:

🧩 Components

LightMem2 is intended to host multiple long-running-agent components over time.

Component Role Main Docs Experiments
TokenPilot Runtime component for context stabilization, reduction, and lifecycle-aware eviction components/tokenpilot/README.md experiments/tokenpilot/README.md

🖼️ Visual Results

The screenshots below come from the built-in visual inspector opened with:

/lightmem2 visual
TokenPilot runtime effects

Stable-prefix view:

TokenPilot stabilizer view

Reduction view:

TokenPilot reduction view

Eviction view:

TokenPilot eviction view

🏗️ Architecture

The current public repository is organized around released component and its current production host adapter.

At a high level:

  • components/<name>/packages
    • shared logic that should remain reusable across hosts
  • components/<name>/adapters
    • host-specific integration code, install surfaces, runtime hooks, and command wiring
LightMem2/
├── components/
│   └── tokenpilot/
│       ├── adapters/
│       │   └── openclaw/         # current production host adapter for OpenClaw
│       └── packages/
│           ├── host-adapter/     # Shared host-adapter contracts and path-resolution interfaces
│           ├── runtime-core/     # Host-agnostic runtime engine and shared execution logic
│           ├── kernel/           # Shared types, interfaces, events, and runtime contracts
│           └── layers/           # Stateful and policy-oriented logic
│               ├── history/      # Canonical state, raw semantic turns, task registry
│               ├── decision/     # Policy analysis, reduction/eviction decisions, estimator
│               └── memory/       # Experimental memory layer; distillation and retrieval are still in progress
├── docs/                         # Public-facing notes and smoke helpers for the current runtime path
├── experiments/                  # Benchmark adapters and evaluation scripts for the current runtime path
└── README.md

🧪 Experiments

LightMem2 keeps benchmark adapters, datasets, and runner scripts under:

experiments/

The root entry for experiment reproduction is:

The current component-level experiment hub is:

The currently documented benchmark subtrees are:

Recommended reproduction flow:

  1. Finish the installation steps in this root README and verify the plugin in a real OpenClaw session.
  2. Open experiments/README.md and choose the benchmark you want to reproduce.
  3. Open experiments/tokenpilot/README.md for the current component-level benchmark index.
  4. Follow the benchmark-specific README for dataset assets, environment setup, and official runner commands.
  5. Run the benchmark from its scripts/run_baseline.sh or scripts/run_method.sh entrypoint.

💡 Examples

The first in-session commands to care about are:

/lightmem2 status
/lightmem2 report
/lightmem2 doctor
/lightmem2 visual
/lightmem2 mode normal
/lightmem2 help

Use them in that order:

  • /lightmem2 status confirms the component is active
  • /lightmem2 report shows savings after a few turns
  • /lightmem2 doctor checks the current OpenClaw adapter installation and config surface
  • /lightmem2 visual opens the local visualization page for runtime effects
  • /lightmem2 mode <conservative|normal|aggressive> switches preset runtime behavior
  • /lightmem2 help shows the full command surface

For full command details, runtime state, and debugging notes, see:

📁 Experimental Results

The tables below summarize the current LightMem2 runtime path, implemented today through the TokenPilot component, on PinchBench and Claw-Eval.

Isolated mode evaluates each task in a fresh session, focusing on single-task behavior without cross-task history carryover.
Continuous mode evaluates longer-running shared-session workflows, where context accumulation and cache reuse matter much more.

For exact reproduction commands, start from:

PinchBench

Isolated Mode

Method Overall Prod Res Write Code Anal CSV Log Meet Mem Skill Integ Cache Read (M) Cache Miss (M) Output (M) Cost ($)
Vanilla 80.5 87.2 68.7 84.1 86.0 75.1 83.0 94.7 81.4 86.5 70.3 55.3 6.184 8.753 0.285 8.31
LLMLingua-2 76.9 89.3 64.0 82.1 86.9 80.8 79.6 84.4 66.3 85.0 79.6 72.1 14.241 3.975 0.384 5.78
SelectiveContext 76.5 88.5 64.5 73.0 83.7 82.6 81.1 92.8 63.3 86.9 82.8 77.2 11.273 4.642 0.324 5.79
LCM 77.8 90.1 64.9 79.6 85.4 81.3 81.0 87.1 67.5 85.0 81.7 80.6 16.018 3.064 0.356 5.10
Pichay 78.9 85.4 58.9 71.8 79.0 88.3 79.8 83.6 84.0 91.3 69.8 63.3 6.717 3.333 0.238 4.07
Summary 79.5 80.7 66.3 83.5 77.9 82.1 87.5 77.2 81.3 92.5 67.2 54.4 12.303 3.009 0.296 4.51
MemoBrain 78.1 86.8 62.1 88.9 85.7 82.6 88.3 85.4 63.6 92.5 76.1 69.7 10.200 2.107 0.233 3.36
AgentSwing 78.4 89.8 71.9 80.2 79.5 83.5 80.8 83.7 77.9 92.5 65.7 35.0 4.534 7.129 0.241 6.77
Keep-Last-N 80.4 86.0 70.0 82.4 80.1 77.6 78.3 91.5 84.3 92.5 70.1 87.8 12.813 2.657 0.291 4.26
MemOS 79.4 84.2 54.4 83.1 82.3 78.2 81.1 97.2 77.6 92.5 85.9 80.2 29.018 4.573 0.492 7.81
LightMem2 81.0 89.0 71.2 80.0 72.6 88.9 85.3 95.2 79.4 95.0 95.2 58.0 8.893 1.933 0.244 3.22

Continuous Mode

Method Overall Prod Res Write Code Anal CSV Log Meet Mem Skill Integ Cache Read (M) Cache Miss (M) Output (M) Cost ($)
Vanilla 79.2 83.5 58.4 86.8 80.0 78.5 87.8 94.6 77.6 95.0 55.8 83.6 25.015 5.943 0.202 7.24
LLMLingua-2 73.8 85.8 58.4 80.3 74.3 79.6 82.8 84.2 63.4 90.0 79.1 83.6 20.574 2.183 0.194 4.06
SelectiveContext 74.0 85.4 64.2 83.1 75.4 78.8 77.3 91.2 62.2 89.5 71.0 80.3 25.475 2.608 0.196 4.75
LCM 77.0 88.1 63.2 90.1 75.7 78.5 85.4 88.9 65.1 82.8 80.8 78.2 18.708 2.417 0.222 4.21
Pichay 76.5 88.0 66.7 76.2 81.0 77.6 83.5 84.2 67.6 100.0 63.8 75.3 11.698 6.874 0.260 7.20
Summary 78.4 89.1 64.4 73.8 82.9 69.6 81.6 93.6 80.3 95.0 61.7 75.3 20.687 6.249 0.196 7.12
MemoBrain 78.0 87.7 65.0 85.5 84.9 75.9 81.0 89.0 72.3 90.3 86.6 84.7 12.917 2.283 0.232 3.73
AgentSwing 78.5 86.3 67.3 89.0 79.1 82.4 87.4 68.1 72.4 93.8 61.7 83.8 12.680 5.476 0.314 6.47
Keep-Last-N 79.1 86.3 67.0 87.8 87.0 77.0 85.4 77.3 75.9 95.0 56.8 75.1 18.117 4.481 0.209 5.66
MemOS 80.9 87.5 59.0 85.4 87.1 82.0 81.0 95.0 78.1 92.5 87.4 84.1 30.859 8.939 0.308 10.41
LightMem2 81.3 76.7 76.9 90.6 84.1 86.0 85.6 89.1 73.6 95.0 77.2 80.1 8.551 1.549 0.219 2.79

PinchBench abbreviations: Prod=Productivity, Res=Research, Write=Writing, Code=Coding, Anal=Analysis, CSV=CSV Analysis, Log=Log Analysis, Meet=Meeting Analysis, Mem=Memory, Skill=Skills, Integ=Integrations.

Claw-Eval

Isolated Mode

Method Overall Wkfl Ops Fin Off Comm Prod Oprn Safe Term MM Oth Cache Read (M) Cache Miss (M) Output (M) Cost ($)
Vanilla 64.5 65.4 70.8 45.7 44.4 73.2 70.9 77.7 74.0 56.8 41.0 69.2 9.429 4.637 0.216 5.16
LLMLingua-2 61.9 58.7 67.5 57.6 43.3 62.9 70.1 62.4 61.0 49.6 44.0 75.2 8.169 4.043 0.182 4.44
SelectiveContext 60.7 59.1 68.2 46.3 36.9 61.5 75.5 59.2 67.2 53.1 44.0 74.7 8.271 3.862 0.181 4.31
LCM 61.2 59.0 67.3 51.1 47.7 65.9 76.6 58.4 58.6 51.4 41.5 72.2 9.776 3.543 0.172 4.17
Pichay 59.3 57.3 62.1 38.2 39.4 68.5 65.0 91.6 64.1 25.6 55.0 76.5 4.648 3.944 0.186 4.14
Summary 62.0 70.0 71.0 32.2 20.6 80.0 68.5 82.8 49.2 20.0 41.0 71.4 2.935 2.871 0.174 3.16
MemoBrain 58.0 64.5 60.5 26.1 37.6 56.1 59.9 71.0 63.4 20.0 41.0 75.3 18.182 5.118 0.332 6.69
AgentSwing 60.9 64.2 66.5 44.1 45.7 67.8 52.8 85.8 57.2 25.6 53.6 68.8 4.580 3.585 0.194 3.91
Keep-Last-N 61.8 67.1 73.8 44.7 21.6 54.5 63.6 86.2 38.4 39.4 55.0 69.1 4.229 1.845 0.186 2.54
MemOS 61.6 64.7 74.2 40.9 25.2 71.2 32.0 73.6 80.2 20.0 56.2 74.6 12.582 2.709 0.363 4.61
LightMem2 63.1 68.1 75.4 47.0 22.3 71.8 65.0 72.0 47.8 37.0 45.6 69.9 4.436 1.154 0.239 2.27

Continuous Mode

Method Overall Wkfl Ops Fin Off Comm Prod Oprn Safe Term MM Oth Cache Read (M) Cache Miss (M) Output (M) Cost ($)
Vanilla 63.4 70.8 80.3 26.7 27.8 62.2 73.4 78.4 63.6 20.0 41.0 69.6 709.845 21.981 2.622 81.52
LLMLingua-2 59.0 58.7 71.3 34.8 30.6 61.9 65.3 77.6 64.6 20.0 41.0 72.4 575.654 37.197 2.630 82.91
SelectiveContext 56.5 58.1 71.6 21.8 21.2 54.7 74.0 57.7 66.4 20.0 41.0 72.3 437.114 48.678 2.754 81.69
LCM 61.4 66.8 69.0 38.3 29.5 63.3 74.9 66.6 67.3 20.0 41.0 72.7 383.007 28.714 2.691 62.37
Pichay 61.0 69.5 63.8 40.3 24.0 63.1 67.0 94.1 52.5 21.6 41.0 71.0 97.431 63.510 1.046 59.65
Summary 61.6 63.6 74.5 35.3 20.6 55.5 70.1 87.1 66.1 69.0 42.6 66.9 59.772 10.143 1.001 16.59
MemoBrain 57.9 65.9 55.0 24.9 36.7 47.8 73.5 64.2 60.6 20.0 38.4 81.6 47.497 13.990 1.134 19.16
AgentSwing 62.2 67.6 66.5 48.6 36.8 70.0 63.8 90.7 31.7 22.4 41.0 72.8 53.776 10.027 0.907 15.63
Keep-Last-N 60.7 65.3 74.0 35.5 20.8 54.1 73.6 91.9 35.7 59.5 42.4 64.7 44.812 9.106 0.780 13.70
MemOS 57.7 55.9 65.0 56.3 22.2 44.8 64.6 68.8 89.0 20.0 39.6 71.5 49.742 25.432 0.293 24.12
LightMem2 60.8 58.8 61.8 52.5 32.1 64.2 57.3 89.2 65.8 76.8 45.2 70.9 21.430 9.928 0.338 10.58

Claw-Eval abbreviations: Wkfl=Workflow, Ops=Ops, Fin=Finance, Off=Office QA, Comm=Communication, Prod=Productivity, Oprn=Operations, Safe=Safety, Term=Terminal, MM=Multimodal, Oth=Others.

⚙️ Configuration

For the current public runtime path, LightMem2 is configured through the
OpenClaw plugin entry in:

~/.openclaw/openclaw.json

At the moment, the runtime component is still mounted under the tokenpilot
plugin entry:

{
  "plugins": {
    "entries": {
      "tokenpilot": {
        "enabled": true,
        "config": {
          "...": "..."
        }
      }
    }
  }
}

Default Runtime Mode

The current install path applies normal mode by default and sets
plugins.slots.contextEngine to layered-context.

  • conservative: stabilizer on, lighter reduction preset, eviction off
  • normal: stabilizer on, balanced reduction preset, eviction off
  • aggressive: stabilizer on, aggressive reduction preset, eviction on with task-state estimator on

You can switch modes in-session with:

/lightmem2 mode conservative
/lightmem2 mode normal
/lightmem2 mode aggressive

Minimal Runtime Config

{
  "plugins": {
    "entries": {
      "tokenpilot": {
        "enabled": true,
        "config": {
          "enabled": true,
          "proxyBaseUrl": "https://your-openai-compatible-endpoint/v1",
          "proxyApiKey": "your_api_key",
          "modules": {
            "stabilizer": true,
            "reduction": true,
            "eviction": false
          }
        }
      }
    }
  }
}

For a first successful run, only these fields matter:

  • enabled
  • proxyBaseUrl
  • proxyApiKey
  • modules.stabilizer
  • modules.reduction
  • modules.eviction

Recommended starting behavior:

  • keep stabilizer enabled
  • keep reduction enabled
  • leave eviction off until the basic runtime path is already working

If you do not want to hardcode provider credentials in openclaw.json, you can
also supply them through environment variables before starting OpenClaw:

export LIGHTMEM2_API_KEY="your_api_key"
export LIGHTMEM2_BASE_URL="https://your-openai-compatible-endpoint/v1"

If your OpenClaw home or config path is not under the default location, you can
also override:

export LIGHTMEM2_OPENCLAW_HOME="/path/to/openclaw-home"
export OPENCLAW_CONFIG_PATH="/path/to/openclaw.json"

Advanced estimator options, reduction-pass tuning, memory settings, runtime
state layout, and debugging details are intentionally kept out of the root
README.

For the full component-level configuration reference, see:

📄 Citation

Please cite our paper if you use EasyEdit in your work.

@inproceedings{fang2025lightmem,
  title={LightMem: Lightweight and Efficient Memory-Augmented Generation},
  author={Jizhan Fang and Xinle Deng and Haoming Xu and Ziyan Jiang and Yuqi Tang and Ziwen Xu and Shumin Deng and Yunzhi Yao and Mengru Wang and Shuofei Qiao and Huajun Chen and Ningyu Zhang},
  booktitle={The Fourteenth International Conference on Learning Representations},
  year={2026},
  url={https://openreview.net/forum?id=dyJ0GWpjJB}
}

@misc{xu2026tokenpilotcacheefficientcontextmanagement,
  title={TokenPilot: Cache-Efficient Context Management for LLM Agents},
  author={Buqiang Xu and Zirui Xue and Dianmou Chen and Chenyang Fu and Chiyu Wu and Caiying Huang and Chen Jiang and Jizhan Fang and Xinle Deng and Yijun Chen and Yunzhi Yao and Xuehai Wang and Jin Shang and Gong Yu and Ningyu Zhang},
  year={2026},
  eprint={2606.17016},
  archivePrefix={arXiv},
  primaryClass={cs.CL},
  url={https://arxiv.org/abs/2606.17016},
}

🎉Contributors

We thank all the contributors to this project, more contributors are welcome!

Other Related Projects

  • LLMLingua-2 — Token-level prompt compression
  • SelectiveContext — Self-information-based context reduction
  • Pichay — Demand paging for LLM context windows
  • MemoBrain — Executive memory for long-horizon reasoning agents
  • AgentSwing — Adaptive parallel context management routing for web agents
  • MemOS — Memory operating system for LLM agents
  • LightMem — Lightweight memory-augmented generation

🙌 We thank all the contributors to this project, and welcome further contributions from the community. We also thank the authors of the baseline methods evaluated in our experiments, including LLMLingua-2, SelectiveContext, Pichay, MemoBrain, AgentSwing, and MemOS, for making their work publicly available.

Yorumlar (0)

Sonuc bulunamadi