SoL-Pi README

The project's README from github.com/NVlabs/SoL-Pi. As one markdown file: README.md.

SoL-Pi: Scaling Auto-Research Loops for Efficient Agent Harnesses

⚡ SoL-Pi: Scaling Auto-Research Loops for Efficient Agent Harnesses

arXiv: 2609.20519 Getting Started Configuration SoL-Pi Blog MIT License

[!NOTE] This repository contains the open-source version of SoL-Pi, a standalone extension for Pi. It is not an official distribution of Pi.

💡 TL;DR

Spend less without making the agent do less useful work.

SoL-Pi is a standalone extension for Pi that packages four reusable efficiency mechanisms discovered through scaled auto-research loops. It reduces repeated model turns, context replay, oversized observations, and unnecessary long-log reading while preserving the work and evidence an agent needs to finish a task.

SoL-Pi installs on top of an unmodified Pi release. Every mechanism is opt-in and disabled by default.

Introduction

Long-running coding agents accumulate repeated work. A file edit is often followed by a predictable validation command. Large tool results are replayed long after their first use. Completed subtasks remain in active context, and a frontier model may spend a full request reading a log when only a few lines affect the next decision.

SoL-Pi grew out of a broader question from our auto-research work: before scaling agent loops, can agents first make the harness itself more efficient? The search focused on constrained efficiency: reducing token traffic, inference work, and agent turns without stopping early, skipping verification, or hiding evidence.

The standalone release contains four mechanisms that survived that process. They operate at different parts of the harness and compose through Pi's public extension APIs.

What SoL-Pi Adds

Area Mechanism What changes
Tools Action Fusion An edit or write can run its follow-up validation command in the same tool call.
Observations ObservationPack Repeated large text results become stable handles with exact paged recall.
Delegation Evidence-Preserving Reducer Long diagnostic logs become compact receipts only when every retained quotation matches the archived source.
Context Online Context Compact Completed plan steps become candidate points for Pi's native compaction, subject to economic and window-pressure checks; after a successful compaction, Pi continues the task in a new turn.

The mechanisms share four rules:

Technical Details and Core Insights

Read the SoL-Pi blog for a deeper look at the technical details, design rationale, and core insights behind SoL-Pi, including how auto-research led to the four efficiency mechanisms and how they work.

Paper

Read our paper: SoL-Pi: Recursively Scaling Auto-Research Loops for Efficient Agent Harness.

Getting Started

Requirements

Install

Install the tested Pi release:

npm install --global @earendil-works/[email protected]

Then install SoL-Pi directly from NVlabs/SoL-Pi:

pi install git:github.com/NVlabs/SoL-Pi

To install it only for the current project, use the project-local scope:

pi install git:github.com/NVlabs/SoL-Pi --local --approve

Configure

SoL-Pi uses a single effective configuration. With the official Pi distribution, it looks for a sol-pi.json file in the following locations, in order:

  1. .pi/sol-pi.json in the current project, if the project is trusted and the file exists;
  2. ~/.pi/agent/sol-pi.json otherwise.

If neither file exists, SoL-Pi uses its built-in defaults. The project-level configuration takes precedence over the user-level configuration; the two files are not merged.

The following conservative configuration enables only the two local mechanisms that make no additional model calls and do not stop an active run:

{
  "version": 1,
  "actionFusion": true,
  "observationPack": true,
  "evidencePreservingReducer": false,
  "onlineContextCompact": false,
  "cacheWriteReadRatio": 12.5
}

Enable additional mechanisms only after reviewing their configuration and security implications. SoL-Pi uses no dedicated environment variables; feature flags, the reducer provider/model route, and the compaction ratio are configured in sol-pi.json. See sol-pi.example.json for a template listing every key.

For the complete schema, see Configuration. Coding agents and automated environments should follow the canonical agent installation and configuration protocol, which describes an all-enabled configuration checked with scripts/check-sol-pi-config.mjs --require-all-enabled.

Storage and Security

ObservationPack and Evidence-Preserving Reducer store session-specific archives under:

<session-directory>/sol-pi/<session-id>/
├── observation-pack/
└── evidence-preserving-reducer/

They archive eligible source material in this directory. The archived copies remain local and are not automatically deleted when the Pi session ends.

