n8n-nodes-agentic-rag-ai-bigboss 1.0.0 → 1.0.2
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.
|
@@ -13,14 +13,22 @@ class AgenticAIAgentAgenticRag {
|
|
|
13
13
|
defaults: {
|
|
14
14
|
name: 'Agentic RAG',
|
|
15
15
|
},
|
|
16
|
-
inputs: [
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
inputs: [
|
|
17
|
+
{
|
|
18
|
+
displayName: 'Main',
|
|
19
|
+
type: 'main',
|
|
20
|
+
},
|
|
19
21
|
{
|
|
20
|
-
|
|
22
|
+
displayName: 'Model',
|
|
23
|
+
type: 'ai_languageModel',
|
|
21
24
|
required: true,
|
|
22
25
|
},
|
|
26
|
+
{
|
|
27
|
+
displayName: 'Vector Store',
|
|
28
|
+
type: 'ai_vectorStore',
|
|
29
|
+
},
|
|
23
30
|
],
|
|
31
|
+
outputs: ['main'],
|
|
24
32
|
properties: [
|
|
25
33
|
{
|
|
26
34
|
displayName: 'Resource',
|
|
@@ -210,16 +218,17 @@ class AgenticAIAgentAgenticRag {
|
|
|
210
218
|
const returnData = [];
|
|
211
219
|
const resource = this.getNodeParameter('resource', 0);
|
|
212
220
|
const operation = this.getNodeParameter('operation', 0);
|
|
213
|
-
const instance = new AgenticAIAgentAgenticRag();
|
|
214
221
|
for (let i = 0; i < items.length; i++) {
|
|
215
222
|
try {
|
|
216
223
|
if (resource === 'agent') {
|
|
217
224
|
if (operation === 'ask') {
|
|
218
225
|
const query = this.getNodeParameter('query', i);
|
|
226
|
+
const systemPrompt = this.getNodeParameter('systemPrompt', i);
|
|
219
227
|
const maxIterations = this.getNodeParameter('maxIterations', i);
|
|
220
228
|
const confidenceThreshold = this.getNodeParameter('confidenceThreshold', i);
|
|
221
229
|
let agentState = {
|
|
222
230
|
query,
|
|
231
|
+
systemPrompt,
|
|
223
232
|
iteration: 0,
|
|
224
233
|
findings: [],
|
|
225
234
|
questions_asked: [],
|
|
@@ -227,19 +236,22 @@ class AgenticAIAgentAgenticRag {
|
|
|
227
236
|
complete: false
|
|
228
237
|
};
|
|
229
238
|
while (!agentState.complete && agentState.iteration < maxIterations) {
|
|
230
|
-
const plan = await
|
|
231
|
-
const results = await
|
|
232
|
-
const reflection = await
|
|
233
|
-
agentState.findings.push(
|
|
239
|
+
const plan = await generatePlan(this, i, agentState);
|
|
240
|
+
const results = await executeResearch(this, i, plan, agentState);
|
|
241
|
+
const reflection = await reflectOnResults(this, i, results, agentState);
|
|
242
|
+
agentState.findings.push({
|
|
243
|
+
iteration: agentState.iteration,
|
|
244
|
+
results
|
|
245
|
+
});
|
|
234
246
|
agentState.confidence = reflection.confidence;
|
|
235
247
|
agentState.complete = reflection.should_stop || agentState.confidence >= (confidenceThreshold * 100);
|
|
236
248
|
agentState.iteration++;
|
|
237
249
|
if (!agentState.complete) {
|
|
238
|
-
const followUps = await
|
|
250
|
+
const followUps = await generateFollowUpQuestions(this, i, agentState);
|
|
239
251
|
agentState.questions_asked.push(...followUps);
|
|
240
252
|
}
|
|
241
253
|
}
|
|
242
|
-
const finalAnswer = await
|
|
254
|
+
const finalAnswer = await synthesizeAnswer(this, i, agentState);
|
|
243
255
|
returnData.push({
|
|
244
256
|
json: {
|
|
245
257
|
answer: finalAnswer,
|
|
@@ -248,8 +260,8 @@ class AgenticAIAgentAgenticRag {
|
|
|
248
260
|
sources: agentState.findings,
|
|
249
261
|
reasoning_trace: agentState.questions_asked,
|
|
250
262
|
metadata: {
|
|
251
|
-
|
|
252
|
-
|
|
263
|
+
status: 'success',
|
|
264
|
+
agent: 'BigBoss-Agentic-RAG-v1'
|
|
253
265
|
}
|
|
254
266
|
}
|
|
255
267
|
});
|
|
@@ -276,52 +288,83 @@ class AgenticAIAgentAgenticRag {
|
|
|
276
288
|
}
|
|
277
289
|
return [returnData];
|
|
278
290
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
async reflectOnResults(results, state) {
|
|
299
|
-
const confidence = 40 + (state.iteration * 20);
|
|
300
|
-
return {
|
|
301
|
-
confidence: confidence,
|
|
302
|
-
should_stop: confidence >= 90,
|
|
303
|
-
knowledge_gaps: state.iteration < 2 ? ['Missing technical details'] : [],
|
|
304
|
-
contradictions: [],
|
|
305
|
-
next_focus_areas: ['Deeper dive into architecture']
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
async generateFollowUpQuestions(state) {
|
|
309
|
-
return [
|
|
310
|
-
`Can you elaborate on the technical implementation of iteration ${state.iteration}?`
|
|
311
|
-
];
|
|
291
|
+
}
|
|
292
|
+
exports.AgenticAIAgentAgenticRag = AgenticAIAgentAgenticRag;
|
|
293
|
+
async function runLlm(thisRef, itemIndex, system, prompt, jsonMode = false) {
|
|
294
|
+
const messages = [
|
|
295
|
+
{ role: 'system', content: system },
|
|
296
|
+
{ role: 'user', content: prompt }
|
|
297
|
+
];
|
|
298
|
+
const response = await thisRef.helpers.executeLanguageModel(itemIndex, messages, {
|
|
299
|
+
jsonMode,
|
|
300
|
+
});
|
|
301
|
+
const content = typeof response === 'string' ? response : response.text || response.content;
|
|
302
|
+
if (jsonMode && typeof content === 'string') {
|
|
303
|
+
try {
|
|
304
|
+
const cleanContent = content.replace(/```json\n?|\n?```/g, '').trim();
|
|
305
|
+
return JSON.parse(cleanContent);
|
|
306
|
+
}
|
|
307
|
+
catch (e) {
|
|
308
|
+
return { error: 'Failed to parse model response as JSON', raw: content };
|
|
309
|
+
}
|
|
312
310
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
311
|
+
return content;
|
|
312
|
+
}
|
|
313
|
+
async function generatePlan(thisRef, itemIndex, state) {
|
|
314
|
+
const prompt = `Decompose this query into specific research sub-questions: "${state.query}".
|
|
315
|
+
Previous questions asked: ${JSON.stringify(state.questions_asked)}.
|
|
316
|
+
Return a JSON object with: { "sub_questions": string[], "search_strategies": string[] }`;
|
|
317
|
+
return await runLlm(thisRef, itemIndex, "You are a research planner. Output VALID JSON ONLY.", prompt, true);
|
|
318
|
+
}
|
|
319
|
+
async function executeResearch(thisRef, itemIndex, plan, state) {
|
|
320
|
+
const ragSource = thisRef.getNodeParameter('ragSource', itemIndex);
|
|
321
|
+
if (ragSource !== 'webSearch') {
|
|
322
|
+
try {
|
|
323
|
+
const results = [];
|
|
324
|
+
for (const q of plan.sub_questions) {
|
|
325
|
+
const searchResults = await thisRef.helpers.executeVectorStore(itemIndex, q, {
|
|
326
|
+
topK: 3,
|
|
327
|
+
});
|
|
328
|
+
if (searchResults && searchResults.length > 0) {
|
|
329
|
+
results.push({
|
|
330
|
+
question: q,
|
|
331
|
+
evidence: searchResults.map((r) => r.pageContent).join('\n'),
|
|
332
|
+
sources: searchResults.map((r) => ({
|
|
333
|
+
title: (r.metadata && r.metadata.title) || 'Source Document',
|
|
334
|
+
url: (r.metadata && r.metadata.url) || '#'
|
|
335
|
+
})),
|
|
336
|
+
confidence: 0.9
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (results.length > 0)
|
|
341
|
+
return results;
|
|
342
|
+
}
|
|
343
|
+
catch (e) {
|
|
344
|
+
}
|
|
324
345
|
}
|
|
346
|
+
return plan.sub_questions.map((q) => ({
|
|
347
|
+
question: q,
|
|
348
|
+
evidence: `Search result for: ${q} (Simulated)`,
|
|
349
|
+
sources: [{ title: 'Web Analysis', url: 'https://google.com' }],
|
|
350
|
+
confidence: 0.8
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
async function reflectOnResults(thisRef, itemIndex, results, state) {
|
|
354
|
+
const prompt = `Based on these results: ${JSON.stringify(results)}, assess our progress for the query: "${state.query}".
|
|
355
|
+
Return a JSON object with: { "confidence": number (0-100), "should_stop": boolean, "knowledge_gaps": string[] }`;
|
|
356
|
+
return await runLlm(thisRef, itemIndex, "You are a research critic. Output VALID JSON ONLY.", prompt, true);
|
|
357
|
+
}
|
|
358
|
+
async function generateFollowUpQuestions(thisRef, itemIndex, state) {
|
|
359
|
+
const prompt = `Based on current findings, what deeper questions should we ask to resolve gaps? Current state: ${JSON.stringify(state.findings)}.
|
|
360
|
+
Return a JSON object with: { "follow_ups": string[] }`;
|
|
361
|
+
const res = await runLlm(thisRef, itemIndex, "You are a research assistant. Output VALID JSON ONLY.", prompt, true);
|
|
362
|
+
return res.follow_ups || [];
|
|
363
|
+
}
|
|
364
|
+
async function synthesizeAnswer(thisRef, itemIndex, state) {
|
|
365
|
+
const prompt = `Synthesize a final comprehensive answer for: "${state.query}".
|
|
366
|
+
Use these findings: ${JSON.stringify(state.findings)}.
|
|
367
|
+
System Persona: ${state.systemPrompt}`;
|
|
368
|
+
return await runLlm(thisRef, itemIndex, state.systemPrompt, prompt, false);
|
|
325
369
|
}
|
|
326
|
-
exports.AgenticAIAgentAgenticRag = AgenticAIAgentAgenticRag;
|
|
327
370
|
//# sourceMappingURL=AgenticAIAgentAgenticRag.node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgenticAIAgentAgenticRag.node.js","sourceRoot":"","sources":["../../../nodes/AgenticAIAgentAgenticRag/AgenticAIAgentAgenticRag.node.ts"],"names":[],"mappings":";;;AASA,MAAa,wBAAwB;IAArC;QACI,gBAAW,GAAyB;YAChC,WAAW,EAAE,0BAA0B;YACvC,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,mCAAmC;YACzC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,6CAA6C;YAC1D,QAAQ,EAAE;gBACN,IAAI,EAAE,aAAa;aACtB;YACD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"AgenticAIAgentAgenticRag.node.js","sourceRoot":"","sources":["../../../nodes/AgenticAIAgentAgenticRag/AgenticAIAgentAgenticRag.node.ts"],"names":[],"mappings":"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"}
|