@n8n/agents 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.js +30 -10
- package/dist/index.js.map +1 -1
- package/dist/runtime/agent-runtime.d.ts +24 -12
- package/dist/runtime/agent-runtime.js +241 -91
- package/dist/runtime/agent-runtime.js.map +1 -1
- package/dist/runtime/background-task-tracker.d.ts +6 -0
- package/dist/runtime/background-task-tracker.js +26 -0
- package/dist/runtime/background-task-tracker.js.map +1 -0
- package/dist/runtime/deferred-tool-manager.d.ts +28 -0
- package/dist/runtime/deferred-tool-manager.js +205 -0
- package/dist/runtime/deferred-tool-manager.js.map +1 -0
- package/dist/runtime/memory-store.d.ts +21 -36
- package/dist/runtime/memory-store.js +118 -51
- package/dist/runtime/memory-store.js.map +1 -1
- package/dist/runtime/message-list.d.ts +1 -7
- package/dist/runtime/message-list.js +3 -6
- package/dist/runtime/message-list.js.map +1 -1
- package/dist/runtime/observation-log-defaults.d.ts +20 -0
- package/dist/runtime/observation-log-defaults.js +523 -0
- package/dist/runtime/observation-log-defaults.js.map +1 -0
- package/dist/runtime/observation-log-observer.d.ts +64 -0
- package/dist/runtime/observation-log-observer.js +235 -0
- package/dist/runtime/observation-log-observer.js.map +1 -0
- package/dist/runtime/observation-log-reflector.d.ts +36 -0
- package/dist/runtime/observation-log-reflector.js +292 -0
- package/dist/runtime/observation-log-reflector.js.map +1 -0
- package/dist/runtime/observation-log-renderer.d.ts +6 -0
- package/dist/runtime/observation-log-renderer.js +73 -0
- package/dist/runtime/observation-log-renderer.js.map +1 -0
- package/dist/runtime/observation-log-store.d.ts +3 -0
- package/dist/runtime/observation-log-store.js +26 -0
- package/dist/runtime/observation-log-store.js.map +1 -0
- package/dist/runtime/scoped-memory-task-runner.d.ts +79 -0
- package/dist/runtime/scoped-memory-task-runner.js +134 -0
- package/dist/runtime/scoped-memory-task-runner.js.map +1 -0
- package/dist/sdk/agent.d.ts +13 -1
- package/dist/sdk/agent.js +58 -9
- package/dist/sdk/agent.js.map +1 -1
- package/dist/sdk/catalog.d.ts +1 -0
- package/dist/sdk/catalog.js +1 -0
- package/dist/sdk/catalog.js.map +1 -1
- package/dist/sdk/memory.d.ts +12 -12
- package/dist/sdk/memory.js +71 -51
- package/dist/sdk/memory.js.map +1 -1
- package/dist/storage/base-memory.d.ts +0 -10
- package/dist/storage/base-memory.js +0 -6
- package/dist/storage/base-memory.js.map +1 -1
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.js +7 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/runtime/event.d.ts +1 -0
- package/dist/types/sdk/agent-builder.d.ts +5 -0
- package/dist/types/sdk/agent.d.ts +6 -0
- package/dist/types/sdk/memory.d.ts +16 -24
- package/dist/types/sdk/observation-log.d.ts +99 -0
- package/dist/types/sdk/observation-log.js +17 -0
- package/dist/types/sdk/observation-log.js.map +1 -0
- package/dist/types/sdk/observation.d.ts +3 -94
- package/dist/types/sdk/observation.js +0 -2
- package/dist/types/sdk/observation.js.map +1 -1
- package/dist/types/sdk/provider.d.ts +5 -2
- package/package.json +3 -7
- package/dist/runtime/working-memory.d.ts +0 -14
- package/dist/runtime/working-memory.js +0 -69
- package/dist/runtime/working-memory.js.map +0 -1
- package/dist/storage/postgres-memory.d.ts +0 -96
- package/dist/storage/postgres-memory.js +0 -431
- package/dist/storage/postgres-memory.js.map +0 -1
- package/dist/storage/sqlite-memory.d.ts +0 -70
- package/dist/storage/sqlite-memory.js +0 -354
- package/dist/storage/sqlite-memory.js.map +0 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InMemoryMemory = void 0;
|
|
4
4
|
exports.saveMessagesToThread = saveMessagesToThread;
|
|
5
|
+
const observation_log_reflector_1 = require("./observation-log-reflector");
|
|
6
|
+
const observation_log_1 = require("../types/sdk/observation-log");
|
|
5
7
|
function scopeKey(scopeKind, scopeId) {
|
|
6
8
|
return `${scopeKind}:${scopeId}`;
|
|
7
9
|
}
|
|
@@ -12,6 +14,9 @@ function cloneCursor(cursor) {
|
|
|
12
14
|
updatedAt: new Date(cursor.updatedAt),
|
|
13
15
|
};
|
|
14
16
|
}
|
|
17
|
+
function cloneObservationLogEntry(entry) {
|
|
18
|
+
return { ...entry, createdAt: new Date(entry.createdAt) };
|
|
19
|
+
}
|
|
15
20
|
function compareKeyset(a, b) {
|
|
16
21
|
const t = a.createdAt.getTime() - b.createdAt.getTime();
|
|
17
22
|
if (t !== 0)
|
|
@@ -22,21 +27,10 @@ class InMemoryMemory {
|
|
|
22
27
|
constructor() {
|
|
23
28
|
this.threads = new Map();
|
|
24
29
|
this.messagesByThread = new Map();
|
|
25
|
-
this.
|
|
26
|
-
this.observationsByScope = new Map();
|
|
30
|
+
this.observationLogByScope = new Map();
|
|
27
31
|
this.cursorsByScope = new Map();
|
|
28
32
|
this.locksByScope = new Map();
|
|
29
33
|
}
|
|
30
|
-
async getWorkingMemory(params) {
|
|
31
|
-
return this.workingMemoryByKey.get(this.workingMemoryKey(params)) ?? null;
|
|
32
|
-
}
|
|
33
|
-
async saveWorkingMemory(params, content) {
|
|
34
|
-
this.workingMemoryByKey.set(this.workingMemoryKey(params), content);
|
|
35
|
-
}
|
|
36
|
-
workingMemoryKey(params) {
|
|
37
|
-
const id = params.scope === 'thread' ? params.threadId : (params.resourceId ?? params.threadId);
|
|
38
|
-
return `${params.scope}:${id}`;
|
|
39
|
-
}
|
|
40
34
|
async getThread(threadId) {
|
|
41
35
|
return this.threads.get(threadId) ?? null;
|
|
42
36
|
}
|
|
@@ -56,21 +50,33 @@ class InMemoryMemory {
|
|
|
56
50
|
async deleteThread(threadId) {
|
|
57
51
|
this.threads.delete(threadId);
|
|
58
52
|
this.messagesByThread.delete(threadId);
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
this.
|
|
62
|
-
|
|
53
|
+
const legacyKey = scopeKey('thread', threadId);
|
|
54
|
+
const resourceScopePrefix = scopeKey('thread', (0, observation_log_1.createObservationLogThreadScopePrefix)(threadId));
|
|
55
|
+
for (const key of this.observationLogByScope.keys()) {
|
|
56
|
+
if (key === legacyKey || key.startsWith(resourceScopePrefix)) {
|
|
57
|
+
this.observationLogByScope.delete(key);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
for (const key of this.cursorsByScope.keys()) {
|
|
61
|
+
if (key === legacyKey || key.startsWith(resourceScopePrefix)) {
|
|
62
|
+
this.cursorsByScope.delete(key);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const key of this.locksByScope.keys()) {
|
|
66
|
+
if (key === legacyKey || key.startsWith(resourceScopePrefix)) {
|
|
67
|
+
this.locksByScope.delete(key);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
63
70
|
}
|
|
64
71
|
async getMessages(threadId, opts) {
|
|
65
72
|
let stored = this.messagesByThread.get(threadId) ?? [];
|
|
73
|
+
if (opts?.resourceId !== undefined) {
|
|
74
|
+
stored = stored.filter((s) => s.resourceId === opts.resourceId);
|
|
75
|
+
}
|
|
66
76
|
if (opts?.before) {
|
|
67
77
|
const cutoff = opts.before.getTime();
|
|
68
78
|
stored = stored.filter((s) => s.createdAt.getTime() < cutoff);
|
|
69
79
|
}
|
|
70
|
-
if (opts?.since) {
|
|
71
|
-
const { sinceCreatedAt, sinceMessageId } = opts.since;
|
|
72
|
-
stored = stored.filter((s) => compareKeyset({ createdAt: s.createdAt, id: s.message.id }, { createdAt: sinceCreatedAt, id: sinceMessageId }) > 0);
|
|
73
|
-
}
|
|
74
80
|
stored = [...stored].sort((a, b) => compareKeyset({ createdAt: a.createdAt, id: a.message.id }, { createdAt: b.createdAt, id: b.message.id }));
|
|
75
81
|
if (opts?.limit)
|
|
76
82
|
stored = stored.slice(-opts.limit);
|
|
@@ -106,61 +112,112 @@ class InMemoryMemory {
|
|
|
106
112
|
describe() {
|
|
107
113
|
return { name: 'memory', constructorName: this.constructor.name, connectionParams: {} };
|
|
108
114
|
}
|
|
109
|
-
async
|
|
115
|
+
async appendObservationLogEntries(rows) {
|
|
110
116
|
const persisted = [];
|
|
111
117
|
for (const row of rows) {
|
|
112
118
|
const key = scopeKey(row.scopeKind, row.scopeId);
|
|
113
|
-
const bucket = this.
|
|
114
|
-
const
|
|
115
|
-
...row,
|
|
119
|
+
const bucket = this.observationLogByScope.get(key) ?? [];
|
|
120
|
+
const entry = {
|
|
116
121
|
id: crypto.randomUUID(),
|
|
122
|
+
scopeKind: row.scopeKind,
|
|
123
|
+
scopeId: row.scopeId,
|
|
124
|
+
marker: row.marker,
|
|
125
|
+
text: row.text,
|
|
126
|
+
parentId: row.parentId ?? null,
|
|
127
|
+
tokenCount: row.tokenCount ?? (0, observation_log_1.estimateObservationTokens)(row.text),
|
|
128
|
+
status: 'active',
|
|
129
|
+
supersededBy: null,
|
|
130
|
+
createdAt: row.createdAt ?? new Date(),
|
|
117
131
|
};
|
|
118
|
-
bucket.push(
|
|
119
|
-
this.
|
|
120
|
-
persisted.push(
|
|
132
|
+
bucket.push(entry);
|
|
133
|
+
this.observationLogByScope.set(key, bucket);
|
|
134
|
+
persisted.push(cloneObservationLogEntry(entry));
|
|
121
135
|
}
|
|
122
136
|
return persisted;
|
|
123
137
|
}
|
|
124
|
-
async
|
|
125
|
-
|
|
138
|
+
async getActiveObservationLog(scope) {
|
|
139
|
+
return await this.getObservationLog({ ...scope, status: 'active' });
|
|
140
|
+
}
|
|
141
|
+
async getObservationLog(opts) {
|
|
142
|
+
const bucket = this.observationLogByScope.get(scopeKey(opts.scopeKind, opts.scopeId)) ?? [];
|
|
126
143
|
let rows = [...bucket].sort((a, b) => compareKeyset({ createdAt: a.createdAt, id: a.id }, { createdAt: b.createdAt, id: b.id }));
|
|
127
|
-
if (opts.
|
|
128
|
-
|
|
129
|
-
|
|
144
|
+
if (opts.order === 'desc')
|
|
145
|
+
rows.reverse();
|
|
146
|
+
if (opts.status !== undefined) {
|
|
147
|
+
rows = rows.filter((entry) => entry.status === opts.status);
|
|
130
148
|
}
|
|
131
|
-
if (opts.
|
|
132
|
-
|
|
133
|
-
rows = rows.filter((r) => r.kind === kind);
|
|
134
|
-
}
|
|
135
|
-
if (opts.schemaVersionAtMost !== undefined) {
|
|
136
|
-
const max = opts.schemaVersionAtMost;
|
|
137
|
-
rows = rows.filter((r) => r.schemaVersion <= max);
|
|
149
|
+
if (opts.parentId !== undefined) {
|
|
150
|
+
rows = rows.filter((entry) => entry.parentId === opts.parentId);
|
|
138
151
|
}
|
|
139
152
|
if (opts.limit !== undefined) {
|
|
140
153
|
rows = rows.slice(0, opts.limit);
|
|
141
154
|
}
|
|
142
|
-
return rows.map(
|
|
155
|
+
return rows.map(cloneObservationLogEntry);
|
|
156
|
+
}
|
|
157
|
+
async dropObservationLogEntries(ids) {
|
|
158
|
+
if (ids.length === 0)
|
|
159
|
+
return;
|
|
160
|
+
const idSet = new Set(ids);
|
|
161
|
+
for (const bucket of this.observationLogByScope.values()) {
|
|
162
|
+
for (const entry of bucket) {
|
|
163
|
+
if (idSet.has(entry.id)) {
|
|
164
|
+
entry.status = 'dropped';
|
|
165
|
+
entry.supersededBy = null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async supersedeObservationLogEntries(ids, supersededBy) {
|
|
171
|
+
if (ids.length === 0)
|
|
172
|
+
return;
|
|
173
|
+
const idSet = new Set(ids);
|
|
174
|
+
for (const bucket of this.observationLogByScope.values()) {
|
|
175
|
+
for (const entry of bucket) {
|
|
176
|
+
if (idSet.has(entry.id)) {
|
|
177
|
+
entry.status = 'superseded';
|
|
178
|
+
entry.supersededBy = supersededBy;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async applyObservationLogReflection(scope, reflection) {
|
|
184
|
+
const normalized = (0, observation_log_reflector_1.normalizeObservationLogReflection)(await this.getActiveObservationLog(scope), reflection);
|
|
185
|
+
const inserted = await this.appendObservationLogEntries(normalized.merge.map((entry) => ({
|
|
186
|
+
scopeKind: scope.scopeKind,
|
|
187
|
+
scopeId: scope.scopeId,
|
|
188
|
+
marker: entry.marker,
|
|
189
|
+
text: entry.text,
|
|
190
|
+
parentId: entry.parentId,
|
|
191
|
+
tokenCount: entry.tokenCount,
|
|
192
|
+
createdAt: entry.createdAt,
|
|
193
|
+
})));
|
|
194
|
+
await this.dropObservationLogEntries(normalized.drop);
|
|
195
|
+
for (const [index, merge] of normalized.merge.entries()) {
|
|
196
|
+
const replacement = inserted[index];
|
|
197
|
+
if (replacement) {
|
|
198
|
+
await this.supersedeObservationLogEntries(merge.supersedes, replacement.id);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
droppedIds: [...normalized.drop],
|
|
203
|
+
supersededIds: normalized.merge.flatMap((entry) => entry.supersedes),
|
|
204
|
+
inserted,
|
|
205
|
+
};
|
|
143
206
|
}
|
|
144
207
|
async getMessagesForScope(scopeKind, scopeId, opts) {
|
|
145
208
|
if (scopeKind !== 'thread') {
|
|
146
209
|
throw new Error(`getMessagesForScope: scopeKind='${scopeKind}' is not supported in v1`);
|
|
147
210
|
}
|
|
148
211
|
const candidates = this.messagesByThread.get(scopeId) ?? [];
|
|
149
|
-
let rows =
|
|
212
|
+
let rows = candidates
|
|
213
|
+
.filter((s) => opts?.resourceId === undefined || s.resourceId === opts.resourceId)
|
|
214
|
+
.sort((a, b) => compareKeyset({ createdAt: a.createdAt, id: a.message.id }, { createdAt: b.createdAt, id: b.message.id }));
|
|
150
215
|
if (opts?.since) {
|
|
151
216
|
const { sinceCreatedAt, sinceMessageId } = opts.since;
|
|
152
217
|
rows = rows.filter((s) => compareKeyset({ createdAt: s.createdAt, id: s.message.id }, { createdAt: sinceCreatedAt, id: sinceMessageId }) > 0);
|
|
153
218
|
}
|
|
154
219
|
return rows.map((s) => ({ ...s.message, createdAt: s.createdAt }));
|
|
155
220
|
}
|
|
156
|
-
async deleteObservations(ids) {
|
|
157
|
-
if (ids.length === 0)
|
|
158
|
-
return;
|
|
159
|
-
const idSet = new Set(ids);
|
|
160
|
-
for (const [key, bucket] of this.observationsByScope.entries()) {
|
|
161
|
-
this.observationsByScope.set(key, bucket.filter((row) => !idSet.has(row.id)));
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
221
|
async getCursor(scopeKind, scopeId) {
|
|
165
222
|
const cursor = this.cursorsByScope.get(scopeKey(scopeKind, scopeId));
|
|
166
223
|
return cursor ? cloneCursor(cursor) : null;
|
|
@@ -169,7 +226,13 @@ class InMemoryMemory {
|
|
|
169
226
|
const key = scopeKey(cursor.scopeKind, cursor.scopeId);
|
|
170
227
|
this.cursorsByScope.set(key, cloneCursor(cursor));
|
|
171
228
|
}
|
|
172
|
-
async
|
|
229
|
+
async acquireObservationLogTaskLock(scopeKind, scopeId, taskKind, opts) {
|
|
230
|
+
const handle = await this.acquireScopeLock(scopeKind, scopeId, opts, taskKind);
|
|
231
|
+
if (!handle)
|
|
232
|
+
return null;
|
|
233
|
+
return { scopeKind, scopeId, taskKind, holderId: handle.holderId, heldUntil: handle.heldUntil };
|
|
234
|
+
}
|
|
235
|
+
async acquireScopeLock(scopeKind, scopeId, opts, taskKind) {
|
|
173
236
|
const key = scopeKey(scopeKind, scopeId);
|
|
174
237
|
const existing = this.locksByScope.get(key);
|
|
175
238
|
const now = Date.now();
|
|
@@ -179,13 +242,17 @@ class InMemoryMemory {
|
|
|
179
242
|
const handle = {
|
|
180
243
|
scopeKind,
|
|
181
244
|
scopeId,
|
|
245
|
+
taskKind,
|
|
182
246
|
holderId: opts.holderId,
|
|
183
247
|
heldUntil: new Date(now + opts.ttlMs),
|
|
184
248
|
};
|
|
185
249
|
this.locksByScope.set(key, handle);
|
|
186
250
|
return { ...handle };
|
|
187
251
|
}
|
|
188
|
-
async
|
|
252
|
+
async releaseObservationLogTaskLock(handle) {
|
|
253
|
+
await this.releaseScopeLock(handle);
|
|
254
|
+
}
|
|
255
|
+
async releaseScopeLock(handle) {
|
|
189
256
|
const key = scopeKey(handle.scopeKind, handle.scopeId);
|
|
190
257
|
const current = this.locksByScope.get(key);
|
|
191
258
|
if (current && current.holderId === handle.holderId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/runtime/memory-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/runtime/memory-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,6 @@ import type { SerializedMessageList } from '../types/runtime/message-list';
|
|
|
4
4
|
import type { AgentDbMessage, AgentMessage } from '../types/sdk/message';
|
|
5
5
|
import type { JSONValue } from '../types/utils/json';
|
|
6
6
|
export type { SerializedMessageList };
|
|
7
|
-
export interface WorkingMemoryContext {
|
|
8
|
-
template: string;
|
|
9
|
-
structured: boolean;
|
|
10
|
-
state: string | null;
|
|
11
|
-
instruction?: string;
|
|
12
|
-
}
|
|
13
7
|
export declare class AgentMessageList {
|
|
14
8
|
private all;
|
|
15
9
|
private historySet;
|
|
@@ -19,7 +13,7 @@ export declare class AgentMessageList {
|
|
|
19
13
|
private addMessage;
|
|
20
14
|
private createdAtSortKey;
|
|
21
15
|
private sortAllByCreatedAt;
|
|
22
|
-
|
|
16
|
+
observationLogMemory: string | undefined;
|
|
23
17
|
addHistory(messages: AgentMessage[] | AgentDbMessage[]): void;
|
|
24
18
|
addInput(messages: AgentMessage[] | AgentDbMessage[]): void;
|
|
25
19
|
addResponse(messages: AgentMessage[] | AgentDbMessage[]): void;
|
|
@@ -4,7 +4,6 @@ exports.AgentMessageList = void 0;
|
|
|
4
4
|
const messages_1 = require("./messages");
|
|
5
5
|
const runtime_helpers_1 = require("./runtime-helpers");
|
|
6
6
|
const strip_orphaned_tool_messages_1 = require("./strip-orphaned-tool-messages");
|
|
7
|
-
const working_memory_1 = require("./working-memory");
|
|
8
7
|
const message_1 = require("../sdk/message");
|
|
9
8
|
class AgentMessageList {
|
|
10
9
|
constructor() {
|
|
@@ -121,11 +120,9 @@ class AgentMessageList {
|
|
|
121
120
|
}
|
|
122
121
|
forLlm(baseInstructions, instructionProviderOptions) {
|
|
123
122
|
let systemPrompt = baseInstructions;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
systemPrompt +=
|
|
128
|
-
wmInstruction + '\n\nCurrent working memory state:\n```\n' + wmState + '\n```\n';
|
|
123
|
+
const observationLogMemory = this.observationLogMemory?.trim();
|
|
124
|
+
if (observationLogMemory) {
|
|
125
|
+
systemPrompt += `\n\n${observationLogMemory}`;
|
|
129
126
|
}
|
|
130
127
|
const systemMessage = instructionProviderOptions
|
|
131
128
|
? { role: 'system', content: systemPrompt, providerOptions: instructionProviderOptions }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.js","sourceRoot":"","sources":["../../src/runtime/message-list.ts"],"names":[],"mappings":";;;AAGA,yCAA0C;AAC1C,uDAAmD;AACnD,iFAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"message-list.js","sourceRoot":"","sources":["../../src/runtime/message-list.ts"],"names":[],"mappings":";;;AAGA,yCAA0C;AAC1C,uDAAmD;AACnD,iFAA2E;AAC3E,4CAAiE;AAwBjE,MAAa,gBAAgB;IAA7B;QACS,QAAG,GAAqB,EAAE,CAAC;QAE3B,eAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEvC,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAErC,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAExC,kBAAa,GAAW,CAAC,CAAC;IA0NnC,CAAC;IAzMQ,UAAU,CAAC,OAAqB,EAAE,MAAqB;QAC9D,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAChG,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,SAAe,CAAC;QACpB,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAE/C,SAAS,GAAG,QAAQ,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YAEP,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACjE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAClD,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAmB,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IAGO,gBAAgB,CAAC,CAAiB;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAChG,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAC1D,CAAC;IAGO,kBAAkB;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,CAAC,GACN,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YACvF,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;gBAAE,GAAG,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC1B,CAAC;IAKD,UAAU,CAAC,QAA2C;QACrD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,QAA2C;QACnD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,QAA2C;QACtD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IASD,iBAAiB,CAAC,UAAkB,EAAE,MAAiB;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,YAAY,GAAG,KAAK,CAAC;QAC3B,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;QAC/B,YAAgE,CAAC,MAAM,GAAG,MAAM,CAAC;QAClF,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;YAC7B,OAAQ,YAAmC,CAAC,KAAK,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IASD,gBAAgB,CAAC,UAAkB,EAAE,KAAc;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAE,CAAC;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC;QAC3B,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;QAC/B,YAAgE,CAAC,KAAK,GAAG,IAAA,gCAAc,EAAC,KAAK,CAAC,CAAC;QAChG,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;YAC9B,OAAQ,YAAoC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,gBAAgB,CAAC,UAAkB;QAE1C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,IACC,SAAS,IAAI,CAAC;gBACd,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,EAC3E,CAAC;gBACF,OAAO,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,iBAAiB,CAAC,IAAoB,EAAE,UAAkB;QACjE,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACvB,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAClF,CAAC;IACH,CAAC;IAOD,MAAM,CAAC,gBAAwB,EAAE,0BAA4C;QAC5E,IAAI,YAAY,GAAG,gBAAgB,CAAC;QAEpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QAC/D,IAAI,oBAAoB,EAAE,CAAC;YAC1B,YAAY,IAAI,OAAO,oBAAoB,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,aAAa,GAAiB,0BAA0B;YAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,0BAA0B,EAAE;YACxF,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAC7C,OAAO,CAAC,aAAa,EAAE,GAAG,IAAA,uBAAY,EAAC,IAAA,2BAAiB,EAAC,IAAA,wDAAyB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAMD,SAAS;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAMD,aAAa;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;QACR,MAAM,KAAK,GAAG,CAAC,GAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO;YACN,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YACvB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YAClC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC9B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SACpC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAA2B;QAC7C,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAnOD,4CAmOC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ObservationLogObserveFn, ObservationLogObserverInput } from './observation-log-observer';
|
|
2
|
+
import type { ObservationLogReflectFn, ObservationLogReflectorInput } from './observation-log-reflector';
|
|
3
|
+
import type { ModelConfig } from '../types/sdk/agent';
|
|
4
|
+
export declare const DEFAULT_OBSERVATION_LOG_OBSERVER_THRESHOLD_TOKENS = 500;
|
|
5
|
+
export declare const DEFAULT_OBSERVATION_LOG_TAIL_LIMIT = 20;
|
|
6
|
+
export declare const DEFAULT_OBSERVATION_LOG_REFLECTOR_THRESHOLD_TOKENS = 4000;
|
|
7
|
+
export declare const DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET = 4500;
|
|
8
|
+
export declare const DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS = 30000;
|
|
9
|
+
export declare const DEFAULT_OBSERVATION_LOG_OBSERVER_PROMPT = "You are observing a conversation between a user and an agent. Extract durable observations about what happened, what was decided, what changed, and what needs follow-up. The agent will read your observations on later turns as its memory of this conversation.\n\nYou receive: the current observation log tail (for context, do not restate), the new transcript delta since the last observation, and the current timestamp. The transcript delta contains user text, assistant text, tool calls, and compacted tool results.\n\nOUTPUT FORMAT\n\nEach observation is one bullet, starting with a marker, then a timestamp in (HH:MM), then the observation text. Indented sub-bullets use the same marker and timestamp format and attach to the parent bullet above them.\n\n* CRITICAL (14:30) Top-level observation\n * INFO (14:30) Sub-bullet for grouped detail\n * COMPLETION (14:31) Sub-bullet for a completed detail\n* IMPORTANT (14:31) Another top-level observation\n\nOutput only the new observations. Do not repeat the existing log. Do not add preamble, headers, or commentary. If there are no new observations, output nothing at all.\n\nMARKERS\n\nCRITICAL. Things the agent must not forget. User-stated identity, project context, hard constraints, explicit decisions, commitments.\nIMPORTANT. Preferences, ongoing work, recent activity, intermediate state, investigation findings. Useful for continuity but droppable under context pressure.\nINFO. Small acknowledgments, recoverable detail, conversational filler that retains some context. First to drop when the log is oversized.\nCOMPLETION. A task, question, or subtask was resolved. Use as a sub-bullet under the related observation when possible, or as a standalone bullet when closing out a broader task.\n\nEXAMPLES\n\nExample 1: User assertion of identity.\n\nTranscript:\n[USER 14:30] Hi, I'm Robin, senior engineer at Acme working on the agents team.\n\nOutput:\n* CRITICAL (14:30) User is Robin, senior engineer at Acme on the agents team.\n\nExample 2: User preference.\n\nTranscript:\n[USER 14:30] Can you keep your answers shorter? I don't need the long preamble.\n\nOutput:\n* IMPORTANT (14:30) User prefers concise responses without preamble.\n\nExample 3: User decision.\n\nTranscript:\n[ASSISTANT 14:29] You could go with either Postgres or SQLite. SQLite is simpler for local-first deployments, Postgres scales better.\n[USER 14:30] Let's go with SQLite. Most of our users will be running this locally anyway.\n\nOutput:\n* CRITICAL (14:30) User chose SQLite for the memory store (users are running locally).\n\nExample 4: State change with explicit supersession.\n\nTranscript:\n[USER 14:30] Actually, scrap the SQLite plan. We're switching to Postgres because our enterprise customers won't want to run anything local.\n\nOutput:\n* CRITICAL (14:30) User switched memory store choice to Postgres (changing from earlier SQLite plan; enterprise customers won't run local).\n\nExample 5: Tool calls as real evidence for agent actions.\n\nTranscript:\n[USER 14:30] Where is the auth middleware configured?\n[ASSISTANT 14:30] Let me check.\n[TOOL_CALL 14:30] read_file(path=\"src/auth.ts\")\n[TOOL_RESULT 14:30] (file content showing JWT validation logic)\n[TOOL_CALL 14:30] read_file(path=\"src/middleware.ts\")\n[TOOL_RESULT 14:30] (file content showing middleware chain registration)\n[ASSISTANT 14:31] Auth middleware is registered in src/middleware.ts and uses JWT validation from src/auth.ts.\n\nOutput:\n* IMPORTANT (14:30) User asked where auth middleware is configured.\n * INFO (14:30) Agent read src/auth.ts (JWT validation) and src/middleware.ts (middleware chain registration).\n * COMPLETION (14:31) Agent answered: auth middleware in src/middleware.ts using JWT validation from src/auth.ts.\n\nExample 6: Grouping repeated similar actions under one parent.\n\nTranscript:\n[ASSISTANT 14:45] Let me look at the source files for the auth flow.\n[TOOL_CALL 14:45] read_file(path=\"src/auth.ts\")\n[TOOL_RESULT 14:45] (token validation logic)\n[TOOL_CALL 14:45] read_file(path=\"src/users.ts\")\n[TOOL_RESULT 14:45] (user lookup by email)\n[TOOL_CALL 14:45] read_file(path=\"src/routes.ts\")\n[TOOL_RESULT 14:45] (middleware chain)\n\nOutput:\n* INFO (14:45) Agent browsed source files for the auth flow.\n * INFO (14:45) Read src/auth.ts: token validation logic.\n * INFO (14:45) Read src/users.ts: user lookup by email.\n * INFO (14:45) Read src/routes.ts: middleware chain.\n\nExample 7: Completion as a sub-bullet.\n\nTranscript:\n[USER 14:30] How do I configure the auth middleware in this framework?\n[ASSISTANT 14:31] (explanation with code example)\n[USER 14:32] Got it, that works. Auth is set up now.\n\nOutput:\n* IMPORTANT (14:30) User asked how to configure auth middleware.\n * INFO (14:31) Agent explained setup with code example.\n * COMPLETION (14:32) User confirmed auth is working.\n\nExample 8: Multiple observations in one delta.\n\nTranscript:\n[USER 14:30] I'm Robin at Acme. We're using SQLite for storage. Can you help me design the schema for an observations table?\n\nOutput:\n* CRITICAL (14:30) User is Robin at Acme; using SQLite for storage.\n* IMPORTANT (14:30) User asked for help designing schema for an observations table.\n\nExample 9: Preserving identifiers and unusual phrasing verbatim.\n\nTranscript:\n[USER 14:30] The failing job is dag_id=daily_report_prod, the operator is called \"the loader\" internally, we use the term \"movement\" for our data refresh cycles.\n\nOutput:\n* CRITICAL (14:30) Failing job is dag_id=daily_report_prod; the operator is called \"the loader\" internally; user team uses the term \"movement\" for data refresh cycles.\n\nExample 10: Nothing durable in the delta.\n\nTranscript:\n[USER 14:30] Thanks for the help earlier.\n[ASSISTANT 14:30] You're welcome.\n\nOutput:\n(empty, no observations)\n\nBAD AND GOOD PATTERNS\n\nDistinguishing assertions from questions\n\nTranscript:\n[USER 14:30] What database should I use?\n\nBAD: CRITICAL (14:30) User uses [database].\n(Wrong. The user asked a question; they did not state a database.)\n\nGOOD: (no observation, or INFO if continuity matters)\n* INFO (14:30) User asked agent to recommend a database.\n\nDistinguishing questions from intent\n\nTranscript:\n[USER 14:30] Can you recommend a database?\n\nBAD: IMPORTANT (14:30) User decided on database recommendation from agent.\n\nGOOD:\n* INFO (14:30) User asked agent to recommend a database.\n\nTranscript:\n[USER 14:30] I need to pick a database by Friday.\n\nBAD: (skipped, treated as a request)\n\nGOOD:\n* IMPORTANT (14:30) User needs to pick a database by Friday (deadline-bound decision pending).\n\nState change with vs without explicit supersession\n\nTranscript:\n[USER 09:00] We're using Postgres.\n(later in delta)\n[USER 14:30] Actually we switched to SQLite last week.\n\nBAD: CRITICAL (14:30) User uses SQLite.\n(Wrong. Loses the fact that they previously stated Postgres and changed it. Next reader has no way to know the earlier observation is stale.)\n\nGOOD:\n* CRITICAL (14:30) User switched to SQLite last week (changing from earlier Postgres choice).\n\nPrecise vs vague action verbs\n\nTranscript:\n[USER 14:30] I'm getting Claude Code for my team.\n\nBAD: IMPORTANT (14:30) User is getting Claude Code.\n\nGOOD:\n* IMPORTANT (14:30) User is purchasing Claude Code subscriptions for their team.\n(Use specific verbs: purchased, subscribed, enrolled, received, picked up. \"Got\" and \"getting\" are vague.)\n\nPreserving identifiers vs paraphrasing them\n\nTranscript:\n[USER 14:30] The error happens on workflow_id=wf_daily_report_v2 specifically.\n\nBAD: CRITICAL (14:30) Error happens on the daily report workflow.\n\nGOOD:\n* CRITICAL (14:30) Error occurs specifically on workflow_id=wf_daily_report_v2.\n\nGrouping vs spamming\n\nTranscript:\n[TOOL_CALL 14:45] read_file(\"a.ts\")\n[TOOL_CALL 14:45] read_file(\"b.ts\")\n[TOOL_CALL 14:45] read_file(\"c.ts\")\n\nBAD:\n* INFO (14:45) Agent read a.ts\n* INFO (14:45) Agent read b.ts\n* INFO (14:45) Agent read c.ts\n\nGOOD:\n* INFO (14:45) Agent browsed source files.\n * Read a.ts, b.ts, c.ts.\n\nAgent claims that did not happen\n\nTranscript:\n[USER 14:30] Can you check the database?\n[ASSISTANT 14:30] I'll take a look at the database for you.\n(no tool call follows)\n\nBAD: INFO (14:30) Agent checked the database.\n(Wrong. The agent SAID they would check but there is no tool call evidence. Agent narration alone is not evidence of action.)\n\nGOOD: (no observation about agent action; only the user's question)\n* INFO (14:30) User asked agent to check the database.\n\nSpeculation phrased as fact\n\nTranscript:\n[USER 14:30] The login issue might be a session store problem.\n\nBAD: CRITICAL (14:30) Login issue is caused by session store.\n\nGOOD:\n* IMPORTANT (14:30) User suspects login issue may be a session store problem (unconfirmed).\n\nRULES\n\n- Distinguish user assertions from questions. Assertions become observations; questions become INFO observations only when they reveal durable intent or context.\n- Distinguish questions from statements of intent. \"Can you recommend X\" is a question. \"I need to choose X by Friday\" is a commitment.\n- State changes SUPERSEDE previous state. Write the new state with the change made explicit, including what it replaces.\n- Preserve identifiers, counts, dates, and unusual phrasing VERBATIM. Quote the user's exact terms when they coin or specify something.\n- Use PRECISE action verbs (subscribed, purchased, deployed, configured, ruled out, confirmed). Avoid \"got\", \"getting\", \"has\", \"did\" when a specific verb fits.\n- Group repeated similar actions under one parent observation with sub-bullets. Do not emit one observation per tool call.\n- Use COMPLETION only when a task, question, or subtask was resolved. Use it as a sub-bullet under the related observation when possible.\n- Agent text alone is not evidence of agent action. Only emit observations about agent actions when supported by tool calls or tool results in the delta.\n- Preserve UNCERTAINTY. \"user suspects X\", not \"X is true\", when the user used hedging language.\n\nSKIP\n\nDo not extract observations for:\n- Off-topic small talk and pleasantries\n- Agent claims of action with no supporting tool call or tool result\n- Recalled memory output the user did not engage with\n- Speculative content phrased as fact in the source\n- Internal agent reasoning the user did not see or react to\n- Restatements of content already in the existing observation log tail\n\nCONSERVATISM\n\nReturn NO output when nothing durable happened in the delta. Most short exchanges produce zero observations. Bursts of activity may produce several. Do not invent durability where none exists.\n\nOutput the new observations only. Do not repeat the existing log. Do not add preamble, headers, or commentary. If there are no new observations, output nothing at all.";
|
|
10
|
+
export interface CreateObservationLogObserveFnOptions {
|
|
11
|
+
observerPrompt?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildObservationLogObserverPrompt(input: ObservationLogObserverInput): string;
|
|
14
|
+
export declare function createObservationLogObserveFn(model: ModelConfig, options?: CreateObservationLogObserveFnOptions): ObservationLogObserveFn;
|
|
15
|
+
export declare const DEFAULT_OBSERVATION_LOG_REFLECTOR_PROMPT = "You are reorganizing an observation log so it stays useful and under a size limit. The log is an append-only record of what happened in a conversation. Your job is to identify what to drop, merge, or replace while preserving the most important content.\n\nYou receive: the active observation log with IDs, markers, and timestamps; the current timestamp; and the token budget.\n\nMARKERS AND PRIORITY\n\nCRITICAL. Facts, decisions, identities, commitments. NEVER drop. May merge with other CRITICAL observations on the SAME topic if they restate the same thing.\nIMPORTANT. Preferences, ongoing work, recent activity. Drop ONLY if clearly superseded or redundant. Prefer merging over dropping.\nINFO. Small acknowledgments, recoverable detail, conversational filler. FIRST to drop when the log is oversized. Drop older INFO before newer INFO.\nCOMPLETION. Drop together with the parent observation when the parent is dropped. May fold into the merged observation when the parent is merged.\n\nTIEBREAKER: When two observations are equally important, keep the more recent one.\n\nEXAMPLES\n\nExample 1: Log under budget. Return empty arrays.\n\nInput:\n[obs_001] CRITICAL (14:30) User is migrating @n8n/agents from Mastra to internal SDK\n[obs_002] IMPORTANT (14:35) User adopted two-stage compression model (Observer + Reflector)\nBudget: 5000 tokens. Current: 600 tokens.\n\nOutput:\n{\"drop\": [], \"merge\": []}\n\nExample 2: Multiple CRITICAL observations restating the same fact. Merge them.\n\nInput:\n[obs_010] CRITICAL (09:00) User works at Acme on the platform team\n[obs_034] CRITICAL (10:15) User confirmed they joined Acme platform team 8 months ago\n[obs_078] CRITICAL (12:00) User leads the storage subgroup within the platform team\n\nOutput:\n{\n \"drop\": [],\n \"merge\": [\n {\n \"supersedes\": [\"obs_010\", \"obs_034\", \"obs_078\"],\n \"marker\": \"CRITICAL\",\n \"text\": \"User works at Acme on the platform team (joined 8 months ago); leads the storage subgroup.\"\n }\n ]\n}\n\nExample 3: Old INFO acknowledgments. Drop them.\n\nInput:\n[obs_001] INFO (08:00) User greeted the agent\n[obs_002] INFO (08:30) User thanked agent for an earlier explanation\n[obs_023] INFO (14:00) User confirmed they understood the recent answer\nBudget: 3000 tokens. Current: 4200 tokens.\n\nOutput:\n{\"drop\": [\"obs_001\", \"obs_002\"], \"merge\": []}\n\n(Keep the most recent acknowledgment; drop older filler. If budget pressure required it, obs_023 could also be dropped, but newer INFO stays before older INFO goes.)\n\nExample 4: IMPORTANT observation superseded by a later one.\n\nInput:\n[obs_005] IMPORTANT (10:00) User plans to use Postgres for the memory store\n[obs_044] IMPORTANT (12:30) User switched to SQLite for the memory store (changing from earlier Postgres plan)\n\nOutput:\n{\"drop\": [\"obs_005\"], \"merge\": []}\n\n(obs_044 already encodes the change explicitly; obs_005 is no longer current.)\n\nExample 5: Completion under a dropped parent.\n\nInput:\n[obs_001] IMPORTANT (10:00) User asked about hybrid retrieval implementation\n[obs_002] COMPLETION (10:30) User confirmed they understand RRF fusion\n[obs_087] IMPORTANT (14:00) User asked about Reflector design tradeoffs\n[obs_088] COMPLETION (14:30) User confirmed Reflector approach is clear\n\nOutput:\n{\"drop\": [\"obs_001\", \"obs_002\"], \"merge\": []}\n\n(Old completed Q&A pair drops together. Newer IMPORTANT + COMPLETION pair stays.)\n\nExample 6: Clusters across multiple turns of the same case. Merge.\n\nInput:\n[obs_020] IMPORTANT (11:00) Investigation: login failing intermittently for some users\n[obs_021] IMPORTANT (11:05) Auth service logs show no errors during failure window\n[obs_022] IMPORTANT (11:10) DB connection pool at 12/50; not saturated\n[obs_023] IMPORTANT (11:30) Session store identified as suspect; not yet checked\n\nOutput:\n{\n \"drop\": [],\n \"merge\": [\n {\n \"supersedes\": [\"obs_020\", \"obs_021\", \"obs_022\", \"obs_023\"],\n \"marker\": \"IMPORTANT\",\n \"text\": \"Intermittent login failure investigation: auth service logs clean, DB pool at 12/50 (ruled out). Session store identified as next suspect; not yet checked.\"\n }\n ]\n}\n\nBAD AND GOOD MERGE PATTERNS\n\nBAD: Merging across topics.\n\nInput:\n[obs_001] CRITICAL User works at Acme\n[obs_002] CRITICAL User is migrating @n8n/agents from Mastra\n\nWrong merge:\n{\n \"supersedes\": [\"obs_001\", \"obs_002\"],\n \"marker\": \"CRITICAL\",\n \"text\": \"User works at Acme and is migrating @n8n/agents from Mastra\"\n}\n\nThese are about different topics. Do NOT merge them. Leave both as separate observations.\n\nBAD: Inventing causation or content not in sources.\n\nInput:\n[obs_001] CRITICAL User uses Postgres\n[obs_002] IMPORTANT User mentioned performance issues with the workflow\n\nWrong merge:\n{\n \"supersedes\": [\"obs_001\", \"obs_002\"],\n \"marker\": \"CRITICAL\",\n \"text\": \"User has Postgres performance issues affecting workflows\"\n}\n\nThe sources do not state Postgres caused the performance issues. NEVER invent a causal link the observations do not state. Leave both as separate observations.\n\nBAD: Dropping CRITICAL because it feels redundant when it is not duplicated.\n\nInput:\n[obs_001] CRITICAL User works at Acme\n[obs_002] CRITICAL User joined Acme in March 2025\n\nWrong:\n{\"drop\": [\"obs_001\"], \"merge\": []}\n\nThese are not duplicates. obs_001 is current employment; obs_002 is when it started. Both are durable facts. Merge into a single observation instead, never drop.\n\nCorrect:\n{\n \"drop\": [],\n \"merge\": [\n {\n \"supersedes\": [\"obs_001\", \"obs_002\"],\n \"marker\": \"CRITICAL\",\n \"text\": \"User works at Acme; joined in March 2025.\"\n }\n ]\n}\n\nGOOD: Combining genuinely redundant facts.\n\nInput:\n[obs_001] IMPORTANT User prefers concise responses\n[obs_034] IMPORTANT User asked agent to keep answers shorter\n[obs_087] IMPORTANT User mentioned again that the previous response was too long\n\nOutput:\n{\n \"drop\": [],\n \"merge\": [\n {\n \"supersedes\": [\"obs_001\", \"obs_034\", \"obs_087\"],\n \"marker\": \"IMPORTANT\",\n \"text\": \"User prefers concise responses (reinforced multiple times in this conversation).\"\n }\n ]\n}\n\nOUTPUT FORMAT\n\nReturn JSON with two arrays:\n\n{\n \"drop\": [\"obs_id_1\", \"obs_id_2\"],\n \"merge\": [\n {\n \"supersedes\": [\"obs_id_3\", \"obs_id_4\"],\n \"marker\": \"IMPORTANT\",\n \"text\": \"Merged observation that replaces the listed ones\"\n }\n ]\n}\n\nThe merged observation supersedes its sources. The drop array drops observations without replacement. An observation ID may appear in EITHER drop OR merge.supersedes, never both. Do not invent IDs that were not in the input.\n\nGOALS\n\n- Keep the active log under the token budget.\n- Preserve every CRITICAL unless it is genuinely duplicated by another CRITICAL.\n- Preserve recent IMPORTANT unless clearly superseded.\n- Drop INFO aggressively, oldest first.\n- Merge clusters of related observations into denser ones.\n- Preserve uncertainty: if a source says \"user suspects X\", the merged observation must also say \"suspects\", not \"X is true\".\n- NEVER invent content, causation, or attributions not present in the source observations.\n\nCONSERVATISM\n\nIf the log is already under budget AND no clear duplicates exist, return {\"drop\": [], \"merge\": []}. Do not restructure for the sake of restructuring. The Reflector is for reducing the log, not for prettifying it.";
|
|
16
|
+
export interface CreateObservationLogReflectFnOptions {
|
|
17
|
+
reflectorPrompt?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function buildObservationLogReflectorPrompt(input: ObservationLogReflectorInput): string;
|
|
20
|
+
export declare function createObservationLogReflectFn(model: ModelConfig, options?: CreateObservationLogReflectFnOptions): ObservationLogReflectFn;
|