Online Context Compact stores its state in Pi's session log. After a successful compaction, it starts a new turn and automatically continues the active task. Cancelling the run or exiting Pi does not trigger automatic continuation.

Evidence-Preserving Reducer may send eligible diagnostic-log content to its configured reducer model using Pi-managed authentication. Review SECURITY.md before enabling it. Do not enable remote reduction for logs that must remain local.

Documentation

Document Purpose
Configuration Config search order, schema, defaults, and trust behavior
Compatibility Supported Pi APIs and standalone integration details
Security Local storage, remote reduction, and sensitive behavior
Agent installation Reproducible installation and all-enabled validation procedure

Development

Install from the lockfile and run the complete source checks:

npm ci --ignore-scripts
npm run check
npm audit --audit-level=high
node scripts/check-pi-compat.mjs

npm run check covers TypeScript, the complete test suite, and package inspection. The development dependency set is pinned to Pi 0.85.1; runtime Pi packages remain peer dependencies so Pi owns their installation and upgrades.

Project Status

SoL-Pi is developed and maintained by NVIDIA as a standalone extension for Pi.

We welcome tested, Pi-compatible extension PRs that improve token efficiency and reduce token cost. Our team will help benchmark contributions, publish results on a regular reporting cycle, and credit authors of accepted PRs as Contributors. See CONTRIBUTING.md for details.

Acknowledgements

SoL-Pi builds on the public extension interfaces provided by Pi. Pi remains an independent upstream project and is not vendored into this repository.

License

SoL-Pi is released under the MIT License.

Star History

SoL-Pi star history chart

SoL-Pi (NVlabs/SoL-Pi)

Searching Database…

3.5K ·GitHub
这是什么?SoL-Pi 是 Pi 编程代理的一个独立扩展,它打包了通过大规模自动化研究循环发现的四种提效机制。它可以减少重复的模型轮次、上下文重放、过大的观测结果和冗长日志的阅读,同时不丢失代理真正需要的工作内容。
它是一个独立的编程代理,还是给我已有的代理加的插件?是附加组件,不是代理:它直接安装在未经修改的 Pi 版本之上,只导入 Pi 的公开扩展 API,既不修改 Pi 的源码,也不把源码打包进来。它也不是 Pi 的官方发行版。
任何版本的 Pi 都能用吗?不行——它只针对 Pi 0.85.1 做过测试,并且需要 Node.js 22.19 或更高版本以及 npm。Pi 的运行时包保留为 peer dependencies,所以 Pi 的安装和升级仍由它自己负责。
装好之后立刻就能省时间吗?不能——每种机制都是可选的,默认全部关闭,所以不做任何配置的话四种机制都不会启用。保守的初始配置只会启用两个不需要额外调用模型的本地机制。
我的会话数据会离开我的电脑吗?ObservationPack 和 Reducer 的存档都保存在本地,会话结束时也不会自动删除。要注意的是:Evidence-Preserving Reducer 可能会把符合条件的诊断日志内容发送给它所配置的 reducer 模型——请先阅读 SECURITY.md,敏感日志请只使用纯本地的机制。
Action Fusion 是什么?它让编辑或写入操作在同一次工具调用中直接执行后续的验证命令,这样代理就不用为一次可以预见的检查单独花费一个模型轮次。
ObservationPack 是做什么的?反复出现的大段文本结果会变成稳定的句柄,并支持按页精确取回,原始内容在本地存档,所以代理既省下了 token,又不会失去对原始数据的访问。
Evidence-Preserving Reducer 是怎么避免丢失信息的?一份很长的诊断日志只有在每一段被保留的引文都能与本地存档的原始内容核对一致时,才会被压缩成简短的凭据;如果核对失败,原始结果将原样保留。
NVIDIA 为什么要做这个?它源自团队的自动化研究工作,探讨的问题是在扩展代理循环之前,代理能否先让工具框架本身变得更高效。这四种机制就是一场受约束搜索留下的成果——搜索明确禁止提前停止、跳过验证或隐藏证据。
Creator
NVlabs
Size
28.7 MB
Stars
3.5K
Updated
CommitOct 14
Age
1mo
Commits · 90 Days