@botonic/plugin-ai-agents 0.40.0 → 0.40.1
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 +4 -3
- package/lib/cjs/agent-builder.js.map +1 -1
- package/lib/cjs/index.d.ts +4 -4
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/runner.d.ts +3 -2
- package/lib/cjs/runner.js.map +1 -1
- package/lib/cjs/tools/retrieve-knowledge.d.ts +1 -1
- package/lib/cjs/types.d.ts +10 -9
- package/lib/esm/agent-builder.d.ts +4 -3
- package/lib/esm/agent-builder.js.map +1 -1
- package/lib/esm/index.d.ts +4 -4
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/runner.d.ts +3 -2
- package/lib/esm/runner.js.map +1 -1
- package/lib/esm/tools/retrieve-knowledge.d.ts +1 -1
- package/lib/esm/types.d.ts +10 -9
- package/package.json +4 -4
- package/src/agent-builder.ts +12 -5
- package/src/index.ts +11 -6
- package/src/runner.ts +7 -3
- package/src/types.ts +32 -8
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { ResolvedPlugins } from '@botonic/core';
|
|
1
2
|
import { AIAgent, ContactInfo, GuardrailRule, Tool } from './types';
|
|
2
|
-
export declare class AIAgentBuilder {
|
|
3
|
+
export declare class AIAgentBuilder<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
3
4
|
private name;
|
|
4
5
|
private instructions;
|
|
5
6
|
private tools;
|
|
6
7
|
private inputGuardrails;
|
|
7
|
-
constructor(name: string, instructions: string, tools: Tool[], contactInfo: ContactInfo, inputGuardrailRules: GuardrailRule[], sourceIds: string[]);
|
|
8
|
-
build(): AIAgent
|
|
8
|
+
constructor(name: string, instructions: string, tools: Tool<TPlugins, TExtraData>[], contactInfo: ContactInfo, inputGuardrailRules: GuardrailRule[], sourceIds: string[]);
|
|
9
|
+
build(): AIAgent<TPlugins, TExtraData>;
|
|
9
10
|
private addExtraInstructions;
|
|
10
11
|
private getContactInfoInstructions;
|
|
11
12
|
private getMetadataInstructions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AiAgentArgs, BotContext, Plugin } from '@botonic/core';
|
|
1
|
+
import { AiAgentArgs, BotContext, Plugin, ResolvedPlugins } from '@botonic/core';
|
|
2
2
|
import { CustomTool, InferenceResponse, PluginAiAgentOptions } from './types';
|
|
3
|
-
export default class BotonicPluginAiAgents implements Plugin {
|
|
3
|
+
export default class BotonicPluginAiAgents<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> implements Plugin {
|
|
4
4
|
private readonly authToken?;
|
|
5
|
-
toolDefinitions: CustomTool[];
|
|
6
|
-
constructor(options?: PluginAiAgentOptions);
|
|
5
|
+
toolDefinitions: CustomTool<TPlugins, TExtraData>[];
|
|
6
|
+
constructor(options?: PluginAiAgentOptions<TPlugins, TExtraData>);
|
|
7
7
|
pre(): void;
|
|
8
8
|
getInference(request: BotContext, aiAgentArgs: AiAgentArgs): Promise<InferenceResponse>;
|
|
9
9
|
private getMessages;
|
package/lib/cjs/index.js
CHANGED
|
@@ -30,6 +30,7 @@ class BotonicPluginAiAgents {
|
|
|
30
30
|
const messages = yield this.getMessages(request, authToken, constants_1.MAX_MEMORY_LENGTH);
|
|
31
31
|
const context = {
|
|
32
32
|
authToken,
|
|
33
|
+
request,
|
|
33
34
|
sources: aiAgentArgs.sourceIds || [],
|
|
34
35
|
};
|
|
35
36
|
const runner = new runner_1.AIAgentRunner(agent);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,2CAAqC;AAErC,mDAAgD;AAChD,2CAAuD;AACvD,6DAAuD;AACvD,qCAAsC;AACtC,qCAAwC;AAUxC,MAAqB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/runner.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ResolvedPlugins } from '@botonic/core';
|
|
1
2
|
import { AgenticInputMessage, AIAgent, Context, RunResult } from './types';
|
|
2
|
-
export declare class AIAgentRunner {
|
|
3
|
+
export declare class AIAgentRunner<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
3
4
|
private agent;
|
|
4
|
-
constructor(agent: AIAgent);
|
|
5
|
+
constructor(agent: AIAgent<TPlugins, TExtraData>);
|
|
5
6
|
run(messages: AgenticInputMessage[], context: Context, maxRetries?: number): Promise<RunResult>;
|
|
6
7
|
private runWithRetry;
|
|
7
8
|
private getExecutedNameTools;
|
package/lib/cjs/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";;;;AACA,2CAIuB;AAUvB,MAAa,aAAa;IAMxB,YAAY,KAAoC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEK,GAAG,CACP,QAA+B,EAC/B,OAAgB,EAChB,aAAqB,CAAC;;YAEtB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;KAAA;IAEa,YAAY,CACxB,aAAoC,EACpC,OAAgB,EAChB,UAAkB,EAClB,OAAe;;;YAEf,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;oBACxB,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;iBAClC,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEvE,MAAM,cAAc,GAAG,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,QAAQ,KAAI,EAAE,CAAA;gBACzD,MAAM,OAAO,GACX,cAAc,CAAC,MAAM,KAAK,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;gBACzD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;gBAEvD,OAAO;oBACL,QAAQ,EAAE,OAAO;wBACf,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAE,cAAc,CAAC,MAAM,CACpB,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CACR;oBAChC,aAAa;oBACb,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,aAAa,CAAC,MAAM;oBAClC,KAAK,EAAE,KAAK;oBACZ,wBAAwB,EAAE,EAAE;oBAC5B,yBAAyB,EAAE,EAAE;iBAC9B,CAAA;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,KAAK,YAAY,wCAA+B,EAAE;oBACpD,OAAO;wBACL,QAAQ,EAAE,EAAE;wBACZ,YAAY,EAAE,CAAC;wBACf,aAAa,EAAE,EAAE;wBACjB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK;wBACZ,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;wBACxD,yBAAyB,EAAE,EAAE;qBAC9B,CAAA;iBACF;gBACD,IAAI,OAAO,GAAG,UAAU,EAAE;oBACxB,MAAM,KAAK,CAAA;iBACZ;gBACD,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;aAC1E;;KACF;IAEO,oBAAoB,CAAC,MAAM;;QACjC,OAAO,CACL,CAAA,MAAA,MAAM,CAAC,QAAQ,0CACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,wBAAe,EAC/C,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;gBACzC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;aACzB;YACD,OAAO,EAAE,CAAA;QACX,CAAC,EACA,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,KAAI,EAAE,CACvD,CAAA;IACH,CAAC;CACF;AAjFD,sCAiFC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Context } from '../types';
|
|
2
|
-
export declare const retrieveKnowledge: import("@openai/agents").FunctionTool<Context, any, any>;
|
|
2
|
+
export declare const retrieveKnowledge: import("@openai/agents").FunctionTool<Context<import("@botonic/core").ResolvedPlugins, any>, any, any>;
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult } from '@botonic/core';
|
|
1
|
+
import { AgenticOutputMessage, AiAgentArgs, BotContext, GuardrailRule, InferenceResponse, ResolvedPlugins, RunResult } from '@botonic/core';
|
|
2
2
|
import { Agent, AgentInputItem, RunContext as OpenAIRunContext, Tool as OpenAITool } from '@openai/agents';
|
|
3
3
|
import { ZodSchema } from 'zod';
|
|
4
4
|
import { OutputSchema } from './structured-output';
|
|
5
|
-
export interface Context {
|
|
5
|
+
export interface Context<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
6
6
|
authToken: string;
|
|
7
|
+
request: BotContext<TPlugins, TExtraData>;
|
|
7
8
|
sources: string[];
|
|
8
9
|
}
|
|
9
|
-
export type RunContext = OpenAIRunContext<Context
|
|
10
|
-
export interface CustomTool {
|
|
10
|
+
export type RunContext<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = OpenAIRunContext<Context<TPlugins, TExtraData>>;
|
|
11
|
+
export interface CustomTool<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
11
12
|
name: string;
|
|
12
13
|
description: string;
|
|
13
14
|
schema: ZodSchema;
|
|
14
|
-
func: (input?: any, runContext?: RunContext) => Promise<any>;
|
|
15
|
+
func: (input?: any, runContext?: RunContext<TPlugins, TExtraData>) => Promise<any>;
|
|
15
16
|
}
|
|
16
17
|
export type ContactInfo = Record<string, string>;
|
|
17
|
-
export type Tool = OpenAITool<Context
|
|
18
|
-
export type AIAgent = Agent<Context, typeof OutputSchema>;
|
|
19
|
-
export interface PluginAiAgentOptions {
|
|
18
|
+
export type Tool<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = OpenAITool<Context<TPlugins, TExtraData>>;
|
|
19
|
+
export type AIAgent<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = Agent<Context<TPlugins, TExtraData>, typeof OutputSchema>;
|
|
20
|
+
export interface PluginAiAgentOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
20
21
|
authToken?: string;
|
|
21
|
-
customTools?: CustomTool[];
|
|
22
|
+
customTools?: CustomTool<TPlugins, TExtraData>[];
|
|
22
23
|
}
|
|
23
24
|
export type AgenticInputMessage = AgentInputItem;
|
|
24
25
|
export { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult, };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { ResolvedPlugins } from '@botonic/core';
|
|
1
2
|
import { AIAgent, ContactInfo, GuardrailRule, Tool } from './types';
|
|
2
|
-
export declare class AIAgentBuilder {
|
|
3
|
+
export declare class AIAgentBuilder<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
3
4
|
private name;
|
|
4
5
|
private instructions;
|
|
5
6
|
private tools;
|
|
6
7
|
private inputGuardrails;
|
|
7
|
-
constructor(name: string, instructions: string, tools: Tool[], contactInfo: ContactInfo, inputGuardrailRules: GuardrailRule[], sourceIds: string[]);
|
|
8
|
-
build(): AIAgent
|
|
8
|
+
constructor(name: string, instructions: string, tools: Tool<TPlugins, TExtraData>[], contactInfo: ContactInfo, inputGuardrailRules: GuardrailRule[], sourceIds: string[]);
|
|
9
|
+
build(): AIAgent<TPlugins, TExtraData>;
|
|
9
10
|
private addExtraInstructions;
|
|
10
11
|
private getContactInfoInstructions;
|
|
11
12
|
private getMetadataInstructions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/agent-builder.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AiAgentArgs, BotContext, Plugin } from '@botonic/core';
|
|
1
|
+
import { AiAgentArgs, BotContext, Plugin, ResolvedPlugins } from '@botonic/core';
|
|
2
2
|
import { CustomTool, InferenceResponse, PluginAiAgentOptions } from './types';
|
|
3
|
-
export default class BotonicPluginAiAgents implements Plugin {
|
|
3
|
+
export default class BotonicPluginAiAgents<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> implements Plugin {
|
|
4
4
|
private readonly authToken?;
|
|
5
|
-
toolDefinitions: CustomTool[];
|
|
6
|
-
constructor(options?: PluginAiAgentOptions);
|
|
5
|
+
toolDefinitions: CustomTool<TPlugins, TExtraData>[];
|
|
6
|
+
constructor(options?: PluginAiAgentOptions<TPlugins, TExtraData>);
|
|
7
7
|
pre(): void;
|
|
8
8
|
getInference(request: BotContext, aiAgentArgs: AiAgentArgs): Promise<InferenceResponse>;
|
|
9
9
|
private getMessages;
|
package/lib/esm/index.js
CHANGED
|
@@ -28,6 +28,7 @@ export default class BotonicPluginAiAgents {
|
|
|
28
28
|
const messages = yield this.getMessages(request, authToken, MAX_MEMORY_LENGTH);
|
|
29
29
|
const context = {
|
|
30
30
|
authToken,
|
|
31
|
+
request,
|
|
31
32
|
sources: aiAgentArgs.sourceIds || [],
|
|
32
33
|
};
|
|
33
34
|
const runner = new AIAgentRunner(agent);
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAUxC,MAAM,CAAC,OAAO,OAAO,qBAAqB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/runner.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ResolvedPlugins } from '@botonic/core';
|
|
1
2
|
import { AgenticInputMessage, AIAgent, Context, RunResult } from './types';
|
|
2
|
-
export declare class AIAgentRunner {
|
|
3
|
+
export declare class AIAgentRunner<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
3
4
|
private agent;
|
|
4
|
-
constructor(agent: AIAgent);
|
|
5
|
+
constructor(agent: AIAgent<TPlugins, TExtraData>);
|
|
5
6
|
run(messages: AgenticInputMessage[], context: Context, maxRetries?: number): Promise<RunResult>;
|
|
6
7
|
private runWithRetry;
|
|
7
8
|
private getExecutedNameTools;
|
package/lib/esm/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":";AACA,OAAO,EACL,+BAA+B,EAC/B,MAAM,EACN,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAUvB,MAAM,OAAO,aAAa;IAMxB,YAAY,KAAoC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEK,GAAG,CACP,QAA+B,EAC/B,OAAgB,EAChB,aAAqB,CAAC;;YAEtB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;KAAA;IAEa,YAAY,CACxB,aAAoC,EACpC,OAAgB,EAChB,UAAkB,EAClB,OAAe;;;YAEf,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;oBACxB,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;iBAClC,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEvE,MAAM,cAAc,GAAG,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,QAAQ,KAAI,EAAE,CAAA;gBACzD,MAAM,OAAO,GACX,cAAc,CAAC,MAAM,KAAK,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;gBACzD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;gBAEvD,OAAO;oBACL,QAAQ,EAAE,OAAO;wBACf,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAE,cAAc,CAAC,MAAM,CACpB,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CACR;oBAChC,aAAa;oBACb,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,aAAa,CAAC,MAAM;oBAClC,KAAK,EAAE,KAAK;oBACZ,wBAAwB,EAAE,EAAE;oBAC5B,yBAAyB,EAAE,EAAE;iBAC9B,CAAA;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,KAAK,YAAY,+BAA+B,EAAE;oBACpD,OAAO;wBACL,QAAQ,EAAE,EAAE;wBACZ,YAAY,EAAE,CAAC;wBACf,aAAa,EAAE,EAAE;wBACjB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK;wBACZ,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;wBACxD,yBAAyB,EAAE,EAAE;qBAC9B,CAAA;iBACF;gBACD,IAAI,OAAO,GAAG,UAAU,EAAE;oBACxB,MAAM,KAAK,CAAA;iBACZ;gBACD,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;aAC1E;;KACF;IAEO,oBAAoB,CAAC,MAAM;;QACjC,OAAO,CACL,CAAA,MAAA,MAAM,CAAC,QAAQ,0CACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,eAAe,EAC/C,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;gBACzC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;aACzB;YACD,OAAO,EAAE,CAAA;QACX,CAAC,EACA,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,KAAI,EAAE,CACvD,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Context } from '../types';
|
|
2
|
-
export declare const retrieveKnowledge: import("@openai/agents").FunctionTool<Context, any, any>;
|
|
2
|
+
export declare const retrieveKnowledge: import("@openai/agents").FunctionTool<Context<import("@botonic/core").ResolvedPlugins, any>, any, any>;
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult } from '@botonic/core';
|
|
1
|
+
import { AgenticOutputMessage, AiAgentArgs, BotContext, GuardrailRule, InferenceResponse, ResolvedPlugins, RunResult } from '@botonic/core';
|
|
2
2
|
import { Agent, AgentInputItem, RunContext as OpenAIRunContext, Tool as OpenAITool } from '@openai/agents';
|
|
3
3
|
import { ZodSchema } from 'zod';
|
|
4
4
|
import { OutputSchema } from './structured-output';
|
|
5
|
-
export interface Context {
|
|
5
|
+
export interface Context<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
6
6
|
authToken: string;
|
|
7
|
+
request: BotContext<TPlugins, TExtraData>;
|
|
7
8
|
sources: string[];
|
|
8
9
|
}
|
|
9
|
-
export type RunContext = OpenAIRunContext<Context
|
|
10
|
-
export interface CustomTool {
|
|
10
|
+
export type RunContext<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = OpenAIRunContext<Context<TPlugins, TExtraData>>;
|
|
11
|
+
export interface CustomTool<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
11
12
|
name: string;
|
|
12
13
|
description: string;
|
|
13
14
|
schema: ZodSchema;
|
|
14
|
-
func: (input?: any, runContext?: RunContext) => Promise<any>;
|
|
15
|
+
func: (input?: any, runContext?: RunContext<TPlugins, TExtraData>) => Promise<any>;
|
|
15
16
|
}
|
|
16
17
|
export type ContactInfo = Record<string, string>;
|
|
17
|
-
export type Tool = OpenAITool<Context
|
|
18
|
-
export type AIAgent = Agent<Context, typeof OutputSchema>;
|
|
19
|
-
export interface PluginAiAgentOptions {
|
|
18
|
+
export type Tool<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = OpenAITool<Context<TPlugins, TExtraData>>;
|
|
19
|
+
export type AIAgent<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> = Agent<Context<TPlugins, TExtraData>, typeof OutputSchema>;
|
|
20
|
+
export interface PluginAiAgentOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> {
|
|
20
21
|
authToken?: string;
|
|
21
|
-
customTools?: CustomTool[];
|
|
22
|
+
customTools?: CustomTool<TPlugins, TExtraData>[];
|
|
22
23
|
}
|
|
23
24
|
export type AgenticInputMessage = AgentInputItem;
|
|
24
25
|
export { AgenticOutputMessage, AiAgentArgs, GuardrailRule, InferenceResponse, RunResult, };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-ai-agents",
|
|
3
|
-
"version": "0.40.
|
|
3
|
+
"version": "0.40.1",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use AI Agents to generate your contents",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@botonic/core": "^0.40.0",
|
|
17
17
|
"@openai/agents": "^0.0.10",
|
|
18
|
-
"axios": "^1.
|
|
18
|
+
"axios": "^1.12.2",
|
|
19
19
|
"openai": "^5.8.3",
|
|
20
20
|
"uuid": "^10.0.0",
|
|
21
21
|
"zod": "3.25.67"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"README.md"
|
|
30
30
|
],
|
|
31
31
|
"engines": {
|
|
32
|
-
"node": ">=22.
|
|
32
|
+
"node": ">=22.19.0",
|
|
33
33
|
"npm": ">=10.0.0"
|
|
34
34
|
},
|
|
35
35
|
"repository": {
|
|
@@ -45,4 +45,4 @@
|
|
|
45
45
|
"javascript"
|
|
46
46
|
],
|
|
47
47
|
"author": ""
|
|
48
|
-
}
|
|
48
|
+
}
|
package/src/agent-builder.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ResolvedPlugins } from '@botonic/core'
|
|
1
2
|
import { Agent, InputGuardrail, ModelSettings } from '@openai/agents'
|
|
2
3
|
|
|
3
4
|
import { createInputGuardrail } from './guardrails'
|
|
@@ -5,16 +6,19 @@ import { OutputSchema } from './structured-output'
|
|
|
5
6
|
import { mandatoryTools, retrieveKnowledge } from './tools'
|
|
6
7
|
import { AIAgent, ContactInfo, GuardrailRule, Tool } from './types'
|
|
7
8
|
|
|
8
|
-
export class AIAgentBuilder
|
|
9
|
+
export class AIAgentBuilder<
|
|
10
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
11
|
+
TExtraData = any,
|
|
12
|
+
> {
|
|
9
13
|
private name: string
|
|
10
14
|
private instructions: string
|
|
11
|
-
private tools: Tool[]
|
|
15
|
+
private tools: Tool<TPlugins, TExtraData>[]
|
|
12
16
|
private inputGuardrails: InputGuardrail[]
|
|
13
17
|
|
|
14
18
|
constructor(
|
|
15
19
|
name: string,
|
|
16
20
|
instructions: string,
|
|
17
|
-
tools: Tool[],
|
|
21
|
+
tools: Tool<TPlugins, TExtraData>[],
|
|
18
22
|
contactInfo: ContactInfo,
|
|
19
23
|
inputGuardrailRules: GuardrailRule[],
|
|
20
24
|
sourceIds: string[]
|
|
@@ -29,7 +33,7 @@ export class AIAgentBuilder {
|
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
35
|
|
|
32
|
-
build(): AIAgent {
|
|
36
|
+
build(): AIAgent<TPlugins, TExtraData> {
|
|
33
37
|
const modelSettings: ModelSettings = {}
|
|
34
38
|
|
|
35
39
|
if (this.tools.includes(retrieveKnowledge)) {
|
|
@@ -85,7 +89,10 @@ export class AIAgentBuilder {
|
|
|
85
89
|
return `<output>\n${output}\n</output>`
|
|
86
90
|
}
|
|
87
91
|
|
|
88
|
-
private addHubtypeTools(
|
|
92
|
+
private addHubtypeTools(
|
|
93
|
+
tools: Tool<TPlugins, TExtraData>[],
|
|
94
|
+
sourceIds: string[]
|
|
95
|
+
): Tool<TPlugins, TExtraData>[] {
|
|
89
96
|
const hubtypeTools: Tool[] = [...mandatoryTools]
|
|
90
97
|
if (sourceIds.length > 0) {
|
|
91
98
|
hubtypeTools.push(retrieveKnowledge)
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AiAgentArgs, BotContext, Plugin } from '@botonic/core'
|
|
1
|
+
import { AiAgentArgs, BotContext, Plugin, ResolvedPlugins } from '@botonic/core'
|
|
2
2
|
import { tool } from '@openai/agents'
|
|
3
3
|
|
|
4
4
|
import { AIAgentBuilder } from './agent-builder'
|
|
@@ -15,11 +15,15 @@ import {
|
|
|
15
15
|
Tool,
|
|
16
16
|
} from './types'
|
|
17
17
|
|
|
18
|
-
export default class BotonicPluginAiAgents
|
|
18
|
+
export default class BotonicPluginAiAgents<
|
|
19
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
20
|
+
TExtraData = any,
|
|
21
|
+
> implements Plugin
|
|
22
|
+
{
|
|
19
23
|
private readonly authToken?: string
|
|
20
|
-
public toolDefinitions: CustomTool[] = []
|
|
24
|
+
public toolDefinitions: CustomTool<TPlugins, TExtraData>[] = []
|
|
21
25
|
|
|
22
|
-
constructor(options?: PluginAiAgentOptions) {
|
|
26
|
+
constructor(options?: PluginAiAgentOptions<TPlugins, TExtraData>) {
|
|
23
27
|
setUpOpenAI()
|
|
24
28
|
this.authToken = options?.authToken
|
|
25
29
|
this.toolDefinitions = options?.customTools || []
|
|
@@ -58,6 +62,7 @@ export default class BotonicPluginAiAgents implements Plugin {
|
|
|
58
62
|
)
|
|
59
63
|
const context: Context = {
|
|
60
64
|
authToken,
|
|
65
|
+
request,
|
|
61
66
|
sources: aiAgentArgs.sourceIds || [],
|
|
62
67
|
}
|
|
63
68
|
|
|
@@ -90,12 +95,12 @@ export default class BotonicPluginAiAgents implements Plugin {
|
|
|
90
95
|
return await hubtypeClient.getLocalMessages(memoryLength)
|
|
91
96
|
}
|
|
92
97
|
|
|
93
|
-
private buildTools(activeToolNames: string[]): Tool[] {
|
|
98
|
+
private buildTools(activeToolNames: string[]): Tool<TPlugins, TExtraData>[] {
|
|
94
99
|
const availableTools = this.toolDefinitions.filter(tool =>
|
|
95
100
|
activeToolNames.includes(tool.name)
|
|
96
101
|
)
|
|
97
102
|
return availableTools.map(toolDefinition => {
|
|
98
|
-
return tool<any, Context, any>({
|
|
103
|
+
return tool<any, Context<TPlugins, TExtraData>, any>({
|
|
99
104
|
name: toolDefinition.name,
|
|
100
105
|
description: toolDefinition.description,
|
|
101
106
|
parameters: toolDefinition.schema,
|
package/src/runner.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ResolvedPlugins } from '@botonic/core'
|
|
1
2
|
import {
|
|
2
3
|
InputGuardrailTripwireTriggered,
|
|
3
4
|
Runner,
|
|
@@ -12,10 +13,13 @@ import {
|
|
|
12
13
|
RunResult,
|
|
13
14
|
} from './types'
|
|
14
15
|
|
|
15
|
-
export class AIAgentRunner
|
|
16
|
-
|
|
16
|
+
export class AIAgentRunner<
|
|
17
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
18
|
+
TExtraData = any,
|
|
19
|
+
> {
|
|
20
|
+
private agent: AIAgent<TPlugins, TExtraData>
|
|
17
21
|
|
|
18
|
-
constructor(agent: AIAgent) {
|
|
22
|
+
constructor(agent: AIAgent<TPlugins, TExtraData>) {
|
|
19
23
|
this.agent = agent
|
|
20
24
|
}
|
|
21
25
|
|
package/src/types.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgenticOutputMessage,
|
|
3
3
|
AiAgentArgs,
|
|
4
|
+
BotContext,
|
|
4
5
|
GuardrailRule,
|
|
5
6
|
InferenceResponse,
|
|
7
|
+
ResolvedPlugins,
|
|
6
8
|
RunResult,
|
|
7
9
|
} from '@botonic/core'
|
|
8
10
|
import {
|
|
@@ -15,27 +17,49 @@ import { ZodSchema } from 'zod'
|
|
|
15
17
|
|
|
16
18
|
import { OutputSchema } from './structured-output'
|
|
17
19
|
|
|
18
|
-
export interface Context
|
|
20
|
+
export interface Context<
|
|
21
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
22
|
+
TExtraData = any,
|
|
23
|
+
> {
|
|
19
24
|
authToken: string
|
|
25
|
+
request: BotContext<TPlugins, TExtraData>
|
|
20
26
|
sources: string[]
|
|
21
27
|
}
|
|
22
28
|
|
|
23
|
-
export type RunContext
|
|
29
|
+
export type RunContext<
|
|
30
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
31
|
+
TExtraData = any,
|
|
32
|
+
> = OpenAIRunContext<Context<TPlugins, TExtraData>>
|
|
24
33
|
|
|
25
|
-
export interface CustomTool
|
|
34
|
+
export interface CustomTool<
|
|
35
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
36
|
+
TExtraData = any,
|
|
37
|
+
> {
|
|
26
38
|
name: string
|
|
27
39
|
description: string
|
|
28
40
|
schema: ZodSchema
|
|
29
|
-
func: (
|
|
41
|
+
func: (
|
|
42
|
+
input?: any,
|
|
43
|
+
runContext?: RunContext<TPlugins, TExtraData>
|
|
44
|
+
) => Promise<any>
|
|
30
45
|
}
|
|
31
46
|
|
|
32
47
|
export type ContactInfo = Record<string, string>
|
|
33
48
|
|
|
34
|
-
export type Tool
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
export type Tool<
|
|
50
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
51
|
+
TExtraData = any,
|
|
52
|
+
> = OpenAITool<Context<TPlugins, TExtraData>>
|
|
53
|
+
export type AIAgent<
|
|
54
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
55
|
+
TExtraData = any,
|
|
56
|
+
> = Agent<Context<TPlugins, TExtraData>, typeof OutputSchema>
|
|
57
|
+
export interface PluginAiAgentOptions<
|
|
58
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
59
|
+
TExtraData = any,
|
|
60
|
+
> {
|
|
37
61
|
authToken?: string
|
|
38
|
-
customTools?: CustomTool[]
|
|
62
|
+
customTools?: CustomTool<TPlugins, TExtraData>[]
|
|
39
63
|
}
|
|
40
64
|
|
|
41
65
|
export type AgenticInputMessage = AgentInputItem
|