n8n-nodes-ai-agent-langfuse 0.1.1 → 0.1.3
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 +1 -1
- package/dist/nodes/AgentWithLangfuse/V2/description.js +2 -20
- package/dist/nodes/AgentWithLangfuse/V2/description.js.map +1 -1
- package/dist/nodes/AgentWithLangfuse/V2/execute.js +106 -15
- package/dist/nodes/AgentWithLangfuse/V2/execute.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getToolsAgentProperties = void 0;
|
|
4
4
|
const sharedFields_1 = require("../../../src/utils/sharedFields");
|
|
5
5
|
const options_1 = require("../../../src/utils/options");
|
|
6
|
-
const
|
|
6
|
+
const enableStreamingOption = {
|
|
7
7
|
displayName: 'Enable Streaming',
|
|
8
8
|
name: 'enableStreaming',
|
|
9
9
|
type: 'boolean',
|
|
@@ -20,26 +20,8 @@ const getToolsAgentProperties = ({ withStreaming, }) => [
|
|
|
20
20
|
options: [
|
|
21
21
|
...options_1.commonOptions,
|
|
22
22
|
(0, sharedFields_1.getBatchingOptionFields)(undefined, 1),
|
|
23
|
-
|
|
23
|
+
enableStreamingOption,
|
|
24
24
|
],
|
|
25
|
-
displayOptions: {
|
|
26
|
-
hide: {
|
|
27
|
-
'@version': [{ _cnd: { lt: 2.2 } }],
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
displayName: 'Options',
|
|
33
|
-
name: 'options',
|
|
34
|
-
type: 'collection',
|
|
35
|
-
default: {},
|
|
36
|
-
placeholder: 'Add Option',
|
|
37
|
-
options: [...options_1.commonOptions, (0, sharedFields_1.getBatchingOptionFields)(undefined, 1)],
|
|
38
|
-
displayOptions: {
|
|
39
|
-
show: {
|
|
40
|
-
'@version': [{ _cnd: { lt: 2.2 } }],
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
25
|
},
|
|
44
26
|
];
|
|
45
27
|
exports.getToolsAgentProperties = getToolsAgentProperties;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../nodes/AgentWithLangfuse/V2/description.ts"],"names":[],"mappings":";;;AAEA,kEAA0E;AAE1E,wDAA2D;AAE3D,MAAM,
|
|
1
|
+
{"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../nodes/AgentWithLangfuse/V2/description.ts"],"names":[],"mappings":";;;AAEA,kEAA0E;AAE1E,wDAA2D;AAE3D,MAAM,qBAAqB,GAAoB;IAC3C,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,+EAA+E;CAC/F,CAAC;AAEK,MAAM,uBAAuB,GAAG,CAAC,EACpC,aAAa,GACY,EAAqB,EAAE,CAAC;IAC7C;QACI,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE;YACL,GAAG,uBAAa;YAChB,IAAA,sCAAuB,EAAC,SAAS,EAAE,CAAC,CAAC;YACrC,qBAAqB;SACxB;KACJ;CACJ,CAAC;AAfO,QAAA,uBAAuB,2BAe9B"}
|
|
@@ -48,6 +48,71 @@ function createAgentExecutor(model, tools, prompt, options, outputParser, memory
|
|
|
48
48
|
callbacks,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
+
async function processEventStream(ctx, eventStream, itemIndex, returnIntermediateSteps = false) {
|
|
52
|
+
var _a;
|
|
53
|
+
const agentResult = {
|
|
54
|
+
output: '',
|
|
55
|
+
};
|
|
56
|
+
if (returnIntermediateSteps) {
|
|
57
|
+
agentResult.intermediateSteps = [];
|
|
58
|
+
}
|
|
59
|
+
ctx.sendChunk('begin', itemIndex);
|
|
60
|
+
for await (const event of eventStream) {
|
|
61
|
+
switch (event.event) {
|
|
62
|
+
case 'on_chat_model_stream':
|
|
63
|
+
const chunk = (_a = event.data) === null || _a === void 0 ? void 0 : _a.chunk;
|
|
64
|
+
if (chunk === null || chunk === void 0 ? void 0 : chunk.content) {
|
|
65
|
+
const chunkContent = chunk.content;
|
|
66
|
+
let chunkText = '';
|
|
67
|
+
if (Array.isArray(chunkContent)) {
|
|
68
|
+
for (const message of chunkContent) {
|
|
69
|
+
chunkText += message === null || message === void 0 ? void 0 : message.text;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (typeof chunkContent === 'string') {
|
|
73
|
+
chunkText = chunkContent;
|
|
74
|
+
}
|
|
75
|
+
ctx.sendChunk('item', itemIndex, chunkText);
|
|
76
|
+
agentResult.output += chunkText;
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
case 'on_chat_model_end':
|
|
80
|
+
if (returnIntermediateSteps && event.data) {
|
|
81
|
+
const chatModelData = event.data;
|
|
82
|
+
const output = chatModelData.output;
|
|
83
|
+
if ((output === null || output === void 0 ? void 0 : output.tool_calls) && output.tool_calls.length > 0) {
|
|
84
|
+
for (const toolCall of output.tool_calls) {
|
|
85
|
+
agentResult.intermediateSteps.push({
|
|
86
|
+
action: {
|
|
87
|
+
tool: toolCall.name,
|
|
88
|
+
toolInput: toolCall.args,
|
|
89
|
+
log: output.content ||
|
|
90
|
+
`Calling ${toolCall.name} with input: ${JSON.stringify(toolCall.args)}`,
|
|
91
|
+
messageLog: [output],
|
|
92
|
+
toolCallId: toolCall.id,
|
|
93
|
+
type: toolCall.type,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case 'on_tool_end':
|
|
101
|
+
if (returnIntermediateSteps && event.data && agentResult.intermediateSteps.length > 0) {
|
|
102
|
+
const toolData = event.data;
|
|
103
|
+
const matchingStep = agentResult.intermediateSteps.find((step) => !step.observation && step.action.tool === event.name);
|
|
104
|
+
if (matchingStep) {
|
|
105
|
+
matchingStep.observation = toolData.output;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
ctx.sendChunk('end', itemIndex);
|
|
114
|
+
return agentResult;
|
|
115
|
+
}
|
|
51
116
|
async function toolsAgentExecute() {
|
|
52
117
|
this.logger.debug('Executing Tools Agent V2');
|
|
53
118
|
const returnData = [];
|
|
@@ -62,9 +127,10 @@ async function toolsAgentExecute() {
|
|
|
62
127
|
if (needsFallback && !fallbackModel) {
|
|
63
128
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Please connect a model to the Fallback Model input or disable the fallback option');
|
|
64
129
|
}
|
|
130
|
+
const enableStreaming = this.getNodeParameter('options.enableStreaming', 0, true);
|
|
65
131
|
for (let i = 0; i < items.length; i += batchSize) {
|
|
66
132
|
const batch = items.slice(i, i + batchSize);
|
|
67
|
-
const
|
|
133
|
+
const batchPromises = batch.map(async (_item, batchItemIndex) => {
|
|
68
134
|
var _a, _b, _c, _d;
|
|
69
135
|
const itemIndex = i + batchItemIndex;
|
|
70
136
|
const input = (0, helpers_1.getPromptInputByType)({
|
|
@@ -101,7 +167,7 @@ async function toolsAgentExecute() {
|
|
|
101
167
|
system_message: (_c = options.systemMessage) !== null && _c !== void 0 ? _c : prompt_1.SYSTEM_MESSAGE,
|
|
102
168
|
formatting_instructions: 'IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.',
|
|
103
169
|
};
|
|
104
|
-
const
|
|
170
|
+
const executeOptions = {
|
|
105
171
|
signal: this.getExecutionCancelSignal(),
|
|
106
172
|
callbacks: [langfuseHandler],
|
|
107
173
|
metadata: {
|
|
@@ -109,29 +175,54 @@ async function toolsAgentExecute() {
|
|
|
109
175
|
userId: langfuseMetadata.userId,
|
|
110
176
|
...langfuseMetadata.customMetadata,
|
|
111
177
|
},
|
|
112
|
-
});
|
|
113
|
-
if (memory && outputParser) {
|
|
114
|
-
const parsedOutput = (0, n8n_workflow_1.jsonParse)(response.output);
|
|
115
|
-
response.output = (_d = parsedOutput === null || parsedOutput === void 0 ? void 0 : parsedOutput.output) !== null && _d !== void 0 ? _d : parsedOutput;
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
json: (0, omit_1.default)(response, 'system_message', 'formatting_instructions', 'input', 'chat_history', 'agent_scratchpad'),
|
|
119
|
-
pairedItem: { item: itemIndex },
|
|
120
178
|
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
179
|
+
const isStreamingAvailable = 'isStreaming' in this ? (_d = this.isStreaming) === null || _d === void 0 ? void 0 : _d.call(this) : undefined;
|
|
180
|
+
if ('isStreaming' in this &&
|
|
181
|
+
enableStreaming &&
|
|
182
|
+
isStreamingAvailable &&
|
|
183
|
+
this.getNode().typeVersion >= 2.1) {
|
|
184
|
+
const chatHistory = await (memory === null || memory === void 0 ? void 0 : memory.chatHistory.getMessages());
|
|
185
|
+
const eventStream = executor.streamEvents({
|
|
186
|
+
...invokeParams,
|
|
187
|
+
chat_history: chatHistory !== null && chatHistory !== void 0 ? chatHistory : undefined,
|
|
188
|
+
}, {
|
|
189
|
+
version: 'v2',
|
|
190
|
+
...executeOptions,
|
|
191
|
+
});
|
|
192
|
+
return await processEventStream(this, eventStream, itemIndex, options.returnIntermediateSteps);
|
|
125
193
|
}
|
|
126
194
|
else {
|
|
195
|
+
return await executor.invoke(invokeParams, executeOptions);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
const batchResults = await Promise.allSettled(batchPromises);
|
|
199
|
+
const outputParser = await (0, N8nOutputParser_1.getOptionalOutputParser)(this, 0);
|
|
200
|
+
batchResults.forEach((result, index) => {
|
|
201
|
+
var _a;
|
|
202
|
+
const itemIndex = i + index;
|
|
203
|
+
if (result.status === 'rejected') {
|
|
127
204
|
const error = result.reason;
|
|
128
205
|
if (this.continueOnFail()) {
|
|
129
|
-
returnData.push({
|
|
206
|
+
returnData.push({
|
|
207
|
+
json: { error: error.message },
|
|
208
|
+
pairedItem: { item: itemIndex },
|
|
209
|
+
});
|
|
210
|
+
return;
|
|
130
211
|
}
|
|
131
212
|
else {
|
|
132
213
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error);
|
|
133
214
|
}
|
|
134
215
|
}
|
|
216
|
+
const response = result.value;
|
|
217
|
+
if (memory && outputParser) {
|
|
218
|
+
const parsedOutput = (0, n8n_workflow_1.jsonParse)(response.output);
|
|
219
|
+
response.output = (_a = parsedOutput === null || parsedOutput === void 0 ? void 0 : parsedOutput.output) !== null && _a !== void 0 ? _a : parsedOutput;
|
|
220
|
+
}
|
|
221
|
+
const itemResult = {
|
|
222
|
+
json: (0, omit_1.default)(response, 'system_message', 'formatting_instructions', 'input', 'chat_history', 'agent_scratchpad'),
|
|
223
|
+
pairedItem: { item: itemIndex },
|
|
224
|
+
};
|
|
225
|
+
returnData.push(itemResult);
|
|
135
226
|
});
|
|
136
227
|
if (i + batchSize < items.length && delayBetweenBatches > 0) {
|
|
137
228
|
await (0, n8n_workflow_1.sleep)(delayBetweenBatches);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../nodes/AgentWithLangfuse/V2/execute.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../nodes/AgentWithLangfuse/V2/execute.ts"],"names":[],"mappings":"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"}
|