@botonic/plugin-ai-agents 0.45.0 → 0.46.0-alpha-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/lib/cjs/agent-builder.d.ts +5 -0
- package/lib/cjs/agent-builder.js +7 -15
- package/lib/cjs/agent-builder.js.map +1 -1
- package/lib/cjs/bot-config-tools.d.ts +7 -0
- package/lib/cjs/bot-config-tools.js +19 -0
- package/lib/cjs/bot-config-tools.js.map +1 -0
- package/lib/cjs/constants.d.ts +2 -1
- package/lib/cjs/constants.js +3 -2
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/debug-logger.d.ts +2 -1
- package/lib/cjs/debug-logger.js +4 -14
- package/lib/cjs/debug-logger.js.map +1 -1
- package/lib/cjs/guardrails/input.d.ts +8 -1
- package/lib/cjs/guardrails/input.js +48 -2
- package/lib/cjs/guardrails/input.js.map +1 -1
- package/lib/cjs/index.d.ts +4 -1
- package/lib/cjs/index.js +34 -13
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/llm-config.d.ts +15 -0
- package/lib/cjs/llm-config.js +66 -0
- package/lib/cjs/llm-config.js.map +1 -0
- package/lib/cjs/runner.d.ts +5 -1
- package/lib/cjs/runner.js +54 -3
- package/lib/cjs/runner.js.map +1 -1
- package/lib/cjs/services/hubtype-api-client.d.ts +14 -0
- package/lib/{esm → cjs/services}/hubtype-api-client.js +19 -5
- package/lib/cjs/services/hubtype-api-client.js.map +1 -0
- package/lib/cjs/services/types.d.ts +85 -0
- package/lib/cjs/services/types.js +13 -0
- package/lib/cjs/services/types.js.map +1 -0
- package/lib/cjs/tools/retrieve-knowledge.js +1 -1
- package/lib/cjs/tools/retrieve-knowledge.js.map +1 -1
- package/lib/cjs/types.d.ts +7 -0
- package/lib/esm/agent-builder.d.ts +5 -0
- package/lib/esm/agent-builder.js +7 -15
- package/lib/esm/agent-builder.js.map +1 -1
- package/lib/esm/bot-config-tools.d.ts +7 -0
- package/lib/esm/bot-config-tools.js +19 -0
- package/lib/esm/bot-config-tools.js.map +1 -0
- package/lib/esm/constants.d.ts +2 -1
- package/lib/esm/constants.js +3 -2
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/debug-logger.d.ts +2 -1
- package/lib/esm/debug-logger.js +4 -14
- package/lib/esm/debug-logger.js.map +1 -1
- package/lib/esm/guardrails/input.d.ts +8 -1
- package/lib/esm/guardrails/input.js +48 -2
- package/lib/esm/guardrails/input.js.map +1 -1
- package/lib/esm/index.d.ts +4 -1
- package/lib/esm/index.js +34 -13
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/llm-config.d.ts +15 -0
- package/lib/esm/llm-config.js +66 -0
- package/lib/esm/llm-config.js.map +1 -0
- package/lib/esm/runner.d.ts +5 -1
- package/lib/esm/runner.js +54 -3
- package/lib/esm/runner.js.map +1 -1
- package/lib/esm/services/hubtype-api-client.d.ts +14 -0
- package/lib/{cjs → esm/services}/hubtype-api-client.js +19 -5
- package/lib/esm/services/hubtype-api-client.js.map +1 -0
- package/lib/esm/services/types.d.ts +85 -0
- package/lib/esm/services/types.js +13 -0
- package/lib/esm/services/types.js.map +1 -0
- package/lib/esm/tools/retrieve-knowledge.js +1 -1
- package/lib/esm/tools/retrieve-knowledge.js.map +1 -1
- package/lib/esm/types.d.ts +7 -0
- package/package.json +4 -3
- package/src/agent-builder.ts +22 -19
- package/src/bot-config-tools.ts +21 -0
- package/src/constants.ts +3 -2
- package/src/debug-logger.ts +7 -27
- package/src/guardrails/input.ts +82 -4
- package/src/index.ts +56 -16
- package/src/llm-config.ts +96 -0
- package/src/runner.ts +85 -4
- package/src/{hubtype-api-client.ts → services/hubtype-api-client.ts} +31 -83
- package/src/services/types.ts +106 -0
- package/src/tools/retrieve-knowledge.ts +1 -1
- package/src/types.ts +8 -0
- package/lib/cjs/hubtype-api-client.d.ts +0 -23
- package/lib/cjs/hubtype-api-client.js.map +0 -1
- package/lib/cjs/openai.d.ts +0 -1
- package/lib/cjs/openai.js +0 -39
- package/lib/cjs/openai.js.map +0 -1
- package/lib/esm/hubtype-api-client.d.ts +0 -23
- package/lib/esm/hubtype-api-client.js.map +0 -1
- package/lib/esm/openai.d.ts +0 -1
- package/lib/esm/openai.js +0 -39
- package/lib/esm/openai.js.map +0 -1
- package/src/openai.ts +0 -49
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createInputGuardrail = createInputGuardrail;
|
|
4
4
|
const agents_1 = require("@openai/agents");
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
|
-
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const hubtype_api_client_1 = require("../services/hubtype-api-client");
|
|
8
|
+
const types_1 = require("../services/types");
|
|
9
|
+
function createInputGuardrail(rules, llmConfig, trackingContext) {
|
|
7
10
|
const outputType = zod_1.z.object(Object.fromEntries(rules.map(rule => [rule.name, zod_1.z.boolean().describe(rule.description)])));
|
|
8
11
|
const agent = new agents_1.Agent({
|
|
9
12
|
name: 'InputGuardrail',
|
|
@@ -14,7 +17,18 @@ function createInputGuardrail(rules) {
|
|
|
14
17
|
name: 'InputGuardrail',
|
|
15
18
|
execute: async ({ input, context }) => {
|
|
16
19
|
const lastMessage = input[input.length - 1];
|
|
17
|
-
const
|
|
20
|
+
const modelProvider = llmConfig.modelProvider;
|
|
21
|
+
const modelSettings = llmConfig.modelSettings;
|
|
22
|
+
modelSettings.toolChoice = undefined;
|
|
23
|
+
const runner = new agents_1.Runner({
|
|
24
|
+
modelSettings,
|
|
25
|
+
modelProvider,
|
|
26
|
+
tracingDisabled: true,
|
|
27
|
+
});
|
|
28
|
+
const startTime = Date.now();
|
|
29
|
+
const result = await runner.run(agent, [lastMessage], { context });
|
|
30
|
+
const endTime = Date.now();
|
|
31
|
+
void sendGuardrailLlmRunTracking(result, trackingContext, llmConfig, startTime, endTime);
|
|
18
32
|
const finalOutput = result.finalOutput;
|
|
19
33
|
if (finalOutput === undefined) {
|
|
20
34
|
throw new Error('Guardrail agent failed to produce output');
|
|
@@ -28,4 +42,36 @@ function createInputGuardrail(rules) {
|
|
|
28
42
|
},
|
|
29
43
|
};
|
|
30
44
|
}
|
|
45
|
+
async function sendGuardrailLlmRunTracking(result, trackingContext, llmConfig, startTime, endTime) {
|
|
46
|
+
if (!constants_1.isProd) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const rawResponses = result.rawResponses ?? [];
|
|
50
|
+
if (rawResponses.length === 0) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const totalDuration = endTime - startTime;
|
|
54
|
+
const durationPerCall = Math.round(totalDuration / rawResponses.length);
|
|
55
|
+
const temperature = llmConfig.modelSettings.temperature ?? 0;
|
|
56
|
+
const apiVersion = constants_1.OPENAI_PROVIDER === 'azure' ? constants_1.AZURE_OPENAI_API_VERSION : '';
|
|
57
|
+
const llmRuns = rawResponses.map(response => ({
|
|
58
|
+
inference_id: trackingContext.inferenceId,
|
|
59
|
+
is_test: trackingContext.isTest,
|
|
60
|
+
product_name: types_1.TrackProductName.AI_AGENT,
|
|
61
|
+
deployment_name: llmConfig.modelName,
|
|
62
|
+
model_name: response.providerData?.['model'] ??
|
|
63
|
+
llmConfig.modelName,
|
|
64
|
+
feature: types_1.TrackFeature.AI_AGENT_GUARDRAIL,
|
|
65
|
+
api_version: apiVersion,
|
|
66
|
+
num_prompt_tokens: response.usage.inputTokens,
|
|
67
|
+
num_completion_tokens: response.usage.outputTokens,
|
|
68
|
+
duration_in_milliseconds: durationPerCall,
|
|
69
|
+
temperature,
|
|
70
|
+
error: null,
|
|
71
|
+
}));
|
|
72
|
+
const client = new hubtype_api_client_1.HubtypeApiClient(trackingContext.authToken);
|
|
73
|
+
await client.trackLlmRuns(trackingContext.botId, {
|
|
74
|
+
llm_runs: llmRuns,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
31
77
|
//# sourceMappingURL=input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/guardrails/input.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/guardrails/input.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -5,11 +5,14 @@ export default class BotonicPluginAiAgents<TPlugins extends ResolvedPlugins = Re
|
|
|
5
5
|
private readonly messageHistoryApiVersion;
|
|
6
6
|
private readonly memory;
|
|
7
7
|
private readonly logger;
|
|
8
|
+
private readonly timeout;
|
|
9
|
+
private readonly maxRetries;
|
|
8
10
|
toolDefinitions: CustomTool<TPlugins, TExtraData>[];
|
|
9
11
|
constructor(options?: PluginAiAgentOptions<TPlugins, TExtraData>);
|
|
10
12
|
pre(): void;
|
|
11
|
-
getInference(
|
|
13
|
+
getInference(botContext: BotContext<TPlugins, TExtraData>, aiAgentArgs: AiAgentArgs): Promise<InferenceResponse>;
|
|
12
14
|
private getMessages;
|
|
13
15
|
private buildTools;
|
|
14
16
|
}
|
|
17
|
+
export * from './bot-config-tools';
|
|
15
18
|
export * from './types';
|
package/lib/esm/index.js
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const agents_1 = require("@openai/agents");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
5
6
|
const agent_builder_1 = require("./agent-builder");
|
|
6
7
|
const constants_1 = require("./constants");
|
|
7
8
|
const debug_logger_1 = require("./debug-logger");
|
|
8
|
-
const
|
|
9
|
-
const openai_1 = require("./openai");
|
|
9
|
+
const llm_config_1 = require("./llm-config");
|
|
10
10
|
const runner_1 = require("./runner");
|
|
11
|
+
const hubtype_api_client_1 = require("./services/hubtype-api-client");
|
|
11
12
|
class BotonicPluginAiAgents {
|
|
12
13
|
constructor(options) {
|
|
13
14
|
this.toolDefinitions = [];
|
|
14
|
-
(0, openai_1.setUpOpenAI)(options?.maxRetries, options?.timeout);
|
|
15
15
|
if (options?.messageHistoryApiVersion === 'v1' && options?.memory) {
|
|
16
16
|
throw new Error('Cannot use memory when messageHistoryApiVersion is "v1". ' +
|
|
17
17
|
'Either set messageHistoryApiVersion to "v2" or remove memory.');
|
|
@@ -20,6 +20,8 @@ class BotonicPluginAiAgents {
|
|
|
20
20
|
this.toolDefinitions = options?.customTools || [];
|
|
21
21
|
this.messageHistoryApiVersion = options?.messageHistoryApiVersion ?? 'v2';
|
|
22
22
|
this.memory = options?.memory ?? {};
|
|
23
|
+
this.timeout = options?.timeout ?? constants_1.DEFAULT_TIMEOUT_16_SECONDS;
|
|
24
|
+
this.maxRetries = options?.maxRetries ?? constants_1.DEFAULT_MAX_RETRIES;
|
|
23
25
|
this.logger = (0, debug_logger_1.createDebugLogger)(options?.enableDebug ?? false);
|
|
24
26
|
this.logger.logInitialConfig({
|
|
25
27
|
messageHistoryApiVersion: this.messageHistoryApiVersion,
|
|
@@ -32,24 +34,40 @@ class BotonicPluginAiAgents {
|
|
|
32
34
|
pre() {
|
|
33
35
|
return;
|
|
34
36
|
}
|
|
35
|
-
async getInference(
|
|
37
|
+
async getInference(botContext, aiAgentArgs) {
|
|
36
38
|
try {
|
|
37
|
-
const authToken = constants_1.isProd
|
|
39
|
+
const authToken = constants_1.isProd
|
|
40
|
+
? botContext.session._access_token
|
|
41
|
+
: this.authToken;
|
|
38
42
|
if (!authToken) {
|
|
39
43
|
throw new Error('Auth token is required');
|
|
40
44
|
}
|
|
45
|
+
const inferenceId = (0, uuid_1.v7)();
|
|
46
|
+
// Create client for OpenAI/Azure OpenAI
|
|
47
|
+
const llmConfig = new llm_config_1.LLMConfig(this.maxRetries, this.timeout, aiAgentArgs.model, aiAgentArgs.verbosity);
|
|
48
|
+
// Build tools
|
|
41
49
|
const tools = this.buildTools(aiAgentArgs.activeTools?.map(tool => tool.name) || []);
|
|
50
|
+
// Build agent
|
|
42
51
|
const agent = new agent_builder_1.AIAgentBuilder({
|
|
43
52
|
name: aiAgentArgs.name,
|
|
44
53
|
instructions: aiAgentArgs.instructions,
|
|
45
54
|
tools: tools,
|
|
46
|
-
contactInfo:
|
|
55
|
+
contactInfo: botContext.session.user.contact_info || [],
|
|
47
56
|
inputGuardrailRules: aiAgentArgs.inputGuardrailRules || [],
|
|
48
57
|
sourceIds: aiAgentArgs.sourceIds || [],
|
|
49
|
-
campaignsContext:
|
|
58
|
+
campaignsContext: botContext.input.context?.campaigns_v2,
|
|
50
59
|
logger: this.logger,
|
|
60
|
+
llmConfig,
|
|
61
|
+
guardrailTrackingContext: {
|
|
62
|
+
botId: botContext.session.bot.id,
|
|
63
|
+
isTest: botContext.session.is_test_integration,
|
|
64
|
+
authToken,
|
|
65
|
+
inferenceId,
|
|
66
|
+
},
|
|
51
67
|
}).build();
|
|
52
|
-
|
|
68
|
+
// Get messages
|
|
69
|
+
const messages = await this.getMessages(botContext, authToken, constants_1.MAX_MEMORY_LENGTH);
|
|
70
|
+
// Build context
|
|
53
71
|
const context = {
|
|
54
72
|
authToken,
|
|
55
73
|
sourceIds: aiAgentArgs.sourceIds || [],
|
|
@@ -59,10 +77,12 @@ class BotonicPluginAiAgents {
|
|
|
59
77
|
chunksIds: [],
|
|
60
78
|
chunkTexts: [],
|
|
61
79
|
},
|
|
62
|
-
request,
|
|
80
|
+
request: botContext,
|
|
63
81
|
};
|
|
82
|
+
// Log agent debug info
|
|
64
83
|
this.logger.logAgentDebugInfo(aiAgentArgs, tools.map(t => t.name), messages);
|
|
65
|
-
|
|
84
|
+
// Run agent
|
|
85
|
+
const runner = new runner_1.AIAgentRunner(agent, llmConfig, inferenceId, this.logger);
|
|
66
86
|
return await runner.run(messages, context);
|
|
67
87
|
}
|
|
68
88
|
catch (error) {
|
|
@@ -78,16 +98,16 @@ class BotonicPluginAiAgents {
|
|
|
78
98
|
};
|
|
79
99
|
}
|
|
80
100
|
}
|
|
81
|
-
async getMessages(
|
|
101
|
+
async getMessages(botContext, authToken, memoryLength) {
|
|
82
102
|
const hubtypeClient = new hubtype_api_client_1.HubtypeApiClient(authToken);
|
|
83
103
|
if (!constants_1.isProd) {
|
|
84
104
|
return await hubtypeClient.getLocalMessages(memoryLength);
|
|
85
105
|
}
|
|
86
106
|
if (this.messageHistoryApiVersion === 'v1') {
|
|
87
|
-
return await hubtypeClient.getMessages(
|
|
107
|
+
return await hubtypeClient.getMessages(botContext, memoryLength);
|
|
88
108
|
}
|
|
89
109
|
// Default to V2
|
|
90
|
-
const result = await hubtypeClient.getMessagesV2(
|
|
110
|
+
const result = await hubtypeClient.getMessagesV2(botContext, {
|
|
91
111
|
maxMessages: this.memory.maxMessages ?? memoryLength,
|
|
92
112
|
includeToolCalls: this.memory.includeToolCalls ?? true,
|
|
93
113
|
maxFullToolResults: this.memory.maxFullToolResults ?? 1,
|
|
@@ -108,5 +128,6 @@ class BotonicPluginAiAgents {
|
|
|
108
128
|
}
|
|
109
129
|
}
|
|
110
130
|
exports.default = BotonicPluginAiAgents;
|
|
131
|
+
tslib_1.__exportStar(require("./bot-config-tools"), exports);
|
|
111
132
|
tslib_1.__exportStar(require("./types"), exports);
|
|
112
133
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAMA,2CAAqC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { VerbosityLevel } from '@botonic/core';
|
|
2
|
+
import { type ModelProvider, type ModelSettings } from '@openai/agents';
|
|
3
|
+
export declare class LLMConfig {
|
|
4
|
+
private readonly maxRetries;
|
|
5
|
+
private readonly timeout;
|
|
6
|
+
readonly modelName: string;
|
|
7
|
+
readonly modelSettings: ModelSettings;
|
|
8
|
+
readonly modelProvider: ModelProvider;
|
|
9
|
+
constructor(maxRetries: number, timeout: number, modelName: string, verbosity: VerbosityLevel);
|
|
10
|
+
private getModelProvider;
|
|
11
|
+
private getClient;
|
|
12
|
+
private getOpenAIClient;
|
|
13
|
+
private getAzureClient;
|
|
14
|
+
private getModelSettings;
|
|
15
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LLMConfig = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const agents_1 = require("@openai/agents");
|
|
6
|
+
const openai_1 = tslib_1.__importStar(require("openai"));
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
class LLMConfig {
|
|
9
|
+
constructor(maxRetries, timeout, modelName, verbosity) {
|
|
10
|
+
this.maxRetries = maxRetries;
|
|
11
|
+
this.timeout = timeout;
|
|
12
|
+
this.modelName = constants_1.OPENAI_PROVIDER === 'openai' ? constants_1.OPENAI_MODEL : modelName;
|
|
13
|
+
this.modelProvider = this.getModelProvider();
|
|
14
|
+
this.modelSettings = this.getModelSettings(modelName, verbosity);
|
|
15
|
+
}
|
|
16
|
+
getModelProvider() {
|
|
17
|
+
const client = this.getClient();
|
|
18
|
+
return new agents_1.OpenAIProvider({
|
|
19
|
+
openAIClient: client,
|
|
20
|
+
useResponses: false,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
getClient() {
|
|
24
|
+
if (constants_1.OPENAI_PROVIDER === 'openai') {
|
|
25
|
+
return this.getOpenAIClient();
|
|
26
|
+
}
|
|
27
|
+
return this.getAzureClient();
|
|
28
|
+
}
|
|
29
|
+
getOpenAIClient() {
|
|
30
|
+
return new openai_1.default({
|
|
31
|
+
apiKey: constants_1.OPENAI_API_KEY,
|
|
32
|
+
timeout: this.timeout,
|
|
33
|
+
maxRetries: this.maxRetries,
|
|
34
|
+
dangerouslyAllowBrowser: !constants_1.isProd,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getAzureClient() {
|
|
38
|
+
return new openai_1.AzureOpenAI({
|
|
39
|
+
apiKey: constants_1.AZURE_OPENAI_API_KEY,
|
|
40
|
+
apiVersion: constants_1.AZURE_OPENAI_API_VERSION,
|
|
41
|
+
deployment: this.modelName,
|
|
42
|
+
baseURL: constants_1.AZURE_OPENAI_API_BASE,
|
|
43
|
+
timeout: this.timeout,
|
|
44
|
+
maxRetries: this.maxRetries,
|
|
45
|
+
dangerouslyAllowBrowser: !constants_1.isProd,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
getModelSettings(model, verbosity) {
|
|
49
|
+
if (model.includes('gpt-5')) {
|
|
50
|
+
return {
|
|
51
|
+
reasoning: { effort: 'none' },
|
|
52
|
+
temperature: 1,
|
|
53
|
+
text: { verbosity },
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (model.includes('gpt-4')) {
|
|
57
|
+
return {
|
|
58
|
+
temperature: 0,
|
|
59
|
+
text: { verbosity: 'medium' },
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Unsupported model: ${model}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.LLMConfig = LLMConfig;
|
|
66
|
+
//# sourceMappingURL=llm-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":";;;;AACA,2CAIuB;AACvB,yDAA4C;AAC5C,2CAQoB;AAEpB,MAAa,SAAS;IAOpB,YACE,UAAkB,EAClB,OAAe,EACf,SAAiB,EACjB,SAAyB;QAEzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,2BAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAClE,CAAC;IAEO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,IAAI,uBAAc,CAAC;YACxB,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAA;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,2BAAe,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,gBAAM,CAAC;YAChB,MAAM,EAAE,0BAAc;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,uBAAuB,EAAE,CAAC,kBAAM;SACjC,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,oBAAW,CAAC;YACrB,MAAM,EAAE,gCAAoB;YAC5B,UAAU,EAAE,oCAAwB;YACpC,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,OAAO,EAAE,iCAAqB;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,uBAAuB,EAAE,CAAC,kBAAM;SACjC,CAAC,CAAA;IACJ,CAAC;IAEO,gBAAgB,CACtB,KAAa,EACb,SAAyB;QAEzB,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC7B,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aAC9B,CAAA;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;IAChD,CAAC;CACF;AA9ED,8BA8EC"}
|
package/lib/esm/runner.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { ResolvedPlugins } from '@botonic/core';
|
|
2
2
|
import type { DebugLogger } from './debug-logger';
|
|
3
|
+
import type { LLMConfig } from './llm-config';
|
|
3
4
|
import type { AgenticInputMessage, AIAgent, Context, RunResult } from './types';
|
|
4
5
|
export declare class AIAgentRunner<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
5
6
|
private agent;
|
|
7
|
+
private llmConfig;
|
|
8
|
+
private inferenceId;
|
|
6
9
|
private logger;
|
|
7
|
-
constructor(agent: AIAgent<TPlugins, TExtraData>, logger: DebugLogger);
|
|
10
|
+
constructor(agent: AIAgent<TPlugins, TExtraData>, openAiClient: LLMConfig, inferenceId: string, logger: DebugLogger);
|
|
8
11
|
run(messages: AgenticInputMessage[], context: Context<TPlugins, TExtraData>): Promise<RunResult>;
|
|
12
|
+
private sendLlmRunTracking;
|
|
9
13
|
private getToolsExecuted;
|
|
10
14
|
private getToolResultsByCallId;
|
|
11
15
|
private extractToolResult;
|
package/lib/esm/runner.js
CHANGED
|
@@ -2,24 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AIAgentRunner = void 0;
|
|
4
4
|
const agents_1 = require("@openai/agents");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const hubtype_api_client_1 = require("./services/hubtype-api-client");
|
|
7
|
+
const types_1 = require("./services/types");
|
|
5
8
|
const tools_1 = require("./tools");
|
|
6
9
|
class AIAgentRunner {
|
|
7
|
-
constructor(agent, logger) {
|
|
10
|
+
constructor(agent, openAiClient, inferenceId, logger) {
|
|
8
11
|
this.agent = agent;
|
|
12
|
+
this.llmConfig = openAiClient;
|
|
13
|
+
this.inferenceId = inferenceId;
|
|
9
14
|
this.logger = logger;
|
|
10
15
|
}
|
|
11
16
|
async run(messages, context) {
|
|
12
17
|
const startTime = Date.now();
|
|
13
|
-
this.logger.logRunnerStart();
|
|
18
|
+
this.logger.logRunnerStart(this.llmConfig.modelName, this.llmConfig.modelSettings);
|
|
14
19
|
try {
|
|
20
|
+
const modelProvider = this.llmConfig.modelProvider;
|
|
21
|
+
const modelSettings = this.llmConfig.modelSettings;
|
|
22
|
+
const hasRetrieveKnowledge = this.agent.tools.includes(tools_1.retrieveKnowledge);
|
|
23
|
+
if (hasRetrieveKnowledge && constants_1.OPENAI_PROVIDER === 'azure') {
|
|
24
|
+
modelSettings.toolChoice = tools_1.retrieveKnowledge.name;
|
|
25
|
+
}
|
|
15
26
|
const runner = new agents_1.Runner({
|
|
16
|
-
modelSettings
|
|
27
|
+
modelSettings,
|
|
28
|
+
modelProvider,
|
|
29
|
+
tracingDisabled: true,
|
|
17
30
|
});
|
|
18
31
|
// Type assertion to bypass strict type checking - the actual return type from runner.run()
|
|
19
32
|
// doesn't perfectly match our interface, but the properties we access are compatible
|
|
20
33
|
const result = (await runner.run(this.agent, messages, {
|
|
21
34
|
context,
|
|
22
35
|
}));
|
|
36
|
+
const endTime = Date.now();
|
|
37
|
+
void this.sendLlmRunTracking(result, context, startTime, endTime);
|
|
38
|
+
const { _context, ...restResult } = result.state;
|
|
39
|
+
console.log('Runner result:', restResult);
|
|
23
40
|
const outputMessages = result.finalOutput?.messages || [];
|
|
24
41
|
const hasExit = outputMessages.length === 0 ||
|
|
25
42
|
outputMessages.some(message => message.type === 'exit');
|
|
@@ -57,6 +74,40 @@ class AIAgentRunner {
|
|
|
57
74
|
throw error;
|
|
58
75
|
}
|
|
59
76
|
}
|
|
77
|
+
async sendLlmRunTracking(result, context, startTime, endTime) {
|
|
78
|
+
if (!constants_1.isProd) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const rawResponses = result.rawResponses ?? [];
|
|
82
|
+
if (rawResponses.length === 0) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const botId = context.request.session.bot.id;
|
|
86
|
+
const isTest = context.request.session.is_test_integration;
|
|
87
|
+
const totalDuration = endTime - startTime;
|
|
88
|
+
const durationPerCall = Math.round(totalDuration / rawResponses.length);
|
|
89
|
+
const temperature = this.llmConfig.modelSettings.temperature ?? 0;
|
|
90
|
+
const apiVersion = constants_1.OPENAI_PROVIDER === 'azure' ? constants_1.AZURE_OPENAI_API_VERSION : '';
|
|
91
|
+
const llmRuns = rawResponses.map(response => ({
|
|
92
|
+
inference_id: this.inferenceId,
|
|
93
|
+
is_test: isTest,
|
|
94
|
+
product_name: types_1.TrackProductName.AI_AGENT,
|
|
95
|
+
deployment_name: this.llmConfig.modelName,
|
|
96
|
+
model_name: response.providerData?.['model'] ??
|
|
97
|
+
this.llmConfig.modelName,
|
|
98
|
+
feature: types_1.TrackFeature.AI_AGENT_RUN,
|
|
99
|
+
api_version: apiVersion,
|
|
100
|
+
num_prompt_tokens: response.usage.inputTokens,
|
|
101
|
+
num_completion_tokens: response.usage.outputTokens,
|
|
102
|
+
duration_in_milliseconds: durationPerCall,
|
|
103
|
+
temperature,
|
|
104
|
+
error: null,
|
|
105
|
+
}));
|
|
106
|
+
const client = new hubtype_api_client_1.HubtypeApiClient(context.authToken);
|
|
107
|
+
await client.trackLlmRuns(botId, {
|
|
108
|
+
llm_runs: llmRuns,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
60
111
|
getToolsExecuted(result, context) {
|
|
61
112
|
const toolResultsByCallId = this.getToolResultsByCallId(result.newItems);
|
|
62
113
|
return (result.newItems
|
package/lib/esm/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";;;AAKA,2CAKuB;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BotContext } from '@botonic/core';
|
|
2
|
+
import type { AgenticInputMessage, Chunk } from '../types';
|
|
3
|
+
import type { GetMessagesV2Options, GetMessagesV2Result, TrackLlmRunsData } from './types';
|
|
4
|
+
export declare class HubtypeApiClient {
|
|
5
|
+
private readonly authToken;
|
|
6
|
+
constructor(authToken: string);
|
|
7
|
+
retrieveSimilarChunks(query: string, sourceIds: string[]): Promise<Chunk[]>;
|
|
8
|
+
getLocalMessages(maxMemoryLength: number): Promise<AgenticInputMessage[]>;
|
|
9
|
+
getMessages(botContext: BotContext, maxMemoryLength: number): Promise<AgenticInputMessage[]>;
|
|
10
|
+
getMessagesV2(botContext: BotContext, options?: GetMessagesV2Options): Promise<GetMessagesV2Result>;
|
|
11
|
+
private formatMessageV2;
|
|
12
|
+
trackLlmRuns(botId: string, data: TrackLlmRunsData): Promise<void>;
|
|
13
|
+
private formatMessage;
|
|
14
|
+
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HubtypeApiClient = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
-
const constants_1 = require("
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
7
|
class HubtypeApiClient {
|
|
8
8
|
constructor(authToken) {
|
|
9
9
|
this.authToken = authToken;
|
|
@@ -41,14 +41,14 @@ class HubtypeApiClient {
|
|
|
41
41
|
.map(message => this.formatMessage(message));
|
|
42
42
|
return filteredMessages.slice(-maxMemoryLength);
|
|
43
43
|
}
|
|
44
|
-
async getMessages(
|
|
44
|
+
async getMessages(botContext, maxMemoryLength) {
|
|
45
45
|
const url = `${constants_1.HUBTYPE_API_URL}/external/v1/ai/agent/message_history/`;
|
|
46
46
|
const headers = {
|
|
47
47
|
'Content-Type': 'application/json',
|
|
48
48
|
Authorization: `Bearer ${this.authToken}`,
|
|
49
49
|
};
|
|
50
50
|
const params = {
|
|
51
|
-
last_message_id:
|
|
51
|
+
last_message_id: botContext.input.message_id,
|
|
52
52
|
num_messages: maxMemoryLength,
|
|
53
53
|
};
|
|
54
54
|
try {
|
|
@@ -64,14 +64,14 @@ class HubtypeApiClient {
|
|
|
64
64
|
throw new Error('Failed to get messages from Hubtype');
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
async getMessagesV2(
|
|
67
|
+
async getMessagesV2(botContext, options = {}) {
|
|
68
68
|
const url = `${constants_1.HUBTYPE_API_URL}/external/v2/ai/agent/message_history/`;
|
|
69
69
|
const headers = {
|
|
70
70
|
'Content-Type': 'application/json',
|
|
71
71
|
Authorization: `Bearer ${this.authToken}`,
|
|
72
72
|
};
|
|
73
73
|
const params = {
|
|
74
|
-
last_message_id:
|
|
74
|
+
last_message_id: botContext.input.message_id,
|
|
75
75
|
...(options.maxMessages !== undefined && {
|
|
76
76
|
max_messages: options.maxMessages,
|
|
77
77
|
}),
|
|
@@ -164,6 +164,20 @@ class HubtypeApiClient {
|
|
|
164
164
|
throw new Error(`Invalid message role: ${message.role}`);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
+
async trackLlmRuns(botId, data) {
|
|
168
|
+
// Not stop the bot execution if the tracking fails, just log the error
|
|
169
|
+
try {
|
|
170
|
+
const url = `${constants_1.HUBTYPE_API_URL}/external/v2/conversational_apps/${botId}/track_llm_runs/`;
|
|
171
|
+
const headers = {
|
|
172
|
+
'Content-Type': 'application/json',
|
|
173
|
+
Authorization: `Bearer ${this.authToken}`,
|
|
174
|
+
};
|
|
175
|
+
await axios_1.default.post(url, data, { headers });
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
console.error('Failed to track LLM runs:', error);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
167
181
|
formatMessage(message) {
|
|
168
182
|
if (message.role === 'user') {
|
|
169
183
|
return {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubtype-api-client.js","sourceRoot":"","sources":["../../../src/services/hubtype-api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { AgenticInputMessage } from '../types';
|
|
2
|
+
export declare enum TrackProductName {
|
|
3
|
+
AI_AGENT = "ai_agent"
|
|
4
|
+
}
|
|
5
|
+
export declare enum TrackFeature {
|
|
6
|
+
AI_AGENT_RUN = "ai_agent_run",
|
|
7
|
+
AI_AGENT_GUARDRAIL = "ai_agent_guardrail"
|
|
8
|
+
}
|
|
9
|
+
export interface LlmRunData {
|
|
10
|
+
inference_id: string;
|
|
11
|
+
is_test: boolean;
|
|
12
|
+
product_name: string;
|
|
13
|
+
deployment_name: string;
|
|
14
|
+
model_name: string;
|
|
15
|
+
feature: string;
|
|
16
|
+
api_version: string;
|
|
17
|
+
num_prompt_tokens: number;
|
|
18
|
+
num_completion_tokens: number;
|
|
19
|
+
duration_in_milliseconds: number;
|
|
20
|
+
temperature: number;
|
|
21
|
+
error: string | null;
|
|
22
|
+
}
|
|
23
|
+
export interface TrackLlmRunsData {
|
|
24
|
+
llm_runs: LlmRunData[];
|
|
25
|
+
}
|
|
26
|
+
interface HubtypeAssistantMessage {
|
|
27
|
+
role: 'assistant';
|
|
28
|
+
content: string;
|
|
29
|
+
}
|
|
30
|
+
interface HubtypeUserMessage {
|
|
31
|
+
role: 'user';
|
|
32
|
+
content: string;
|
|
33
|
+
}
|
|
34
|
+
export type HubtypeMessage = HubtypeAssistantMessage | HubtypeUserMessage;
|
|
35
|
+
interface HubtypeToolCall {
|
|
36
|
+
id: string;
|
|
37
|
+
type: 'function';
|
|
38
|
+
function: {
|
|
39
|
+
name: string;
|
|
40
|
+
arguments: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
interface HubtypeUserMessageV2 {
|
|
44
|
+
role: 'user';
|
|
45
|
+
content: string | null;
|
|
46
|
+
}
|
|
47
|
+
export interface HubtypeAssistantMessageV2 {
|
|
48
|
+
role: 'assistant';
|
|
49
|
+
content: string | null;
|
|
50
|
+
tool_calls?: HubtypeToolCall[] | null;
|
|
51
|
+
}
|
|
52
|
+
export interface HubtypeToolMessageV2 {
|
|
53
|
+
role: 'tool';
|
|
54
|
+
content: string | null;
|
|
55
|
+
tool_call_id: string;
|
|
56
|
+
}
|
|
57
|
+
interface HubtypeSystemMessageV2 {
|
|
58
|
+
role: 'system';
|
|
59
|
+
content: string | null;
|
|
60
|
+
}
|
|
61
|
+
export type HubtypeMessageV2 = HubtypeUserMessageV2 | HubtypeAssistantMessageV2 | HubtypeToolMessageV2 | HubtypeSystemMessageV2;
|
|
62
|
+
export interface MessageHistoryResponseV2 {
|
|
63
|
+
messages: HubtypeMessageV2[];
|
|
64
|
+
conversation_id: string | null;
|
|
65
|
+
truncated: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface GetMessagesV2Options {
|
|
68
|
+
maxMessages?: number;
|
|
69
|
+
includeToolCalls?: boolean;
|
|
70
|
+
maxFullToolResults?: number;
|
|
71
|
+
debugMode?: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface GetMessagesV2Result {
|
|
74
|
+
messages: AgenticInputMessage[];
|
|
75
|
+
conversationId: string | null;
|
|
76
|
+
truncated: boolean;
|
|
77
|
+
}
|
|
78
|
+
export interface MessageHistoryV2Params {
|
|
79
|
+
last_message_id: string;
|
|
80
|
+
max_messages?: number;
|
|
81
|
+
include_tool_calls?: boolean;
|
|
82
|
+
max_full_tool_results?: number;
|
|
83
|
+
debug_mode?: boolean;
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TrackFeature = exports.TrackProductName = void 0;
|
|
4
|
+
var TrackProductName;
|
|
5
|
+
(function (TrackProductName) {
|
|
6
|
+
TrackProductName["AI_AGENT"] = "ai_agent";
|
|
7
|
+
})(TrackProductName || (exports.TrackProductName = TrackProductName = {}));
|
|
8
|
+
var TrackFeature;
|
|
9
|
+
(function (TrackFeature) {
|
|
10
|
+
TrackFeature["AI_AGENT_RUN"] = "ai_agent_run";
|
|
11
|
+
TrackFeature["AI_AGENT_GUARDRAIL"] = "ai_agent_guardrail";
|
|
12
|
+
})(TrackFeature || (exports.TrackFeature = TrackFeature = {}));
|
|
13
|
+
//# sourceMappingURL=types.js.map
|