Class: UnifiedRetriever
Defined in: packages/agentos/src/rag/unified/UnifiedRetriever.ts:256
Unified retrieval orchestrator that executes a RetrievalPlan across ALL available sources in parallel, merges results via RRF, reranks, and feeds back into cognitive memory.
This is the single entry point for ALL retrieval in AgentOS. It replaces the need to call RetrievalAugmentor, QueryDispatcher, CognitiveMemoryManager, and MultimodalIndexer separately.
All source queries are executed with Promise.allSettled so partial
failures degrade gracefully — a failed GraphRAG query does not prevent
vector results from being returned.
Example
import { UnifiedRetriever } from '@framers/agentos/rag/unified';
import { buildDefaultPlan } from '@framers/agentos/rag/unified/types';
const retriever = new UnifiedRetriever({
hybridSearcher,
raptorTree,
graphEngine,
memoryManager,
hydeRetriever,
rerank: async (q, chunks, n) => reranker.rerank(q, chunks, n),
});
const plan = buildDefaultPlan('moderate');
const result = await retriever.retrieve('How does authentication work?', plan);
console.log(`Found ${result.chunks.length} chunks from ${Object.keys(result.sourceDiagnostics).length} sources`);
See
- RetrievalPlan for plan specification
- buildDefaultPlan for creating default plans
- UnifiedRetrieverDeps for dependency injection
Extends
EventEmitter
Constructors
Constructor
new UnifiedRetriever(
deps):UnifiedRetriever
Defined in: packages/agentos/src/rag/unified/UnifiedRetriever.ts:292
Creates a new UnifiedRetriever.
Parameters
deps
Dependency injection container. All dependencies are optional; the retriever gracefully skips sources whose deps are not provided.
Returns
UnifiedRetriever
Example
const retriever = new UnifiedRetriever({
hybridSearcher: myHybridSearcher,
raptorTree: myRaptorTree,
graphEngine: myGraphEngine,
memoryManager: myMemoryManager,
rerank: myReranker,
});
Overrides
EventEmitter.constructor
Properties
captureRejections
staticcaptureRejections:boolean
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:426
Value: boolean
Change the default captureRejections option on all new EventEmitter objects.
Since
v13.4.0, v12.16.0
Inherited from
EventEmitter.captureRejections
captureRejectionSymbol
readonlystaticcaptureRejectionSymbol: typeofcaptureRejectionSymbol
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:419
Value: Symbol.for('nodejs.rejection')
See how to write a custom rejection handler.
Since
v13.4.0, v12.16.0
Inherited from
EventEmitter.captureRejectionSymbol
defaultMaxListeners
staticdefaultMaxListeners:number
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:465
By default, a maximum of 10 listeners can be registered for any single
event. This limit can be changed for individual EventEmitter instances
using the emitter.setMaxListeners(n) method. To change the default
for allEventEmitter instances, the events.defaultMaxListeners property
can be used. If this value is not a positive number, a RangeError is thrown.
Take caution when setting the events.defaultMaxListeners because the
change affects all EventEmitter instances, including those created before
the change is made. However, calling emitter.setMaxListeners(n) still has
precedence over events.defaultMaxListeners.
This is not a hard limit. The EventEmitter instance will allow
more listeners to be added but will output a trace warning to stderr indicating
that a "possible EventEmitter memory leak" has been detected. For any single
EventEmitter, the emitter.getMaxListeners() and emitter.setMaxListeners() methods can be used to
temporarily avoid this warning:
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
// do stuff
emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});
The --trace-warnings command-line flag can be used to display the
stack trace for such warnings.
The emitted warning can be inspected with process.on('warning') and will
have the additional emitter, type, and count properties, referring to
the event emitter instance, the event's name and the number of attached
listeners, respectively.
Its name property is set to 'MaxListenersExceededWarning'.
Since
v0.11.2
Inherited from
EventEmitter.defaultMaxListeners
errorMonitor
readonlystaticerrorMonitor: typeoferrorMonitor
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:412
This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.
Installing a listener using this symbol does not change the behavior once an 'error' event is emitted. Therefore, the process will still crash if no
regular 'error' listener is installed.
Since
v13.6.0, v12.17.0
Inherited from
EventEmitter.errorMonitor
Methods
[captureRejectionSymbol]()?
optional[captureRejectionSymbol]<K>(error,event, ...args):void
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:103
Type Parameters
K
K
Parameters
error
Error
event
string | symbol
args
...AnyRest
Returns
void
Inherited from
EventEmitter.[captureRejectionSymbol]
addListener()
addListener<
K>(eventName,listener):this
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:643
Alias for emitter.on(eventName, listener).
Type Parameters
K
K
Parameters
eventName
string | symbol
listener
(...args) => void
Returns
this
Since
v0.1.26
Inherited from
EventEmitter.addListener
emit()
emit<
K>(eventName, ...args):boolean
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:905
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments
to each.
Returns true if the event had listeners, false otherwise.
import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
Type Parameters
K
K
Parameters
eventName
string | symbol
args
...AnyRest
Returns
boolean
Since
v0.1.26
Inherited from
EventEmitter.emit
eventNames()
eventNames(): (
string|symbol)[]
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:968
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
Returns
(string | symbol)[]
Since
v6.0.0
Inherited from
EventEmitter.eventNames
getMaxListeners()
getMaxListeners():
number
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:820
Returns the current max listener value for the EventEmitter which is either
set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
Returns
number
Since
v1.0.0
Inherited from
EventEmitter.getMaxListeners
listenerCount()
listenerCount<
K>(eventName,listener?):number
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:914
Returns the number of listeners listening for the event named eventName.
If listener is provided, it will return how many times the listener is found
in the list of the listeners of the event.
Type Parameters
K
K
Parameters
eventName
The name of the event being listened for
string | symbol
listener?
Function
The event handler function
Returns
number
Since
v3.2.0
Inherited from
EventEmitter.listenerCount
listeners()
listeners<
K>(eventName):Function[]
Defined in: packages/agentos/node_modules/@types/node/events.d.ts:833
Returns a copy of the array of listeners for the event named eventName.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
Type Parameters
K
K
Parameters
eventName
string | symbol