@runflow-ai/sdk 1.0.5 → 1.0.6
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/connectors/connector-creator.d.ts +29 -0
- package/dist/connectors/connector-creator.d.ts.map +1 -0
- package/dist/connectors/connector-creator.js +123 -0
- package/dist/connectors/connector-creator.js.map +1 -0
- package/dist/connectors/index.d.ts +3 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +11 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/core/agent.d.ts +42 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +533 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/api-client.d.ts +34 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/api-client.js +339 -0
- package/dist/core/api-client.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/models.d.ts +4 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +20 -0
- package/dist/core/models.js.map +1 -0
- package/dist/index.d.ts +6 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -107
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +4 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/observability/index.d.ts +3 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +10 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/trace-collector.d.ts +43 -0
- package/dist/observability/trace-collector.d.ts.map +1 -0
- package/dist/observability/trace-collector.js +233 -0
- package/dist/observability/trace-collector.js.map +1 -0
- package/dist/streaming/index.d.ts +1 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +4 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +7 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/tool-creator.d.ts +3 -0
- package/dist/tools/tool-creator.d.ts.map +1 -0
- package/dist/tools/tool-creator.js +105 -0
- package/dist/tools/tool-creator.js.map +1 -0
- package/dist/types/all-types.d.ts +432 -0
- package/dist/types/all-types.d.ts.map +1 -0
- package/dist/{types.js → types/all-types.js} +1 -2
- package/dist/types/all-types.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/workflows/index.d.ts +3 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +13 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/workflow.d.ts +53 -0
- package/dist/workflows/workflow.d.ts.map +1 -0
- package/dist/workflows/workflow.js +414 -0
- package/dist/workflows/workflow.js.map +1 -0
- package/package.json +69 -21
- package/README.md +0 -892
- package/dist/agents/runflow-agent.d.ts +0 -54
- package/dist/agents/runflow-agent.d.ts.map +0 -1
- package/dist/agents/runflow-agent.js +0 -343
- package/dist/agents/runflow-agent.js.map +0 -1
- package/dist/agents/server.d.ts +0 -47
- package/dist/agents/server.d.ts.map +0 -1
- package/dist/agents/server.js +0 -329
- package/dist/agents/server.js.map +0 -1
- package/dist/agents/swagger.d.ts +0 -758
- package/dist/agents/swagger.d.ts.map +0 -1
- package/dist/agents/swagger.js +0 -375
- package/dist/agents/swagger.js.map +0 -1
- package/dist/config.d.ts +0 -17
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -131
- package/dist/config.js.map +0 -1
- package/dist/runflow-sdk.d.ts +0 -57
- package/dist/runflow-sdk.d.ts.map +0 -1
- package/dist/runflow-sdk.js +0 -622
- package/dist/runflow-sdk.js.map +0 -1
- package/dist/singleton.d.ts +0 -37
- package/dist/singleton.d.ts.map +0 -1
- package/dist/singleton.js +0 -86
- package/dist/singleton.js.map +0 -1
- package/dist/types.d.ts +0 -147
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -74
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -312
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Agent = void 0;
|
|
4
|
+
const trace_collector_1 = require("../observability/trace-collector");
|
|
5
|
+
const api_client_1 = require("./api-client");
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// AGENT CLASS
|
|
8
|
+
// ============================================================================
|
|
9
|
+
class Agent {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
// Auto-initialize API client if not in execution context
|
|
13
|
+
if (!this.apiClient) {
|
|
14
|
+
this.apiClient = (0, api_client_1.createRunflowAPIClient)();
|
|
15
|
+
this.traceCollector = (0, trace_collector_1.createTraceCollector)(this.apiClient, '', {
|
|
16
|
+
batchSize: 1, // Flush imediatamente após cada trace
|
|
17
|
+
flushInterval: 1000,
|
|
18
|
+
});
|
|
19
|
+
console.log('🔍 [SDK Agent] Trace collector initialized in constructor');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Injetar API client (feito pela execution engine)
|
|
23
|
+
_setAPIClient(apiClient) {
|
|
24
|
+
this.apiClient = apiClient;
|
|
25
|
+
this.traceCollector = (0, trace_collector_1.createTraceCollector)(apiClient, '', {
|
|
26
|
+
batchSize: 1, // Flush imediatamente após cada trace
|
|
27
|
+
flushInterval: 1000,
|
|
28
|
+
});
|
|
29
|
+
console.log('🔍 [SDK Agent] Trace collector initialized via _setAPIClient');
|
|
30
|
+
}
|
|
31
|
+
// Geração simples (aceita string ou array de messages)
|
|
32
|
+
async generate(input) {
|
|
33
|
+
const isMessagesArray = Array.isArray(input);
|
|
34
|
+
console.log('💬 [SDK Agent] Generate called with', isMessagesArray ? `${input.length} messages` : `prompt length: ${input.length}`);
|
|
35
|
+
if (!this.apiClient) {
|
|
36
|
+
console.error('❌ [SDK Agent] API client not initialized!');
|
|
37
|
+
throw new Error('Agent not initialized. API client not set.');
|
|
38
|
+
}
|
|
39
|
+
console.log('🌐 [SDK Agent] Calling chat API...');
|
|
40
|
+
const messages = isMessagesArray
|
|
41
|
+
? input
|
|
42
|
+
: [{ role: 'user', content: input }];
|
|
43
|
+
const chatRequest = {
|
|
44
|
+
projectId: '', // Será injetado pela engine
|
|
45
|
+
provider: this.config.model.provider,
|
|
46
|
+
model: this.config.model.model,
|
|
47
|
+
messages: messages,
|
|
48
|
+
instructions: this.config.instructions,
|
|
49
|
+
temperature: this.config.modelConfig?.temperature,
|
|
50
|
+
maxTokens: this.config.modelConfig?.maxTokens,
|
|
51
|
+
topP: this.config.modelConfig?.topP,
|
|
52
|
+
frequencyPenalty: this.config.modelConfig?.frequencyPenalty,
|
|
53
|
+
presencePenalty: this.config.modelConfig?.presencePenalty,
|
|
54
|
+
stop: this.config.modelConfig?.stop,
|
|
55
|
+
seed: this.config.modelConfig?.seed,
|
|
56
|
+
};
|
|
57
|
+
console.log('📡 [SDK Agent] Chat request:', JSON.stringify(chatRequest, null, 2));
|
|
58
|
+
try {
|
|
59
|
+
const response = await this.apiClient.chat(chatRequest);
|
|
60
|
+
console.log('✅ [SDK Agent] Chat response received:', response);
|
|
61
|
+
return { text: response.text };
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error('❌ [SDK Agent] Chat API failed:', error);
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Geração com streaming
|
|
69
|
+
async generateStream(prompt) {
|
|
70
|
+
if (!this.apiClient) {
|
|
71
|
+
throw new Error('Agent not initialized. API client not set.');
|
|
72
|
+
}
|
|
73
|
+
const stream = this.apiClient.chatStream({
|
|
74
|
+
projectId: '',
|
|
75
|
+
provider: this.config.model.provider,
|
|
76
|
+
model: this.config.model.model,
|
|
77
|
+
messages: [{ role: 'user', content: prompt }],
|
|
78
|
+
instructions: this.config.instructions,
|
|
79
|
+
temperature: this.config.modelConfig?.temperature,
|
|
80
|
+
maxTokens: this.config.modelConfig?.maxTokens,
|
|
81
|
+
topP: this.config.modelConfig?.topP,
|
|
82
|
+
frequencyPenalty: this.config.modelConfig?.frequencyPenalty,
|
|
83
|
+
presencePenalty: this.config.modelConfig?.presencePenalty,
|
|
84
|
+
stop: this.config.modelConfig?.stop,
|
|
85
|
+
seed: this.config.modelConfig?.seed,
|
|
86
|
+
});
|
|
87
|
+
return this.processStreamChunks(stream);
|
|
88
|
+
}
|
|
89
|
+
// Geração com tools
|
|
90
|
+
async generateWithTools(input) {
|
|
91
|
+
if (!this.apiClient) {
|
|
92
|
+
throw new Error('Agent not initialized. API client not set.');
|
|
93
|
+
}
|
|
94
|
+
if (!this.config.tools || Object.keys(this.config.tools).length === 0) {
|
|
95
|
+
return this.generate(input);
|
|
96
|
+
}
|
|
97
|
+
const isMessagesArray = Array.isArray(input);
|
|
98
|
+
const messages = isMessagesArray
|
|
99
|
+
? input
|
|
100
|
+
: [{ role: 'user', content: input }];
|
|
101
|
+
const response = await this.apiClient.chat({
|
|
102
|
+
projectId: '', // Será injetado pela engine
|
|
103
|
+
provider: this.config.model.provider,
|
|
104
|
+
model: this.config.model.model,
|
|
105
|
+
messages: messages,
|
|
106
|
+
instructions: this.config.instructions,
|
|
107
|
+
tools: Object.values(this.config.tools),
|
|
108
|
+
temperature: this.config.modelConfig?.temperature,
|
|
109
|
+
maxTokens: this.config.modelConfig?.maxTokens,
|
|
110
|
+
topP: this.config.modelConfig?.topP,
|
|
111
|
+
frequencyPenalty: this.config.modelConfig?.frequencyPenalty,
|
|
112
|
+
presencePenalty: this.config.modelConfig?.presencePenalty,
|
|
113
|
+
stop: this.config.modelConfig?.stop,
|
|
114
|
+
seed: this.config.modelConfig?.seed,
|
|
115
|
+
});
|
|
116
|
+
return { text: response.text };
|
|
117
|
+
}
|
|
118
|
+
// Processamento principal (chamado pela execution engine)
|
|
119
|
+
async process(input, context) {
|
|
120
|
+
console.log('🤖 [SDK Agent] Starting process...');
|
|
121
|
+
console.log('📥 [SDK Agent] Input:', JSON.stringify(input, null, 2));
|
|
122
|
+
console.log('🔧 [SDK Agent] Config:', {
|
|
123
|
+
name: this.config.name,
|
|
124
|
+
model: this.config.model,
|
|
125
|
+
hasMemory: !!this.config.memory,
|
|
126
|
+
hasRAG: !!this.config.rag,
|
|
127
|
+
hasTools: !!(this.config.tools && Object.keys(this.config.tools).length > 0),
|
|
128
|
+
});
|
|
129
|
+
// Configurar API client com contexto
|
|
130
|
+
if (context?.apiClient) {
|
|
131
|
+
console.log('🔗 [SDK Agent] Using injected API client from context');
|
|
132
|
+
this._setAPIClient(context.apiClient);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
console.log('🔗 [SDK Agent] Using auto-configured API client');
|
|
136
|
+
// this.apiClient já foi inicializado no constructor
|
|
137
|
+
}
|
|
138
|
+
console.log('🌐 [SDK Agent] API Client configured:', !!this.apiClient);
|
|
139
|
+
// Iniciar trace da execução com dados enriquecidos
|
|
140
|
+
const executionStartTime = Date.now();
|
|
141
|
+
console.log('🔍 [SDK Agent] Checking trace collector:', {
|
|
142
|
+
hasTraceCollector: !!this.traceCollector,
|
|
143
|
+
traceCollectorType: typeof this.traceCollector
|
|
144
|
+
});
|
|
145
|
+
const span = this.traceCollector?.startSpan('agent_execution', {
|
|
146
|
+
// Agent metadata
|
|
147
|
+
agentName: this.config.name,
|
|
148
|
+
agentId: this.config.name.toLowerCase().replace(/\s+/g, '-'),
|
|
149
|
+
agentVersion: '2.0.0',
|
|
150
|
+
model: this.config.model.model,
|
|
151
|
+
provider: this.config.model.provider,
|
|
152
|
+
// Model configuration
|
|
153
|
+
modelConfig: this.config.modelConfig,
|
|
154
|
+
// Context metadata
|
|
155
|
+
sessionId: input.sessionId,
|
|
156
|
+
userId: input.userId,
|
|
157
|
+
companyId: input.companyId,
|
|
158
|
+
tenantId: input.companyId, // Usar companyId como tenantId
|
|
159
|
+
channel: input.channel,
|
|
160
|
+
// Execution context
|
|
161
|
+
environment: process.env.NODE_ENV || 'development',
|
|
162
|
+
isBackgroundTask: false,
|
|
163
|
+
// Feature usage
|
|
164
|
+
ragUsed: !!this.config.rag,
|
|
165
|
+
memoryUsed: !!this.config.memory,
|
|
166
|
+
multiAgentUsed: !!(this.config.agents && Object.keys(this.config.agents).length > 0),
|
|
167
|
+
toolsUsed: this.config.tools ? Object.keys(this.config.tools) : [],
|
|
168
|
+
// Performance tracking
|
|
169
|
+
queueTimeMs: 0, // Será atualizado se necessário
|
|
170
|
+
});
|
|
171
|
+
span?.setInput(input);
|
|
172
|
+
// Se tem multi-agents, usar supervisor pattern
|
|
173
|
+
if (this.config.agents && Object.keys(this.config.agents).length > 0) {
|
|
174
|
+
return this.processMultiAgent(input, context);
|
|
175
|
+
}
|
|
176
|
+
// Memory management se configurado
|
|
177
|
+
let conversationHistory = '';
|
|
178
|
+
if (this.config.memory && input.sessionId) {
|
|
179
|
+
console.log('🧠 [SDK Agent] Loading memory for session:', input.sessionId);
|
|
180
|
+
conversationHistory = await this.loadMemory(input.sessionId);
|
|
181
|
+
console.log('🧠 [SDK Agent] Memory loaded:', conversationHistory.length > 0 ? 'Found history' : 'No history');
|
|
182
|
+
}
|
|
183
|
+
// RAG automático se configurado
|
|
184
|
+
let ragContext = '';
|
|
185
|
+
if (this.config.rag?.autoSearch) {
|
|
186
|
+
console.log('🔍 [SDK Agent] Performing RAG search for:', input.message);
|
|
187
|
+
const ragData = await this.performRAG(input.message);
|
|
188
|
+
if (ragData) {
|
|
189
|
+
ragContext = `Context: ${ragData}\n\n`;
|
|
190
|
+
console.log('🔍 [SDK Agent] RAG context found:', ragData.substring(0, 100) + '...');
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
console.log('🔍 [SDK Agent] No RAG context found');
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Construir messages para LLM
|
|
197
|
+
let messages = [];
|
|
198
|
+
// Se tem messages[] no input, usar como contexto (não persistido)
|
|
199
|
+
if (input.messages && input.messages.length > 0) {
|
|
200
|
+
console.log('💬 [SDK Agent] Using provided messages as context:', input.messages.length);
|
|
201
|
+
messages = input.messages.map(msg => ({
|
|
202
|
+
role: msg.role,
|
|
203
|
+
content: msg.content
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
// Adicionar contexto de memory se disponível
|
|
207
|
+
if (conversationHistory) {
|
|
208
|
+
// Se já tem messages[], adicionar memory como contexto de sistema
|
|
209
|
+
if (messages.length > 0) {
|
|
210
|
+
messages.unshift({
|
|
211
|
+
role: 'system',
|
|
212
|
+
content: `Previous conversation context: ${conversationHistory}`
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
// Se não tem messages[], usar memory como prompt tradicional
|
|
217
|
+
const prompt = `${ragContext}${conversationHistory}Question: ${input.message}`;
|
|
218
|
+
messages = [{ role: 'user', content: prompt }];
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else if (messages.length === 0) {
|
|
222
|
+
// Sem messages[] nem memory, usar prompt simples
|
|
223
|
+
const prompt = ragContext ? `${ragContext}Question: ${input.message}` : input.message;
|
|
224
|
+
messages = [{ role: 'user', content: prompt }];
|
|
225
|
+
}
|
|
226
|
+
// Adicionar nova mensagem se usando messages[]
|
|
227
|
+
if (input.messages && input.messages.length > 0) {
|
|
228
|
+
messages.push({ role: 'user', content: input.message });
|
|
229
|
+
}
|
|
230
|
+
console.log('📝 [SDK Agent] Final messages for LLM:', messages.length);
|
|
231
|
+
console.log('🤖 [SDK Agent] Calling LLM...');
|
|
232
|
+
// Processar com ou sem tools
|
|
233
|
+
const result = this.config.tools && Object.keys(this.config.tools).length > 0
|
|
234
|
+
? await this.generateWithTools(messages)
|
|
235
|
+
: await this.generate(messages);
|
|
236
|
+
console.log('✅ [SDK Agent] LLM response received:', result.text.substring(0, 100) + '...');
|
|
237
|
+
// Salvar na memória se configurado
|
|
238
|
+
if (this.config.memory && input.sessionId) {
|
|
239
|
+
console.log('💾 [SDK Agent] Saving to memory...');
|
|
240
|
+
await this.saveToMemory(input.sessionId, input.message, result.text);
|
|
241
|
+
console.log('💾 [SDK Agent] Memory saved');
|
|
242
|
+
}
|
|
243
|
+
const output = {
|
|
244
|
+
message: result.text,
|
|
245
|
+
metadata: {
|
|
246
|
+
model: this.config.model.model,
|
|
247
|
+
provider: this.config.model.provider,
|
|
248
|
+
ragUsed: !!ragContext,
|
|
249
|
+
memoryUsed: !!conversationHistory,
|
|
250
|
+
sessionId: input.sessionId,
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
console.log('📤 [SDK Agent] Final output:', JSON.stringify(output, null, 2));
|
|
254
|
+
// Finalizar trace com métricas de performance
|
|
255
|
+
const executionEndTime = Date.now();
|
|
256
|
+
const processingTimeMs = executionEndTime - executionStartTime;
|
|
257
|
+
span?.setOutput(output);
|
|
258
|
+
span?.setMetadata({
|
|
259
|
+
// Feature usage atualizado
|
|
260
|
+
ragUsed: !!ragContext,
|
|
261
|
+
memoryUsed: !!conversationHistory,
|
|
262
|
+
toolsUsed: this.getUsedTools(),
|
|
263
|
+
// Performance metrics
|
|
264
|
+
processingTimeMs,
|
|
265
|
+
// Quality metrics
|
|
266
|
+
confidence: 0.9, // Placeholder - pode ser calculado baseado no contexto
|
|
267
|
+
reasoning: ragContext ? 'Used RAG context for enhanced response' : 'Direct LLM response',
|
|
268
|
+
});
|
|
269
|
+
// Adicionar custos se disponível (placeholder - será implementado quando tivermos dados reais)
|
|
270
|
+
span?.setCosts({
|
|
271
|
+
tokens: {
|
|
272
|
+
input: 100, // Placeholder
|
|
273
|
+
output: 50, // Placeholder
|
|
274
|
+
total: 150
|
|
275
|
+
},
|
|
276
|
+
costs: {
|
|
277
|
+
inputCost: 0.003,
|
|
278
|
+
outputCost: 0.002,
|
|
279
|
+
totalCost: 0.005,
|
|
280
|
+
currency: 'USD'
|
|
281
|
+
},
|
|
282
|
+
totalCost: 0.005
|
|
283
|
+
});
|
|
284
|
+
span?.finish();
|
|
285
|
+
// Forçar flush dos traces pendentes
|
|
286
|
+
if (this.traceCollector) {
|
|
287
|
+
console.log('🚀 [SDK Agent] Forcing trace flush...');
|
|
288
|
+
await this.traceCollector.flush();
|
|
289
|
+
}
|
|
290
|
+
console.log('🎉 [SDK Agent] Process completed successfully');
|
|
291
|
+
return output;
|
|
292
|
+
}
|
|
293
|
+
// Multi-agent processing (supervisor pattern)
|
|
294
|
+
async processMultiAgent(input, context) {
|
|
295
|
+
// Criar supervisor automático
|
|
296
|
+
const supervisor = this.createSupervisor();
|
|
297
|
+
// Supervisor decide qual agent usar
|
|
298
|
+
const decision = await supervisor.generate(`
|
|
299
|
+
Available agents:
|
|
300
|
+
${Object.entries(this.config.agents).map(([name, config]) => `- ${name}: ${config.instructions}`).join('\n')}
|
|
301
|
+
|
|
302
|
+
User input: "${input.message}"
|
|
303
|
+
|
|
304
|
+
Which agent should handle this? Respond with just the agent name.
|
|
305
|
+
`);
|
|
306
|
+
const selectedAgentName = decision.text.trim();
|
|
307
|
+
const selectedAgentConfig = this.config.agents[selectedAgentName];
|
|
308
|
+
if (!selectedAgentConfig) {
|
|
309
|
+
// Fallback para primeiro agent
|
|
310
|
+
const firstAgentName = Object.keys(this.config.agents)[0];
|
|
311
|
+
const firstAgentConfig = this.config.agents[firstAgentName];
|
|
312
|
+
const agent = new Agent(firstAgentConfig);
|
|
313
|
+
return agent.process(input, context);
|
|
314
|
+
}
|
|
315
|
+
// Executar agent selecionado
|
|
316
|
+
const selectedAgent = new Agent(selectedAgentConfig);
|
|
317
|
+
return selectedAgent.process(input, context);
|
|
318
|
+
}
|
|
319
|
+
// Criar supervisor automático
|
|
320
|
+
createSupervisor() {
|
|
321
|
+
return new Agent({
|
|
322
|
+
name: 'Supervisor',
|
|
323
|
+
instructions: 'You are a supervisor that routes tasks to appropriate agents.',
|
|
324
|
+
model: this.config.model, // Mesmo modelo do agent principal
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
// RAG automático
|
|
328
|
+
async performRAG(query) {
|
|
329
|
+
if (!this.config.rag || !this.apiClient) {
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
const searchResults = await this.apiClient.vectorSearch(query, {
|
|
334
|
+
vectorStore: this.config.rag.vectorStore,
|
|
335
|
+
k: this.config.rag.k || 5,
|
|
336
|
+
threshold: this.config.rag.threshold || 0.7,
|
|
337
|
+
});
|
|
338
|
+
if (searchResults.results.length === 0) {
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
return searchResults.results
|
|
342
|
+
.map((result) => result.content)
|
|
343
|
+
.join('\n\n');
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
console.error('RAG search failed:', error);
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
// Getters
|
|
351
|
+
get name() {
|
|
352
|
+
return this.config.name;
|
|
353
|
+
}
|
|
354
|
+
get instructions() {
|
|
355
|
+
return this.config.instructions;
|
|
356
|
+
}
|
|
357
|
+
get model() {
|
|
358
|
+
return this.config.model;
|
|
359
|
+
}
|
|
360
|
+
get tools() {
|
|
361
|
+
return this.config.tools || {};
|
|
362
|
+
}
|
|
363
|
+
get isMultiAgent() {
|
|
364
|
+
return !!(this.config.agents && Object.keys(this.config.agents).length > 0);
|
|
365
|
+
}
|
|
366
|
+
// Obter tools utilizadas (para traces)
|
|
367
|
+
getUsedTools() {
|
|
368
|
+
if (!this.config.tools)
|
|
369
|
+
return [];
|
|
370
|
+
return Object.keys(this.config.tools);
|
|
371
|
+
}
|
|
372
|
+
// ============================================================================
|
|
373
|
+
// MEMORY MANAGEMENT
|
|
374
|
+
// ============================================================================
|
|
375
|
+
// Carregar memória da sessão
|
|
376
|
+
async loadMemory(sessionId) {
|
|
377
|
+
if (!this.apiClient || !this.config.memory) {
|
|
378
|
+
return '';
|
|
379
|
+
}
|
|
380
|
+
try {
|
|
381
|
+
const memoryData = await this.apiClient.memory.get(sessionId);
|
|
382
|
+
if (!memoryData.messages || memoryData.messages.length === 0) {
|
|
383
|
+
return '';
|
|
384
|
+
}
|
|
385
|
+
// Aplicar configurações de memória
|
|
386
|
+
let messages = memoryData.messages;
|
|
387
|
+
// Limitar por número de turnos
|
|
388
|
+
if (this.config.memory.maxTurns) {
|
|
389
|
+
messages = messages.slice(-this.config.memory.maxTurns * 2); // user + assistant = 2 messages per turn
|
|
390
|
+
}
|
|
391
|
+
// Limitar por tokens (aproximado)
|
|
392
|
+
if (this.config.memory.maxTokens) {
|
|
393
|
+
let totalTokens = 0;
|
|
394
|
+
const filteredMessages = [];
|
|
395
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
396
|
+
const messageTokens = Math.ceil(messages[i].content.length / 4);
|
|
397
|
+
if (totalTokens + messageTokens <= this.config.memory.maxTokens) {
|
|
398
|
+
filteredMessages.unshift(messages[i]);
|
|
399
|
+
totalTokens += messageTokens;
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
break;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
messages = filteredMessages;
|
|
406
|
+
}
|
|
407
|
+
// Formatar para prompt
|
|
408
|
+
const history = messages
|
|
409
|
+
.map((msg) => `${msg.role === 'user' ? 'Human' : 'Assistant'}: ${msg.content}`)
|
|
410
|
+
.join('\n');
|
|
411
|
+
return history ? `Previous conversation:\n${history}\n\n` : '';
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
console.error('Failed to load memory:', error);
|
|
415
|
+
return '';
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
// Salvar na memória
|
|
419
|
+
async saveToMemory(sessionId, userMessage, assistantMessage) {
|
|
420
|
+
if (!this.apiClient || !this.config.memory) {
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
try {
|
|
424
|
+
// Adicionar mensagem do usuário
|
|
425
|
+
await this.apiClient.memory.append(sessionId, {
|
|
426
|
+
role: 'user',
|
|
427
|
+
content: userMessage,
|
|
428
|
+
timestamp: new Date(),
|
|
429
|
+
});
|
|
430
|
+
// Adicionar resposta do assistant
|
|
431
|
+
await this.apiClient.memory.append(sessionId, {
|
|
432
|
+
role: 'assistant',
|
|
433
|
+
content: assistantMessage,
|
|
434
|
+
timestamp: new Date(),
|
|
435
|
+
metadata: {
|
|
436
|
+
model: this.config.model.model,
|
|
437
|
+
},
|
|
438
|
+
});
|
|
439
|
+
// Resumir se necessário
|
|
440
|
+
if (this.config.memory.summarizeAfter) {
|
|
441
|
+
const currentMemory = await this.apiClient.memory.get(sessionId);
|
|
442
|
+
if (currentMemory.messages.length >= this.config.memory.summarizeAfter) {
|
|
443
|
+
await this.apiClient.memory.summarize(sessionId);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
console.error('Failed to save to memory:', error);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
// Processar stream chunks (helper)
|
|
452
|
+
async *processStreamChunks(stream) {
|
|
453
|
+
for await (const chunk of stream) {
|
|
454
|
+
if (chunk.type === 'content') {
|
|
455
|
+
yield { text: chunk.content || '', done: false };
|
|
456
|
+
}
|
|
457
|
+
else if (chunk.type === 'done') {
|
|
458
|
+
yield { text: '', done: true };
|
|
459
|
+
break;
|
|
460
|
+
}
|
|
461
|
+
else if (chunk.type === 'error') {
|
|
462
|
+
throw new Error(chunk.error || 'Streaming error');
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
// Streaming com memória
|
|
467
|
+
async processStream(input, context) {
|
|
468
|
+
if (context?.apiClient) {
|
|
469
|
+
this.apiClient = context.apiClient;
|
|
470
|
+
}
|
|
471
|
+
// Carregar memória se configurado
|
|
472
|
+
let conversationHistory = '';
|
|
473
|
+
if (this.config.memory && input.sessionId) {
|
|
474
|
+
conversationHistory = await this.loadMemory(input.sessionId);
|
|
475
|
+
}
|
|
476
|
+
// RAG automático se configurado
|
|
477
|
+
let ragContext = '';
|
|
478
|
+
if (this.config.rag?.autoSearch) {
|
|
479
|
+
const ragData = await this.performRAG(input.message);
|
|
480
|
+
if (ragData) {
|
|
481
|
+
ragContext = `Context: ${ragData}\n\n`;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
// Construir prompt
|
|
485
|
+
let prompt = input.message;
|
|
486
|
+
if (conversationHistory || ragContext) {
|
|
487
|
+
prompt = `${ragContext}${conversationHistory}Question: ${input.message}`;
|
|
488
|
+
}
|
|
489
|
+
// Stream generation
|
|
490
|
+
if (!this.apiClient) {
|
|
491
|
+
throw new Error('Agent not initialized. API client not set.');
|
|
492
|
+
}
|
|
493
|
+
const stream = this.apiClient.chatStream({
|
|
494
|
+
projectId: '',
|
|
495
|
+
provider: this.config.model.provider,
|
|
496
|
+
model: this.config.model.model,
|
|
497
|
+
messages: [{ role: 'user', content: prompt }],
|
|
498
|
+
instructions: this.config.instructions,
|
|
499
|
+
tools: this.config.tools ? Object.values(this.config.tools) : undefined,
|
|
500
|
+
temperature: this.config.modelConfig?.temperature,
|
|
501
|
+
maxTokens: this.config.modelConfig?.maxTokens,
|
|
502
|
+
topP: this.config.modelConfig?.topP,
|
|
503
|
+
frequencyPenalty: this.config.modelConfig?.frequencyPenalty,
|
|
504
|
+
presencePenalty: this.config.modelConfig?.presencePenalty,
|
|
505
|
+
stop: this.config.modelConfig?.stop,
|
|
506
|
+
seed: this.config.modelConfig?.seed,
|
|
507
|
+
});
|
|
508
|
+
// Criar async generator
|
|
509
|
+
const self = this;
|
|
510
|
+
return (async function* () {
|
|
511
|
+
let fullResponse = '';
|
|
512
|
+
for await (const chunk of stream) {
|
|
513
|
+
if (chunk.type === 'content') {
|
|
514
|
+
fullResponse += chunk.content || '';
|
|
515
|
+
yield { text: chunk.content || '', done: false };
|
|
516
|
+
}
|
|
517
|
+
else if (chunk.type === 'done') {
|
|
518
|
+
// Salvar na memória quando streaming terminar
|
|
519
|
+
if (self.config.memory && input.sessionId) {
|
|
520
|
+
await self.saveToMemory(input.sessionId, input.message, fullResponse);
|
|
521
|
+
}
|
|
522
|
+
yield { text: '', done: true };
|
|
523
|
+
break;
|
|
524
|
+
}
|
|
525
|
+
else if (chunk.type === 'error') {
|
|
526
|
+
throw new Error(chunk.error || 'Streaming error');
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
})();
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
exports.Agent = Agent;
|
|
533
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { RunflowAPIClient, ChatRequest, ChatResponse, ChatStreamChunk, VectorSearchOptions, VectorSearchResponse, MemoryData, MemoryMessage, TraceRequest, TraceResponse } from '../types';
|
|
2
|
+
export declare class RunflowAPIClientImpl implements RunflowAPIClient {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private apiKey;
|
|
5
|
+
private tenantId;
|
|
6
|
+
private agentId;
|
|
7
|
+
constructor(config?: {
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
tenantId?: string;
|
|
11
|
+
agentId?: string;
|
|
12
|
+
});
|
|
13
|
+
_setContext(tenantId: string, agentId: string, apiKey?: string): void;
|
|
14
|
+
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
15
|
+
chatStream(request: ChatRequest): AsyncIterable<ChatStreamChunk>;
|
|
16
|
+
vectorSearch(query: string, options?: VectorSearchOptions): Promise<VectorSearchResponse>;
|
|
17
|
+
connector(connector: string, resource: string, action: string, data: any): Promise<any>;
|
|
18
|
+
memory: {
|
|
19
|
+
get: (sessionId: string) => Promise<MemoryData>;
|
|
20
|
+
set: (sessionId: string, data: MemoryData) => Promise<void>;
|
|
21
|
+
append: (sessionId: string, message: MemoryMessage) => Promise<void>;
|
|
22
|
+
clear: (sessionId: string) => Promise<void>;
|
|
23
|
+
summarize: (sessionId: string) => Promise<string>;
|
|
24
|
+
};
|
|
25
|
+
sendTraces(request: TraceRequest): Promise<TraceResponse>;
|
|
26
|
+
log(message: string, data?: any): void;
|
|
27
|
+
}
|
|
28
|
+
export declare function createRunflowAPIClient(config?: {
|
|
29
|
+
baseUrl?: string;
|
|
30
|
+
apiKey?: string;
|
|
31
|
+
tenantId?: string;
|
|
32
|
+
agentId?: string;
|
|
33
|
+
}): RunflowAPIClient;
|
|
34
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/core/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAsDlB,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAoBD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAU/D,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAmBhD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC;IAwDjE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4BzF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA2B7F,MAAM;yBACmB,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC;yBAiB5B,MAAM,QAAQ,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC;4BAiBrC,MAAM,WAAW,aAAa,KAAG,OAAO,CAAC,IAAI,CAAC;2BAqB/C,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;+BAelB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;MAgBrD;IAMI,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAuB/D,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAoBvC;AAMD,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,gBAAgB,CAEnB"}
|