agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
36 lines (35 loc) • 1.61 kB
TypeScript
import type { MemoryStore } from '../store/index.js';
import type { MemoryPipeline } from './types.js';
import type { BeatExtractor } from '../beats/extractor.js';
export interface NarrativePipelineConfig {
/** The store both subflows share. */
readonly store: MemoryStore;
/**
* Beat extractor. Defaults to `heuristicExtractor()` — zero-dep,
* zero-cost, baseline quality. Swap for `llmExtractor({ provider })`
* for semantic quality.
*/
readonly extractor?: BeatExtractor;
/** Forwarded to `loadRecent` (how many beats to consider per turn). */
readonly loadCount?: number;
/** Forwarded to `pickByBudget`. */
readonly reserveTokens?: number;
readonly minimumTokens?: number;
readonly maxEntries?: number;
/** Tier filter for read (e.g. `['hot']`). */
readonly tiers?: ReadonlyArray<'hot' | 'warm' | 'cold'>;
/** Tier to tag written beats with. */
readonly writeTier?: 'hot' | 'warm' | 'cold';
/** Optional TTL for written beats (ms from write time). */
readonly writeTtlMs?: number;
/** Forwarded to `formatAsNarrative`. */
readonly formatHeader?: string;
readonly formatFooter?: string;
readonly formatShowRefs?: boolean;
readonly formatLeadIn?: string;
}
/**
* Build the narrative read + write pipelines sharing a single store.
* Returns `{ read, write }` ready to be passed to `Agent.memory()` via the appropriate `defineMemory` config (or used directly via `mountMemoryRead`/`mountMemoryWrite`).
*/
export declare function narrativePipeline(config: NarrativePipelineConfig): MemoryPipeline;