@animalabs/agent-framework 0.31.0 → 0.32.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/src/framework.d.ts +9 -10
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +18 -48
- package/dist/src/framework.js.map +1 -1
- package/dist/src/types/agent.d.ts +4 -11
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +11 -9
- package/dist/src/types/framework.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/framework.ts +18 -47
- package/src/types/agent.ts +4 -11
- package/src/types/framework.ts +11 -9
- package/dist/src/reasoning-loss-notice.d.ts +0 -23
- package/dist/src/reasoning-loss-notice.d.ts.map +0 -1
- package/dist/src/reasoning-loss-notice.js +0 -52
- package/dist/src/reasoning-loss-notice.js.map +0 -1
- package/dist/src/reasoning-loss.d.ts +0 -24
- package/dist/src/reasoning-loss.d.ts.map +0 -1
- package/dist/src/reasoning-loss.js +0 -102
- package/dist/src/reasoning-loss.js.map +0 -1
- package/src/reasoning-loss-notice.ts +0 -64
- package/src/reasoning-loss.ts +0 -120
|
@@ -237,17 +237,10 @@ export interface AgentConfig {
|
|
|
237
237
|
* `thinking-binding-loss` ops alert, once per incident and again if a
|
|
238
238
|
* call drops more. The provider reports drops only on a request that
|
|
239
239
|
* carries the drop control; without it, such a block is refused;
|
|
240
|
-
* - the agent is told
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
* fold or other change to an earlier message that takes a reply of the
|
|
245
|
-
* current turn, and, with `dropBlock` set too, when the provider drops
|
|
246
|
-
* blocks it can place as the agent's stored replies or the stream's
|
|
247
|
-
* rounds, once per incident and again when a call drops more. The
|
|
248
|
-
* framework hears compiles through `Agent.onThinkingStrip` from the
|
|
249
|
-
* agent's first stream on, unless a host has set its own, so an agent
|
|
250
|
-
* driven only through the direct API is never told.
|
|
240
|
+
* - the agent is told nothing of reasoning left out or dropped: no line
|
|
241
|
+
* about the mechanics of its own memory or reasoning is put in its
|
|
242
|
+
* context. Hosts can observe compiles' strips through
|
|
243
|
+
* `Agent.onThinkingStrip`;
|
|
251
244
|
* The record and the notes
|
|
252
245
|
* vouch for requests as agent-framework hands them to membrane, so a
|
|
253
246
|
* membrane `beforeRequest` hook that changes a request must change every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC5D,MAAM,MAAM,8BAA8B,GACtC,kBAAkB,GAClB,QAAQ,GACR,uBAAuB,CAAC;AAE5B,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb;;iBAEa;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC;8CAC0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gBAAgB,CAAC,EAAE,OAAO,yBAAyB,EAAE,sBAAsB,CAAC;IAC5E;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;IAElC,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;sEAKkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;4DACwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;+CAC2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,yEAAyE;QACzE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;QAC9B;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;KACpC,CAAC;IACF;;;;OAIG;IACH,eAAe,CAAC,EAAE;QAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA0CG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,12 +125,12 @@ export interface FrameworkConfig {
|
|
|
125
125
|
*/
|
|
126
126
|
announceOrphans?: boolean;
|
|
127
127
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* `
|
|
128
|
+
* With a `derivationNotice`, after this many derivations of one kind from
|
|
129
|
+
* one agent, the line it's given is a count line every so many instead of
|
|
130
|
+
* a line per fork, so a reader loop that forks a hundred times a session
|
|
131
|
+
* doesn't fill its source's context with stamps; every derivation still
|
|
132
|
+
* emits its `dendrite:agent-created` trace. Default 10; 0 never collapses.
|
|
133
|
+
* Without a `derivationNotice` the source is told nothing.
|
|
134
134
|
*/
|
|
135
135
|
collapseDerivationNoticesAfter?: number;
|
|
136
136
|
/**
|
|
@@ -148,9 +148,11 @@ export interface FrameworkConfig {
|
|
|
148
148
|
};
|
|
149
149
|
/**
|
|
150
150
|
* What an agent is told when something is derived from it. Given the
|
|
151
|
-
* record, the agent it was derived from and the framework's
|
|
152
|
-
* return the text to add, or
|
|
153
|
-
*
|
|
151
|
+
* record, the agent it was derived from and the framework's own line,
|
|
152
|
+
* return the text to add (that line, or the host's own), or null to add
|
|
153
|
+
* nothing. Absent, nothing is added: an agent isn't told of derivations
|
|
154
|
+
* unless the host asks for it. The `dendrite:agent-created` trace is
|
|
155
|
+
* emitted either way.
|
|
154
156
|
*/
|
|
155
157
|
derivationNotice?: (record: import('../dendrite/types.js').AgentRecord, from: string, defaultText: string) => string | null;
|
|
156
158
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../src/types/framework.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGrE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC;;gCAE4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB;6EACyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;8BAC0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;6EACyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;uBACmB;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;4EACwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;gCAE4B;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;gDAC4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;iCAC6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAC1D,YAAY,GAAG,SAAS,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT;;;;;;;WAOG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B;;;;;;;WAOG;QACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC;;;;;;;;;WASG;QACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,sBAAsB,EAAE,SAAS,KAAK,IAAI,GAAG;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7F
|
|
1
|
+
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../src/types/framework.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/framework.ts
CHANGED
|
@@ -199,7 +199,6 @@ import { cumulativeDelta } from './usage-accounting.js';
|
|
|
199
199
|
import { stampThinkingTokenEstimates } from './thinking-token-stamp.js';
|
|
200
200
|
import { splitThinkingDrops, ThinkingLossIncidents, type PlacedDrop, type StreamThinkingDrops } from './thinking-drops.js';
|
|
201
201
|
import { asNextRequestCarries, roundRows, type RoundRow, type SentRow } from './sent-rows.js';
|
|
202
|
-
import { ReasoningLossTeller } from './reasoning-loss.js';
|
|
203
202
|
import { contentAsStored, nameAsStored } from './text-as-stored.js';
|
|
204
203
|
import { STORED_INJECTION_KEY, STORED_INJECTION_KIND, asStoredRow, hasRenderedContent, isAnotherAgentsInjection, isOwnInjection, isStoredKind, storedInjectionMarkOf, unitHash, type StoredInjectionMark } from './stored-injections.js';
|
|
205
204
|
|
|
@@ -3790,7 +3789,6 @@ export class AgentFramework {
|
|
|
3790
3789
|
* next turn.
|
|
3791
3790
|
*/
|
|
3792
3791
|
private turnRouting: Map<string, TurnRouting> = new Map();
|
|
3793
|
-
private readonly reasoningLoss = new ReasoningLossTeller();
|
|
3794
3792
|
/**
|
|
3795
3793
|
* The latest link of each agent's chain of queued prose deliveries. Every
|
|
3796
3794
|
* stream queues its own behind it, a fresh turn's included, so the agent's
|
|
@@ -4185,7 +4183,7 @@ export class AgentFramework {
|
|
|
4185
4183
|
private collapseDerivationNoticesAfter = 10;
|
|
4186
4184
|
/** The host's say over each derivation, ephemeral spawn and resume (config.dendrite.beforeDerive). */
|
|
4187
4185
|
private beforeDerive?: (spec: AgentSpec) => void | { refuse: string };
|
|
4188
|
-
/** What a source is told of a derivation (config.dendrite.derivationNotice); absent,
|
|
4186
|
+
/** What a source is told of a derivation (config.dendrite.derivationNotice); absent, nothing. */
|
|
4189
4187
|
private derivationNoticeHook?: (record: AgentRecord, from: string, defaultText: string) => string | null;
|
|
4190
4188
|
/** Per source agent, per kind: how many derivations, since when, and at which count the last note went. */
|
|
4191
4189
|
private derivationTallies: Map<string, Map<string, { count: number; since: number }>> = new Map();
|
|
@@ -11797,13 +11795,14 @@ export class AgentFramework {
|
|
|
11797
11795
|
/**
|
|
11798
11796
|
* The creation ("consent") event: names what kind of agent this is, what
|
|
11799
11797
|
* ends it and what happens to it when its spawner ends. A derived agent's
|
|
11800
|
-
* creation is
|
|
11801
|
-
*
|
|
11802
|
-
* host-framed line in the source's context,
|
|
11803
|
-
*
|
|
11804
|
-
*
|
|
11805
|
-
* fork's branch or copy exists, so a fork never
|
|
11806
|
-
* itself; a source that has ended is told
|
|
11798
|
+
* creation is told to the agent it was derived from only when the host
|
|
11799
|
+
* asks for it with a derivationNotice and that returns text: one
|
|
11800
|
+
* host-framed line in the source's context, with no wake, given the
|
|
11801
|
+
* framework's line built from the same facts as the trace. Without one the
|
|
11802
|
+
* source is told nothing; the trace is emitted either way. Both derivation
|
|
11803
|
+
* paths announce after the fork's branch or copy exists, so a fork never
|
|
11804
|
+
* inherits the notice about itself; a source that has ended is told
|
|
11805
|
+
* nothing (lifecycleNotice).
|
|
11807
11806
|
*/
|
|
11808
11807
|
private announceAgentCreated(record: AgentRecord): void {
|
|
11809
11808
|
this.emitTrace({
|
|
@@ -11820,7 +11819,8 @@ export class AgentFramework {
|
|
|
11820
11819
|
...(record.inherit ? { inherit: record.inherit } : {}),
|
|
11821
11820
|
});
|
|
11822
11821
|
const from = record.inherit?.from;
|
|
11823
|
-
if (!from || from === record.name) return;
|
|
11822
|
+
if (!from || from === record.name || !this.derivationNoticeHook) return;
|
|
11823
|
+
const hook = this.derivationNoticeHook;
|
|
11824
11824
|
const detail = {
|
|
11825
11825
|
event: 'derived',
|
|
11826
11826
|
agent: record.name,
|
|
@@ -11831,15 +11831,16 @@ export class AgentFramework {
|
|
|
11831
11831
|
...(record.relationships.resultTo ? { resultTo: record.relationships.resultTo } : {}),
|
|
11832
11832
|
lifetime: record.lifetime,
|
|
11833
11833
|
};
|
|
11834
|
-
//
|
|
11835
|
-
// past the threshold, a reader loop that
|
|
11836
|
-
// would fill its source's context with
|
|
11837
|
-
// the
|
|
11838
|
-
// the latest described; every derivation still emits its
|
|
11834
|
+
// With the host's hook: a resumption is rare and always passed to it. A
|
|
11835
|
+
// first incarnation is tallied: past the threshold, a reader loop that
|
|
11836
|
+
// forks a hundred times a session would fill its source's context with
|
|
11837
|
+
// stamps, so the hook is given a count line every `threshold` forks
|
|
11838
|
+
// instead, with the latest described; every derivation still emits its
|
|
11839
|
+
// trace.
|
|
11839
11840
|
const threshold = this.collapseDerivationNoticesAfter;
|
|
11840
11841
|
const tell = (defaultText: string, extra: Record<string, unknown> = {}) => {
|
|
11841
11842
|
try {
|
|
11842
|
-
const text =
|
|
11843
|
+
const text = hook(record, from, defaultText);
|
|
11843
11844
|
if (text !== null) this.lifecycleNotice(from, text, { ...detail, ...extra });
|
|
11844
11845
|
} catch (error) {
|
|
11845
11846
|
console.error(`[dendrite] ${record.name} was created, but ${from} could not be told:`, error);
|
|
@@ -11990,7 +11991,6 @@ export class AgentFramework {
|
|
|
11990
11991
|
this.freshCallsCut.delete(name);
|
|
11991
11992
|
this.forgetFailureAccounting(name);
|
|
11992
11993
|
this.thinkingLossIncidents.forget(name);
|
|
11993
|
-
this.reasoningLoss.forget(name);
|
|
11994
11994
|
// main's manager release: the context manager an ephemeral run or a fork
|
|
11995
11995
|
// opened is released with the agent (releaseManager).
|
|
11996
11996
|
this.releaseManager(agent);
|
|
@@ -12790,7 +12790,6 @@ export class AgentFramework {
|
|
|
12790
12790
|
this.freshCallsCut.delete(agent.name);
|
|
12791
12791
|
if (run.endedFromOutside) this.forgetFailureAccounting(agent.name);
|
|
12792
12792
|
this.thinkingLossIncidents.forget(agent.name);
|
|
12793
|
-
this.reasoningLoss.forget(agent.name);
|
|
12794
12793
|
// Its pending self-wake ends with it, as a fork's does.
|
|
12795
12794
|
this.eventGate?.agentGone(agent.name);
|
|
12796
12795
|
this.releaseWindowNowOrAfterResume(agent);
|
|
@@ -17973,7 +17972,6 @@ export class AgentFramework {
|
|
|
17973
17972
|
this.freshCallsCut.delete(agentName);
|
|
17974
17973
|
this.forgetFailureAccounting(agentName);
|
|
17975
17974
|
this.thinkingLossIncidents.forget(agentName);
|
|
17976
|
-
this.reasoningLoss.forget(agentName);
|
|
17977
17975
|
// A continuation of its turn still on its way goes with it.
|
|
17978
17976
|
this.dropContinuations(agentName, { kind: 'dropped', why: 'its agent was disposed' });
|
|
17979
17977
|
this.turnRouting.delete(agentName);
|
|
@@ -21821,25 +21819,6 @@ export class AgentFramework {
|
|
|
21821
21819
|
this.writeChannelNotices(this.channelOpenedNotices(agentName, serverId, channels, cause), `auto-open notice (${cause})`, 'recordChannelAutoOpenNotice');
|
|
21822
21820
|
}
|
|
21823
21821
|
|
|
21824
|
-
private tellReasoningLoss(agent: Agent, make: () => string | undefined): void {
|
|
21825
|
-
if (this.agents.get(agent.name) !== agent) return;
|
|
21826
|
-
let line: string | undefined;
|
|
21827
|
-
try {
|
|
21828
|
-
line = make();
|
|
21829
|
-
} catch (err) {
|
|
21830
|
-
console.error(`[reasoning] ${agent.name}: could not tell what reasoning was lost:`, err);
|
|
21831
|
-
return;
|
|
21832
|
-
}
|
|
21833
|
-
if (!line) return;
|
|
21834
|
-
try {
|
|
21835
|
-
this.addMessage('user', [{ type: 'text', text: line }], { system: true, kind: 'reasoning-loss' } as MessageMetadata, { forAgent: agent.name });
|
|
21836
|
-
} catch (err) {
|
|
21837
|
-
console.error(`[reasoning] ${agent.name}: the line for lost reasoning could not be stored:`, err);
|
|
21838
|
-
return;
|
|
21839
|
-
}
|
|
21840
|
-
console.error(`[reasoning] ${agent.name}: told of reasoning no longer in its context`);
|
|
21841
|
-
}
|
|
21842
|
-
|
|
21843
21822
|
/**
|
|
21844
21823
|
* Write a builder's channel notices in order, each on its own: one that
|
|
21845
21824
|
* can't be written is logged, and the rest are still written. A reader's
|
|
@@ -24179,10 +24158,6 @@ export class AgentFramework {
|
|
|
24179
24158
|
const name = agent.name;
|
|
24180
24159
|
agent.onCompiledToSend = (messages) => hub.observeCompile(name, messages);
|
|
24181
24160
|
}
|
|
24182
|
-
if (!agent.onThinkingStrip) {
|
|
24183
|
-
agent.onThinkingStrip = (strip, branch) => this.tellReasoningLoss(agent, () => this.reasoningLoss.forStrip(
|
|
24184
|
-
agent.name, branch, strip, (this.activeTurnTokens.has(agent.name) && this.turnRouting.get(agent.name)) || {}, agent.getContextManager()));
|
|
24185
|
-
}
|
|
24186
24161
|
|
|
24187
24162
|
// Module gatherContext (fail-open, per-module timeout — the module's
|
|
24188
24163
|
// contextTimeoutMs, else the registry default). Injections are
|
|
@@ -26580,10 +26555,6 @@ export class AgentFramework {
|
|
|
26580
26555
|
if (thinkingDrops?.recordedAfter !== undefined) {
|
|
26581
26556
|
this.noteThinkingLoss(agent.name, placedDrops, thinkingDrops.recordedAfter);
|
|
26582
26557
|
}
|
|
26583
|
-
if (thinkingDrops) {
|
|
26584
|
-
this.tellReasoningLoss(agent, () => this.reasoningLoss.forDrops(agent.name, thinkingDrops.branch ?? '',
|
|
26585
|
-
placedDrops, streamRouting, agent.getContextManager()));
|
|
26586
|
-
}
|
|
26587
26558
|
try {
|
|
26588
26559
|
if (!thinkingDroppedInStream) {
|
|
26589
26560
|
strat?.reportRealInputTokens?.(
|
package/src/types/agent.ts
CHANGED
|
@@ -258,17 +258,10 @@ export interface AgentConfig {
|
|
|
258
258
|
* `thinking-binding-loss` ops alert, once per incident and again if a
|
|
259
259
|
* call drops more. The provider reports drops only on a request that
|
|
260
260
|
* carries the drop control; without it, such a block is refused;
|
|
261
|
-
* - the agent is told
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
* fold or other change to an earlier message that takes a reply of the
|
|
266
|
-
* current turn, and, with `dropBlock` set too, when the provider drops
|
|
267
|
-
* blocks it can place as the agent's stored replies or the stream's
|
|
268
|
-
* rounds, once per incident and again when a call drops more. The
|
|
269
|
-
* framework hears compiles through `Agent.onThinkingStrip` from the
|
|
270
|
-
* agent's first stream on, unless a host has set its own, so an agent
|
|
271
|
-
* driven only through the direct API is never told.
|
|
261
|
+
* - the agent is told nothing of reasoning left out or dropped: no line
|
|
262
|
+
* about the mechanics of its own memory or reasoning is put in its
|
|
263
|
+
* context. Hosts can observe compiles' strips through
|
|
264
|
+
* `Agent.onThinkingStrip`;
|
|
272
265
|
* The record and the notes
|
|
273
266
|
* vouch for requests as agent-framework hands them to membrane, so a
|
|
274
267
|
* membrane `beforeRequest` hook that changes a request must change every
|
package/src/types/framework.ts
CHANGED
|
@@ -131,12 +131,12 @@ export interface FrameworkConfig {
|
|
|
131
131
|
*/
|
|
132
132
|
announceOrphans?: boolean;
|
|
133
133
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* `
|
|
134
|
+
* With a `derivationNotice`, after this many derivations of one kind from
|
|
135
|
+
* one agent, the line it's given is a count line every so many instead of
|
|
136
|
+
* a line per fork, so a reader loop that forks a hundred times a session
|
|
137
|
+
* doesn't fill its source's context with stamps; every derivation still
|
|
138
|
+
* emits its `dendrite:agent-created` trace. Default 10; 0 never collapses.
|
|
139
|
+
* Without a `derivationNotice` the source is told nothing.
|
|
140
140
|
*/
|
|
141
141
|
collapseDerivationNoticesAfter?: number;
|
|
142
142
|
/**
|
|
@@ -152,9 +152,11 @@ export interface FrameworkConfig {
|
|
|
152
152
|
beforeDerive?: (spec: import('../dendrite/types.js').AgentSpec) => void | { refuse: string };
|
|
153
153
|
/**
|
|
154
154
|
* What an agent is told when something is derived from it. Given the
|
|
155
|
-
* record, the agent it was derived from and the framework's
|
|
156
|
-
* return the text to add, or
|
|
157
|
-
*
|
|
155
|
+
* record, the agent it was derived from and the framework's own line,
|
|
156
|
+
* return the text to add (that line, or the host's own), or null to add
|
|
157
|
+
* nothing. Absent, nothing is added: an agent isn't told of derivations
|
|
158
|
+
* unless the host asks for it. The `dendrite:agent-created` trace is
|
|
159
|
+
* emitted either way.
|
|
158
160
|
*/
|
|
159
161
|
derivationNotice?: (record: import('../dendrite/types.js').AgentRecord, from: string, defaultText: string) => string | null;
|
|
160
162
|
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export type ReasoningLossCause = 'tools' | 'system' | 'model';
|
|
2
|
-
export type ReasoningLossAnchor = {
|
|
3
|
-
text: string;
|
|
4
|
-
} | {
|
|
5
|
-
toolCall: string;
|
|
6
|
-
};
|
|
7
|
-
export interface ReasoningLossNoticeInput {
|
|
8
|
-
agentName: string;
|
|
9
|
-
scope: {
|
|
10
|
-
kind: 'all';
|
|
11
|
-
through?: ReasoningLossAnchor;
|
|
12
|
-
thisTurn: boolean;
|
|
13
|
-
} | {
|
|
14
|
-
kind: 'some';
|
|
15
|
-
count: number;
|
|
16
|
-
first?: ReasoningLossAnchor;
|
|
17
|
-
unplaced?: boolean;
|
|
18
|
-
thisTurn: boolean;
|
|
19
|
-
};
|
|
20
|
-
causes: readonly ReasoningLossCause[];
|
|
21
|
-
}
|
|
22
|
-
export declare function reasoningLossNotice(input: ReasoningLossNoticeInput): string;
|
|
23
|
-
//# sourceMappingURL=reasoning-loss-notice.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-loss-notice.d.ts","sourceRoot":"","sources":["../../src/reasoning-loss-notice.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EACD;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GACjE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACxG,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACvC;AAWD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAyB3E"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { NOTICE_TAG } from './notice-tags.js';
|
|
2
|
-
import { oneLine, suppliedValue } from './supplied-text.js';
|
|
3
|
-
import { safeSlice } from './safe-slice.js';
|
|
4
|
-
const ANCHOR_CHARS = 80;
|
|
5
|
-
const CAUSE_WORDS = {
|
|
6
|
-
tools: 'your tools changed',
|
|
7
|
-
system: 'your system prompt changed',
|
|
8
|
-
model: 'your model changed',
|
|
9
|
-
};
|
|
10
|
-
const CAUSE_ORDER = ['tools', 'system', 'model'];
|
|
11
|
-
export function reasoningLossNotice(input) {
|
|
12
|
-
const causes = CAUSE_ORDER.filter((c) => input.causes.includes(c)).map((c) => CAUSE_WORDS[c]);
|
|
13
|
-
const because = causes.length > 0 ? `, because ${joinAnd(causes)}` : '';
|
|
14
|
-
const scope = input.scope;
|
|
15
|
-
let lost;
|
|
16
|
-
let reread;
|
|
17
|
-
if (scope.kind === 'all') {
|
|
18
|
-
const through = scope.through ? anchorWords(scope.through) : undefined;
|
|
19
|
-
const among = scope.thisTurn ? ", this turn's earlier steps among them," : '';
|
|
20
|
-
lost = through
|
|
21
|
-
? `The reasoning behind your replies up to the one ${through}${among} is no longer in your context${because}.`
|
|
22
|
-
: `The reasoning behind your earlier replies${among} is no longer in your context${because}.`;
|
|
23
|
-
reread = 'Re-read before relying on an earlier decision.';
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const one = scope.count === 1 && !scope.unplaced;
|
|
27
|
-
const replies = scope.unplaced
|
|
28
|
-
? `at least ${scope.count} of your replies`
|
|
29
|
-
: one ? 'one of your replies' : `${scope.count} of your replies`;
|
|
30
|
-
const named = scope.first && !scope.unplaced ? anchorWords(scope.first) : undefined;
|
|
31
|
-
const first = named ? (one ? `, the one ${named}` : `, the first being the one ${named}`) : '';
|
|
32
|
-
const among = scope.thisTurn ? (one ? ', an earlier step of this turn' : ", this turn's earlier steps among them") : '';
|
|
33
|
-
lost = `Some of your earlier reasoning is no longer in your context: the reasoning behind ${replies}${first}${among}${because}.`;
|
|
34
|
-
reread = named ? 'Re-read before relying on a decision made since then.' : 'Re-read before relying on an earlier decision.';
|
|
35
|
-
}
|
|
36
|
-
return `[${NOTICE_TAG.reasoning}] ${input.agentName}: ${lost} Their words are still here. ${reread}`;
|
|
37
|
-
}
|
|
38
|
-
function anchorWords(anchor) {
|
|
39
|
-
if ('toolCall' in anchor)
|
|
40
|
-
return anchor.toolCall ? `that called \`${suppliedValue(anchor.toolCall)}\`` : undefined;
|
|
41
|
-
const text = oneLine(anchor.text).replace(/\s+/g, ' ').trim();
|
|
42
|
-
if (!text)
|
|
43
|
-
return undefined;
|
|
44
|
-
const clipped = text.length > ANCHOR_CHARS ? `${safeSlice(text, 0, ANCHOR_CHARS).trimEnd()}…` : text;
|
|
45
|
-
return `beginning "${clipped}"`;
|
|
46
|
-
}
|
|
47
|
-
function joinAnd(parts) {
|
|
48
|
-
if (parts.length <= 1)
|
|
49
|
-
return parts.join('');
|
|
50
|
-
return `${parts.slice(0, -1).join(', ')} and ${parts[parts.length - 1]}`;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=reasoning-loss-notice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-loss-notice.js","sourceRoot":"","sources":["../../src/reasoning-loss-notice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { ContentBlock } from '@animalabs/membrane';
|
|
2
|
-
import type { MessageId, ThinkingStrip } from '@animalabs/context-manager';
|
|
3
|
-
import { type PlacedDrop } from './thinking-drops.js';
|
|
4
|
-
export interface StoredReplyReader {
|
|
5
|
-
getMessage(id: MessageId): {
|
|
6
|
-
sequence: number;
|
|
7
|
-
content: readonly ContentBlock[];
|
|
8
|
-
} | null;
|
|
9
|
-
}
|
|
10
|
-
export interface ReasoningLossTurn {
|
|
11
|
-
start?: {
|
|
12
|
-
branch: string;
|
|
13
|
-
sequence: number;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export declare class ReasoningLossTeller {
|
|
17
|
-
private readonly told;
|
|
18
|
-
private readonly drops;
|
|
19
|
-
forStrip(agentName: string, branch: string, strip: ThinkingStrip, turn: ReasoningLossTurn, store: StoredReplyReader): string | undefined;
|
|
20
|
-
forDrops(agentName: string, branch: string, placed: readonly PlacedDrop[], turn: ReasoningLossTurn, store: StoredReplyReader): string | undefined;
|
|
21
|
-
forget(agentName: string): void;
|
|
22
|
-
private toldFor;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=reasoning-loss.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-loss.d.ts","sourceRoot":"","sources":["../../src/reasoning-loss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAO7E,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1F;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAQD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkD;IACvE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IAErD,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,GACvB,MAAM,GAAG,SAAS,CA0BpB;IAED,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,GACvB,MAAM,GAAG,SAAS,CAuBpB;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG9B;IAED,OAAO,CAAC,OAAO;CAOhB"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { ThinkingLossIncidents } from './thinking-drops.js';
|
|
2
|
-
import { reasoningLossNotice, } from './reasoning-loss-notice.js';
|
|
3
|
-
const HEAD_CAUSES = {
|
|
4
|
-
tools: 'tools',
|
|
5
|
-
system: 'system',
|
|
6
|
-
model: 'model',
|
|
7
|
-
};
|
|
8
|
-
export class ReasoningLossTeller {
|
|
9
|
-
told = new Map();
|
|
10
|
-
drops = new ThinkingLossIncidents();
|
|
11
|
-
forStrip(agentName, branch, strip, turn, store) {
|
|
12
|
-
const told = this.toldFor(agentName, branch);
|
|
13
|
-
const taken = strip.newly
|
|
14
|
-
.map((id) => ({ id, sequence: store.getMessage(id)?.sequence }))
|
|
15
|
-
.sort((a, b) => (a.sequence ?? Infinity) - (b.sequence ?? Infinity));
|
|
16
|
-
const replies = taken.filter((r) => !told.has(r.id));
|
|
17
|
-
if (replies.length === 0)
|
|
18
|
-
return undefined;
|
|
19
|
-
const thisTurn = replies.some((r) => isThisTurn(r.sequence, branch, turn));
|
|
20
|
-
if (strip.cause === 'head') {
|
|
21
|
-
const causes = (strip.changed ?? [])
|
|
22
|
-
.map((c) => HEAD_CAUSES[c])
|
|
23
|
-
.filter((c) => c !== undefined);
|
|
24
|
-
const newest = taken.filter((r) => r.sequence !== undefined).at(-1);
|
|
25
|
-
const through = newest ? anchorOf(store.getMessage(newest.id)?.content) : undefined;
|
|
26
|
-
const amongThisTurn = taken.some((r) => isThisTurn(r.sequence, branch, turn));
|
|
27
|
-
for (const r of replies)
|
|
28
|
-
told.add(r.id);
|
|
29
|
-
return reasoningLossNotice({ agentName, scope: { kind: 'all', ...(through ? { through } : {}), thisTurn: amongThisTurn }, causes });
|
|
30
|
-
}
|
|
31
|
-
if (strip.cause !== 'first' && !taken.some((r) => isThisTurn(r.sequence, branch, turn)))
|
|
32
|
-
return undefined;
|
|
33
|
-
const first = anchorOf(store.getMessage(replies[0].id)?.content);
|
|
34
|
-
for (const r of replies)
|
|
35
|
-
told.add(r.id);
|
|
36
|
-
return reasoningLossNotice({
|
|
37
|
-
agentName,
|
|
38
|
-
scope: { kind: 'some', count: replies.length, ...(first ? { first } : {}), thisTurn },
|
|
39
|
-
causes: [],
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
forDrops(agentName, branch, placed, turn, store) {
|
|
43
|
-
const replies = new Map();
|
|
44
|
-
const rounds = new Set();
|
|
45
|
-
let blocks = 0;
|
|
46
|
-
for (const drop of placed) {
|
|
47
|
-
if (drop.kind === 'unplaced')
|
|
48
|
-
continue;
|
|
49
|
-
blocks++;
|
|
50
|
-
if (drop.kind === 'round')
|
|
51
|
-
rounds.add(drop.round);
|
|
52
|
-
else
|
|
53
|
-
for (const body of drop.bodies)
|
|
54
|
-
replies.set(body.messageId, body.sequence);
|
|
55
|
-
}
|
|
56
|
-
const unplaced = blocks < placed.length;
|
|
57
|
-
const count = replies.size + rounds.size;
|
|
58
|
-
const ordered = [...replies].sort((a, b) => a[1] - b[1]);
|
|
59
|
-
const thisTurn = rounds.size > 0 || ordered.some(([, sequence]) => isThisTurn(sequence, branch, turn));
|
|
60
|
-
const first = ordered.length > 0 && !unplaced ? anchorOf(store.getMessage(ordered[0][0])?.content) : undefined;
|
|
61
|
-
if (this.drops.observe(agentName, blocks, branch) === undefined)
|
|
62
|
-
return undefined;
|
|
63
|
-
const told = this.toldFor(agentName, branch);
|
|
64
|
-
for (const id of replies.keys())
|
|
65
|
-
told.add(id);
|
|
66
|
-
return reasoningLossNotice({
|
|
67
|
-
agentName,
|
|
68
|
-
scope: { kind: 'some', count, ...(first ? { first } : {}), ...(unplaced ? { unplaced: true } : {}), thisTurn },
|
|
69
|
-
causes: [],
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
forget(agentName) {
|
|
73
|
-
this.told.delete(agentName);
|
|
74
|
-
this.drops.forget(agentName);
|
|
75
|
-
}
|
|
76
|
-
toldFor(agentName, branch) {
|
|
77
|
-
let branches = this.told.get(agentName);
|
|
78
|
-
if (!branches)
|
|
79
|
-
this.told.set(agentName, (branches = new Map()));
|
|
80
|
-
let told = branches.get(branch);
|
|
81
|
-
if (!told)
|
|
82
|
-
branches.set(branch, (told = new Set()));
|
|
83
|
-
return told;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
function isThisTurn(sequence, branch, turn) {
|
|
87
|
-
return sequence !== undefined && turn.start?.branch === branch && sequence > turn.start.sequence;
|
|
88
|
-
}
|
|
89
|
-
function anchorOf(content) {
|
|
90
|
-
if (!content)
|
|
91
|
-
return undefined;
|
|
92
|
-
for (const block of content) {
|
|
93
|
-
if (block.type === 'text' && typeof block.text === 'string' && block.text.trim() !== '')
|
|
94
|
-
return { text: block.text };
|
|
95
|
-
}
|
|
96
|
-
for (const block of content) {
|
|
97
|
-
if (block.type === 'tool_use' && typeof block.name === 'string' && block.name !== '')
|
|
98
|
-
return { toolCall: block.name };
|
|
99
|
-
}
|
|
100
|
-
return undefined;
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=reasoning-loss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-loss.js","sourceRoot":"","sources":["../../src/reasoning-loss.ts"],"names":[],"mappings":"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"}
|