@lloyal-labs/lloyal-agents 1.5.8 → 2.0.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/README.md +81 -97
- package/dist/Agent.d.ts +60 -1
- package/dist/Agent.d.ts.map +1 -1
- package/dist/Agent.js +87 -1
- package/dist/Agent.js.map +1 -1
- package/dist/AgentPolicy.d.ts +52 -16
- package/dist/AgentPolicy.d.ts.map +1 -1
- package/dist/AgentPolicy.js +114 -43
- package/dist/AgentPolicy.js.map +1 -1
- package/dist/agent-pool.d.ts +17 -5
- package/dist/agent-pool.d.ts.map +1 -1
- package/dist/agent-pool.js +707 -417
- package/dist/agent-pool.js.map +1 -1
- package/dist/combinators.d.ts +29 -0
- package/dist/combinators.d.ts.map +1 -0
- package/dist/combinators.js +37 -0
- package/dist/combinators.js.map +1 -0
- package/dist/context.d.ts +18 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +18 -1
- package/dist/context.js.map +1 -1
- package/dist/create-agent-pool.d.ts +96 -0
- package/dist/create-agent-pool.d.ts.map +1 -0
- package/dist/create-agent-pool.js +84 -0
- package/dist/create-agent-pool.js.map +1 -0
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -8
- package/dist/index.js.map +1 -1
- package/dist/orchestrators.d.ts +161 -0
- package/dist/orchestrators.d.ts.map +1 -0
- package/dist/orchestrators.js +173 -0
- package/dist/orchestrators.js.map +1 -0
- package/dist/replay.d.ts +96 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +108 -0
- package/dist/replay.js.map +1 -0
- package/dist/shared-root.d.ts +56 -18
- package/dist/shared-root.d.ts.map +1 -1
- package/dist/shared-root.js +79 -52
- package/dist/shared-root.js.map +1 -1
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js.map +1 -1
- package/dist/trace-types.d.ts +23 -2
- package/dist/trace-types.d.ts.map +1 -1
- package/dist/trace-writer.d.ts +4 -1
- package/dist/trace-writer.d.ts.map +1 -1
- package/dist/trace-writer.js +6 -2
- package/dist/trace-writer.js.map +1 -1
- package/dist/types.d.ts +42 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/use-agent.d.ts +92 -0
- package/dist/use-agent.d.ts.map +1 -0
- package/dist/use-agent.js +127 -0
- package/dist/use-agent.js.map +1 -0
- package/package.json +5 -5
- package/dist/generate.d.ts +0 -77
- package/dist/generate.d.ts.map +0 -1
- package/dist/generate.js +0 -166
- package/dist/generate.js.map +0 -1
- package/dist/run-agents.d.ts +0 -39
- package/dist/run-agents.d.ts.map +0 -1
- package/dist/run-agents.js +0 -46
- package/dist/run-agents.js.map +0 -1
- package/dist/spawn-agents.d.ts +0 -104
- package/dist/spawn-agents.d.ts.map +0 -1
- package/dist/spawn-agents.js +0 -255
- package/dist/spawn-agents.js.map +0 -1
package/dist/spawn-agents.js
DELETED
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.spawnAgents = spawnAgents;
|
|
4
|
-
const effection_1 = require("effection");
|
|
5
|
-
const Tool_1 = require("./Tool");
|
|
6
|
-
const context_1 = require("./context");
|
|
7
|
-
const trace_scope_1 = require("./trace-scope");
|
|
8
|
-
const toolkit_1 = require("./toolkit");
|
|
9
|
-
const shared_root_1 = require("./shared-root");
|
|
10
|
-
const agent_pool_1 = require("./agent-pool");
|
|
11
|
-
// ── Recursive tool ───────────────────────────────────────────
|
|
12
|
-
const DEFAULT_ARGS_SCHEMA = {
|
|
13
|
-
type: 'object',
|
|
14
|
-
properties: {
|
|
15
|
-
tasks: {
|
|
16
|
-
type: 'array',
|
|
17
|
-
items: { type: 'string' },
|
|
18
|
-
description: 'Sub-tasks to delegate to parallel agents',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
required: ['tasks'],
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Internal tool that calls spawnAgents() recursively.
|
|
25
|
-
* Created by spawnAgents() when `recursive` is enabled.
|
|
26
|
-
*/
|
|
27
|
-
class DelegateTool extends Tool_1.Tool {
|
|
28
|
-
name;
|
|
29
|
-
description;
|
|
30
|
-
parameters;
|
|
31
|
-
_spawnOpts;
|
|
32
|
-
_extractTasks;
|
|
33
|
-
_toolkit = null;
|
|
34
|
-
constructor(name, description, argsSchema, extractTasks, spawnOpts) {
|
|
35
|
-
super();
|
|
36
|
-
this.name = name;
|
|
37
|
-
this.description = description;
|
|
38
|
-
this.parameters = argsSchema;
|
|
39
|
-
this._extractTasks = extractTasks;
|
|
40
|
-
this._spawnOpts = spawnOpts;
|
|
41
|
-
}
|
|
42
|
-
/** Wire the circular toolkit reference. Called after createToolkit(). */
|
|
43
|
-
setToolkit(toolkit) {
|
|
44
|
-
this._toolkit = toolkit;
|
|
45
|
-
}
|
|
46
|
-
*execute(args, context) {
|
|
47
|
-
let tasks;
|
|
48
|
-
try {
|
|
49
|
-
tasks = this._extractTasks(args);
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
return { error: 'Failed to extract tasks from arguments.' };
|
|
53
|
-
}
|
|
54
|
-
if (!Array.isArray(tasks) || tasks.length === 0) {
|
|
55
|
-
return { error: 'Tasks must be a non-empty array of strings.' };
|
|
56
|
-
}
|
|
57
|
-
if (!this._toolkit) {
|
|
58
|
-
throw new Error(`${this.name}: toolkit not wired. Internal error.`);
|
|
59
|
-
}
|
|
60
|
-
const tw = yield* context_1.Trace.expect();
|
|
61
|
-
// Entailment gate: filter drifted/echoed tasks before spawning
|
|
62
|
-
const scorer = context?.scorer;
|
|
63
|
-
let filtered;
|
|
64
|
-
if (scorer) {
|
|
65
|
-
const allTasks = [...tasks];
|
|
66
|
-
const scores = yield* (0, effection_1.call)(() => scorer.scoreEntailmentBatch(tasks));
|
|
67
|
-
const surviving = [];
|
|
68
|
-
const rejected = [];
|
|
69
|
-
for (let i = 0; i < tasks.length; i++) {
|
|
70
|
-
if (scorer.shouldProceed(scores[i])) {
|
|
71
|
-
surviving.push(tasks[i]);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
rejected.push({ task: tasks[i], score: scores[i] });
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (rejected.length > 0)
|
|
78
|
-
filtered = rejected;
|
|
79
|
-
// Read calling agent for diagnostic — same read the echo guard will do
|
|
80
|
-
let _diagAgent;
|
|
81
|
-
try {
|
|
82
|
-
_diagAgent = yield* context_1.CallingAgent.get();
|
|
83
|
-
}
|
|
84
|
-
catch { /* top-level */ }
|
|
85
|
-
tw.write({
|
|
86
|
-
traceId: tw.nextId(), parentTraceId: null, ts: performance.now(),
|
|
87
|
-
type: 'entailment:delegate',
|
|
88
|
-
tool: this.name,
|
|
89
|
-
callingAgentId: _diagAgent?.id,
|
|
90
|
-
callingAgentTaskLength: _diagAgent?.task?.length,
|
|
91
|
-
callingAgentTask: _diagAgent?.task?.slice(0, 200),
|
|
92
|
-
tasks: allTasks.map((text, i) => ({
|
|
93
|
-
text: text.slice(0, 200),
|
|
94
|
-
score: scores[i],
|
|
95
|
-
kept: scorer.shouldProceed(scores[i]),
|
|
96
|
-
})),
|
|
97
|
-
});
|
|
98
|
-
if (surviving.length === 0) {
|
|
99
|
-
return { filtered, error: 'All proposed tasks drifted from the original query.' };
|
|
100
|
-
}
|
|
101
|
-
tasks = surviving;
|
|
102
|
-
// Echo guard: reject if all surviving questions are paraphrases of the agent's task
|
|
103
|
-
const echoThreshold = this._spawnOpts.echoThreshold ?? 0.8;
|
|
104
|
-
let callingAgent;
|
|
105
|
-
try {
|
|
106
|
-
callingAgent = yield* context_1.CallingAgent.get();
|
|
107
|
-
}
|
|
108
|
-
catch { /* top-level */ }
|
|
109
|
-
if (callingAgent?.task) {
|
|
110
|
-
const echoScores = yield* (0, effection_1.call)(() => scorer.scoreSimilarityBatch(callingAgent.task, tasks));
|
|
111
|
-
const minEchoScore = Math.min(...echoScores);
|
|
112
|
-
const echoRejected = minEchoScore > echoThreshold;
|
|
113
|
-
tw.write({
|
|
114
|
-
traceId: tw.nextId(), parentTraceId: null, ts: performance.now(),
|
|
115
|
-
type: 'entailment:delegate:echo',
|
|
116
|
-
tool: this.name,
|
|
117
|
-
agentTask: callingAgent.task.slice(0, 200),
|
|
118
|
-
tasks: tasks.map((text, i) => ({ text: text.slice(0, 200), echoScore: echoScores[i] })),
|
|
119
|
-
threshold: echoThreshold,
|
|
120
|
-
rejected: echoRejected,
|
|
121
|
-
});
|
|
122
|
-
if (echoRejected) {
|
|
123
|
-
return {
|
|
124
|
-
filtered,
|
|
125
|
-
echoRejected: true,
|
|
126
|
-
error: 'Your sub-questions are too similar to your own task. You have already searched and read content on this topic. Call report() with what you found, including what you checked but could not find.',
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
// Optional: check ancestor tasks
|
|
130
|
-
if (this._spawnOpts.checkAncestorEcho) {
|
|
131
|
-
const ancestorTasks = callingAgent.walkAncestors(a => a.task ? [a.task] : [])
|
|
132
|
-
.filter(t => t !== callingAgent.task);
|
|
133
|
-
for (const ancestorTask of ancestorTasks) {
|
|
134
|
-
const ancestorScores = yield* (0, effection_1.call)(() => scorer.scoreSimilarityBatch(ancestorTask, tasks));
|
|
135
|
-
if (Math.min(...ancestorScores) > echoThreshold) {
|
|
136
|
-
tw.write({
|
|
137
|
-
traceId: tw.nextId(), parentTraceId: null, ts: performance.now(),
|
|
138
|
-
type: 'entailment:delegate:echo',
|
|
139
|
-
tool: this.name,
|
|
140
|
-
agentTask: ancestorTask.slice(0, 200),
|
|
141
|
-
tasks: tasks.map((text, i) => ({ text: text.slice(0, 200), echoScore: ancestorScores[i] })),
|
|
142
|
-
threshold: echoThreshold,
|
|
143
|
-
rejected: true,
|
|
144
|
-
});
|
|
145
|
-
return {
|
|
146
|
-
filtered,
|
|
147
|
-
echoRejected: true,
|
|
148
|
-
error: 'Your sub-questions echo an ancestor task. Report what you found instead of re-delegating.',
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const opts = this._spawnOpts;
|
|
156
|
-
const toolkit = this._toolkit;
|
|
157
|
-
const scope = (0, trace_scope_1.traceScope)(tw, null, `delegate:${this.name}`, { taskCount: tasks.length, filtered: filtered?.length ?? 0 });
|
|
158
|
-
// Scorer propagation: same immutable scorer reaches all descendant pools
|
|
159
|
-
const pool = yield* (0, shared_root_1.withSharedRoot)({ systemPrompt: opts.systemPrompt, tools: toolkit.toolsJson, parent: context?.branch }, function* (root) {
|
|
160
|
-
return yield* (0, agent_pool_1.useAgentPool)({
|
|
161
|
-
tasks: tasks.map((t) => ({
|
|
162
|
-
systemPrompt: opts.systemPrompt,
|
|
163
|
-
content: t,
|
|
164
|
-
tools: toolkit.toolsJson,
|
|
165
|
-
parent: root,
|
|
166
|
-
})),
|
|
167
|
-
tools: toolkit.toolMap,
|
|
168
|
-
terminalTool: opts.terminalTool?.name,
|
|
169
|
-
pruneOnReport: opts.pruneOnReport ?? true,
|
|
170
|
-
maxTurns: opts.maxTurns,
|
|
171
|
-
trace: opts.trace,
|
|
172
|
-
policy: opts.policy,
|
|
173
|
-
scorer: context?.scorer,
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
const result = {
|
|
177
|
-
results: pool.agents.map((a) => a.result).filter(Boolean),
|
|
178
|
-
nestedResults: pool.agents.flatMap((a) => a.nestedResults ?? []),
|
|
179
|
-
agentCount: pool.agents.length,
|
|
180
|
-
totalTokens: pool.totalTokens,
|
|
181
|
-
totalToolCalls: pool.totalToolCalls,
|
|
182
|
-
...(filtered ? { filtered } : {}),
|
|
183
|
-
};
|
|
184
|
-
scope.close();
|
|
185
|
-
return result;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
// ── spawnAgents ──────────────────────────────────────────────
|
|
189
|
-
/**
|
|
190
|
-
* Spawn parallel agents with tools, optionally self-referential.
|
|
191
|
-
*
|
|
192
|
-
* Creates a shared root, forks one agent per task, runs the four-phase
|
|
193
|
-
* tick loop, and returns results. When `recursive` is enabled, a
|
|
194
|
-
* delegate tool is added to the toolkit that calls `spawnAgents()`
|
|
195
|
-
* again — enabling agents to delegate sub-tasks at arbitrary depth.
|
|
196
|
-
*
|
|
197
|
-
* This is the general-purpose orchestration primitive. The harness
|
|
198
|
-
* controls the prompt, tools, recursion shape, and policy. Sources
|
|
199
|
-
* just provide data access tools.
|
|
200
|
-
*
|
|
201
|
-
* @example Research harness
|
|
202
|
-
* ```typescript
|
|
203
|
-
* const result = yield* spawnAgents({
|
|
204
|
-
* tools: source.tools,
|
|
205
|
-
* systemPrompt: RESEARCH_PROMPT,
|
|
206
|
-
* tasks: questions,
|
|
207
|
-
* terminalTool: { name: 'report', tool: reportTool },
|
|
208
|
-
* recursive: { name: 'web_research', extractTasks: (a) => a.questions as string[] },
|
|
209
|
-
* });
|
|
210
|
-
* ```
|
|
211
|
-
*
|
|
212
|
-
* @category Agents
|
|
213
|
-
*/
|
|
214
|
-
function* spawnAgents(opts) {
|
|
215
|
-
// Build the recursive delegate tool if enabled
|
|
216
|
-
let delegateTool;
|
|
217
|
-
if (opts.recursive) {
|
|
218
|
-
const rc = typeof opts.recursive === 'object' ? opts.recursive : {};
|
|
219
|
-
const name = rc.name ?? 'delegate';
|
|
220
|
-
const description = rc.description ?? `Delegate sub-tasks to parallel agents. Each task gets its own agent.`;
|
|
221
|
-
const argsSchema = rc.argsSchema ?? DEFAULT_ARGS_SCHEMA;
|
|
222
|
-
const extractTasks = rc.extractTasks ?? ((args) => args.tasks);
|
|
223
|
-
delegateTool = new DelegateTool(name, description, argsSchema, extractTasks, opts);
|
|
224
|
-
}
|
|
225
|
-
// Compose toolkit: data tools + terminal tool + optional delegate tool
|
|
226
|
-
const allTools = [
|
|
227
|
-
...opts.tools,
|
|
228
|
-
...(opts.terminalTool ? [opts.terminalTool.tool] : []),
|
|
229
|
-
...(delegateTool ? [delegateTool] : []),
|
|
230
|
-
];
|
|
231
|
-
const toolkit = (0, toolkit_1.createToolkit)(allTools);
|
|
232
|
-
// Wire circular reference: delegate tool needs the toolkit that contains it
|
|
233
|
-
if (delegateTool) {
|
|
234
|
-
delegateTool.setToolkit(toolkit);
|
|
235
|
-
}
|
|
236
|
-
// Run the pool
|
|
237
|
-
return yield* (0, shared_root_1.withSharedRoot)({ systemPrompt: opts.systemPrompt, tools: toolkit.toolsJson, parent: opts.parent }, function* (root) {
|
|
238
|
-
return yield* (0, agent_pool_1.useAgentPool)({
|
|
239
|
-
tasks: opts.tasks.map((t) => ({
|
|
240
|
-
systemPrompt: opts.systemPrompt,
|
|
241
|
-
content: t,
|
|
242
|
-
tools: toolkit.toolsJson,
|
|
243
|
-
parent: root,
|
|
244
|
-
})),
|
|
245
|
-
tools: toolkit.toolMap,
|
|
246
|
-
terminalTool: opts.terminalTool?.name,
|
|
247
|
-
pruneOnReport: opts.pruneOnReport,
|
|
248
|
-
maxTurns: opts.maxTurns,
|
|
249
|
-
trace: opts.trace,
|
|
250
|
-
policy: opts.policy,
|
|
251
|
-
scorer: opts.scorer,
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
//# sourceMappingURL=spawn-agents.js.map
|
package/dist/spawn-agents.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-agents.js","sourceRoot":"","sources":["../src/spawn-agents.ts"],"names":[],"mappings":"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"}
|