@caretakerai/agent 0.0.30 → 0.0.32
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/agent.d.ts +1 -0
- package/dist/agent.js +60 -57
- package/dist/agent.js.map +1 -1
- package/package.json +1 -1
package/dist/agent.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ export declare class Agent implements AgentPrams {
|
|
|
74
74
|
constructor(params: AgentPrams);
|
|
75
75
|
private addActivities;
|
|
76
76
|
cancel(reason?: any): void;
|
|
77
|
+
infer(history: Activity[], params?: Record<string, any>): Promise<Activity[]>;
|
|
77
78
|
prompt(params?: Record<string, string>): Promise<void>;
|
|
78
79
|
invoke(params?: Record<string, any>): Promise<void>;
|
|
79
80
|
}
|
package/dist/agent.js
CHANGED
|
@@ -144,8 +144,52 @@ class Agent {
|
|
|
144
144
|
this.signal = controller.signal;
|
|
145
145
|
controller.abort(reason);
|
|
146
146
|
}
|
|
147
|
+
async infer(history, params = {}) {
|
|
148
|
+
const messages = [];
|
|
149
|
+
let aiActivities = [];
|
|
150
|
+
history.forEach(activity => {
|
|
151
|
+
if (activity.kind === activity_1.ActivityKind.Observation) {
|
|
152
|
+
// AI generates Thought and Action per messages
|
|
153
|
+
aiActivities.length && messages.push(new messages_1.AIMessage(aiActivities.map(a => a.prompt()).join(constants_1.ACTIVITY_SEP)));
|
|
154
|
+
aiActivities = [];
|
|
155
|
+
// Human generates single Observation per message
|
|
156
|
+
messages.push(new messages_1.HumanMessage(activity.prompt()));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
aiActivities.push(activity);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
// Push remaining activities to chat messages
|
|
163
|
+
if (aiActivities.length) {
|
|
164
|
+
messages.push(new messages_1.AIMessage(aiActivities.map(a => a.prompt()).join(constants_1.ACTIVITY_SEP)));
|
|
165
|
+
}
|
|
166
|
+
// Render system prompt
|
|
167
|
+
const systemPrompt = await this.template.partial({
|
|
168
|
+
objective: this.objective,
|
|
169
|
+
schema: this.typeDefs.toString(),
|
|
170
|
+
instruction: this.instruction,
|
|
171
|
+
examples: async () => this.examples.map(h => h.prompt()).join(constants_1.ACTIVITY_SEP),
|
|
172
|
+
});
|
|
173
|
+
const { value: systemPromptValue } = await systemPrompt.invoke(params);
|
|
174
|
+
const res = await this.llm
|
|
175
|
+
.bind({ stop: [`<${activity_1.ActivityKind.Observation}>`] }) // Do not allow LLMs to generate observations
|
|
176
|
+
.invoke([
|
|
177
|
+
new messages_1.SystemMessage(systemPromptValue),
|
|
178
|
+
...messages
|
|
179
|
+
]);
|
|
180
|
+
let { content } = res;
|
|
181
|
+
const { response_metadata } = res;
|
|
182
|
+
if (response_metadata?.finish_reason == 'length') {
|
|
183
|
+
throw new Error('Generation finished due to length reason.');
|
|
184
|
+
}
|
|
185
|
+
let newActivities = activity_1.Activity.parse(content).slice(0, 2);
|
|
186
|
+
if (!newActivities.length) {
|
|
187
|
+
throw new Error('No activities generated!');
|
|
188
|
+
}
|
|
189
|
+
return newActivities;
|
|
190
|
+
}
|
|
147
191
|
async prompt(params) {
|
|
148
|
-
let
|
|
192
|
+
let outputHistory = [];
|
|
149
193
|
const retryErrors = [];
|
|
150
194
|
// Prepare chat messages
|
|
151
195
|
let history = [...this.history];
|
|
@@ -157,59 +201,21 @@ class Agent {
|
|
|
157
201
|
history = await opt.optimize(history);
|
|
158
202
|
}
|
|
159
203
|
for (let i = 0; i < this.maxRetries; ++i) {
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
aiActivities.length && messages.push(new messages_1.AIMessage(aiActivities.map(a => a.prompt()).join(constants_1.ACTIVITY_SEP)));
|
|
166
|
-
aiActivities = [];
|
|
167
|
-
// Human generates single Observation per message
|
|
168
|
-
messages.push(new messages_1.HumanMessage(activity.prompt()));
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
aiActivities.push(activity);
|
|
204
|
+
const inputHistory = [...history, ...outputHistory];
|
|
205
|
+
if (inputHistory.at(-1)?.kind !== activity_1.ActivityKind.Action) {
|
|
206
|
+
try {
|
|
207
|
+
const newActivities = await this.infer(inputHistory, params);
|
|
208
|
+
outputHistory.push(...newActivities);
|
|
172
209
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const systemPrompt = await this.template.partial({
|
|
180
|
-
objective: this.objective,
|
|
181
|
-
schema: this.typeDefs.toString(),
|
|
182
|
-
instruction: this.instruction,
|
|
183
|
-
examples: async () => this.examples.map(h => h.prompt()).join(constants_1.ACTIVITY_SEP),
|
|
184
|
-
});
|
|
185
|
-
const { value: systemPromptValue } = await systemPrompt.invoke(params ?? {});
|
|
186
|
-
const res = await this.llm
|
|
187
|
-
.bind({ stop: [`<${activity_1.ActivityKind.Observation}>`] }) // Do not allow LLMs to generate observations
|
|
188
|
-
.invoke([
|
|
189
|
-
new messages_1.SystemMessage(systemPromptValue),
|
|
190
|
-
...messages
|
|
191
|
-
]);
|
|
192
|
-
let { content } = res;
|
|
193
|
-
const { response_metadata } = res;
|
|
194
|
-
if (response_metadata?.finish_reason == 'length') {
|
|
195
|
-
retryErrors.push(new Error('Generation finished due to length reason.'));
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
try {
|
|
199
|
-
let newActivities = activity_1.Activity.parse(content).slice(0, 2);
|
|
200
|
-
if (!newActivities.length) {
|
|
201
|
-
throw new Error('No activities generated!');
|
|
210
|
+
catch (e) {
|
|
211
|
+
const err = e;
|
|
212
|
+
this.logger.warn(err.message);
|
|
213
|
+
retryErrors.push(err);
|
|
214
|
+
this.logger.debug(`Retry ${i + 1} due to malformed output: ${err.message}`);
|
|
215
|
+
continue;
|
|
202
216
|
}
|
|
203
|
-
activities.push(...newActivities);
|
|
204
217
|
}
|
|
205
|
-
|
|
206
|
-
const err = e;
|
|
207
|
-
this.logger.warn(err.message);
|
|
208
|
-
retryErrors.push(err);
|
|
209
|
-
this.logger.debug(`Retry ${i + 1} due to malformed output: ${err.message}`);
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
const activity = activities.at(-1);
|
|
218
|
+
const activity = [...inputHistory, ...outputHistory].at(-1);
|
|
213
219
|
// Prompt LLM to provide action if missing
|
|
214
220
|
if (activity.kind === activity_1.ActivityKind.Thought) {
|
|
215
221
|
this.logger.debug(`Retry ${i + 1} due to missing action`);
|
|
@@ -224,7 +230,7 @@ class Agent {
|
|
|
224
230
|
? await this.executor(source)
|
|
225
231
|
: await (0, graphql_1.graphql)({ schema: this.schema, source });
|
|
226
232
|
// Add new observation to the iteration history
|
|
227
|
-
|
|
233
|
+
outputHistory.push(new activity_1.Activity({
|
|
228
234
|
kind: activity_1.ActivityKind.Observation,
|
|
229
235
|
input: (0, yaml_1.stringify)(result),
|
|
230
236
|
}));
|
|
@@ -233,12 +239,12 @@ class Agent {
|
|
|
233
239
|
continue;
|
|
234
240
|
}
|
|
235
241
|
// Add iteration activities to the agent history and finish iteration
|
|
236
|
-
this.addActivities(...
|
|
242
|
+
this.addActivities(...outputHistory);
|
|
237
243
|
return;
|
|
238
244
|
}
|
|
239
245
|
catch (e) {
|
|
240
246
|
const err = e;
|
|
241
|
-
|
|
247
|
+
outputHistory.push(new activity_1.Activity({
|
|
242
248
|
kind: activity_1.ActivityKind.Observation,
|
|
243
249
|
input: err.toString(),
|
|
244
250
|
}));
|
|
@@ -256,9 +262,6 @@ class Agent {
|
|
|
256
262
|
}
|
|
257
263
|
// Validate history sequence
|
|
258
264
|
activity_1.Activity.validateSequence(this.history);
|
|
259
|
-
if (this.history.at(-1)?.kind !== activity_1.ActivityKind.Observation) {
|
|
260
|
-
throw new Error('Latest experience must be of Observation kind');
|
|
261
|
-
}
|
|
262
265
|
for (let i = 0; i < this.maxIterations; ++i) {
|
|
263
266
|
await this.prompt(params);
|
|
264
267
|
if (this.signal?.aborted) {
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,+BAAiC;AACjC,gDAAoC;AAEpC,qDAAwD;AAGxD,kDAA6D;AAE7D,qCAAkE;AAElE,2CAA2C;AAC3C,yCAAoD;AAEpD,uDAA+F;AA8C/F,MAAa,eAAgB,SAAQ,KAAK;IAG/B;IAFT,YACE,OAAe,EACR,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAA;QAFP,WAAM,GAAN,MAAM,CAAS;IAGxB,CAAC;CACF;AAPD,0CAOC;AAED,MAAa,KAAK;IAChB,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,GAAG,CAAoB;IACvB,QAAQ,CAAc;IACtB,SAAS,CAAa;IACtB,OAAO,CAAc;IACrB,QAAQ,CAAa;IACrB,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,UAAU,CAAS;IACnB,WAAW,CAAU;IACrB,MAAM,CAAc;IACpB,UAAU,CAAe;IACzB,MAAM,CAAU;IAChB,QAAQ,CAAkB;IAC1B,QAAQ,CAAmB;IAElB,MAAM,CAAgB;IAE/B,MAAM,CAAC,QAAQ,GAAwB;QACrC,QAAQ,EAAE,wBAAc,CAAC,YAAY,CAAC,IAAA,gBAAM,EAAA;;;;;;;;;;;;KAY3C,CAAC;QACF,SAAS,EAAE,4BAA4B;QACvC,WAAW,EAAE,IAAA,gBAAM,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiClB;QACD,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,MAAM,CAAC,gBAAgB;QACtC,MAAM,EAAE,IAAA,cAAI,GAAE;QACd,cAAc;QACd,mBAAmB;QACnB,sCAAsC;QACtC,qBAAqB;QACrB,iBAAiB;QACjB,cAAc;QACd,yBAAyB;QACzB,uBAAuB;QACvB,aAAa;QACb,gBAAgB;QAChB,QAAQ;QACR,mBAAmB;QACnB,kCAAkC;QAClC,qBAAqB;QACrB,4FAA4F;QAE5F,mDAAmD;QACnD,iFAAiF;QACjF,8EAA8E;QAE9E,uHAAuH;QACvH,QAAQ;QACR,mBAAmB;QACnB,iCAAiC;QACjC,qBAAqB;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,qDAAqD;QACrD,oBAAoB;QACpB,cAAc;QACd,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,QAAQ;QACR,KAAK;KACN,CAAA;IAED,YAAY,MAAkB;QAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEjD,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,MAAM,GAAG,IAAA,6BAAoB,EAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;SAC7D;IACH,CAAC;IAEO,aAAa,CAAC,GAAG,UAAsB;QAC7C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,MAAY;QACjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|