Skip to main content

Module ctx

Module ctx 

Source
Expand description

Context construction strategies — one entry point per model/provider.

This module owns the CtxBuilder trait (defined below) and the registry function for_provider (in resolver). Each concrete builder lives in its own file to keep mod.rs thin:

FileRole
mod.rsCtxBuilder trait definition + re-exports
resolver.rsfor_provider dispatch (add new models here)
render.rsDefault render / compression-plan policy
default.rsDefaultCtx — thin wrapper over render
ollama.rsOllamaCtx — small-window local models
truncate.rsShared per-tool truncation helpers

Adding a new per-model ctx strategy:

  1. Create ctx/<name>.rs with a pub struct XxxCtx and impl CtxBuilder for XxxCtx. Keep all ctor + tests + impl methods in that single file.
  2. Declare pub mod <name>; below.
  3. Register in resolver::for_provider.

The trait is narrow on purpose: build_messages owns the full render path for its model, including any system-prompt variation, cold-zone handling, or tool-schema trimming. The shared render and truncate modules offer building blocks that impls may call or ignore at will.

Re-exports§

pub use default::DefaultCtx;
pub use env::EnvSnapshot;
pub use ollama::OllamaCtx;
pub use resolver::for_provider;

Modules§

default
DefaultCtx — the fallback CtxBuilder implementation.
env
Session-start environment snapshot (C1 in CC’s taxonomy).
file_store
In-memory file content store — D3 step 1.
ollama
OllamaCtx — 为本地小窗口 Ollama 模型优化的上下文策略。
render
Default render & compression-plan policy for atomcode ctx.
resolver
for_provider — 按 provider 配置选 CtxBuilder 实现的唯一入口。
truncate

Traits§

CtxBuilder
Per-session context construction strategy. Selected once at AgentLoop::new via for_provider and rebuilt on ReloadConfig.