@agentica/core 0.43.3 → 0.44.0-dev.20260313
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/LICENSE +21 -21
- package/README.md +218 -218
- package/lib/constants/AgenticaSystemPrompt.js +1 -1
- package/lib/constants/AgenticaSystemPrompt.js.map +1 -1
- package/lib/context/AgenticaOperation.d.ts +3 -2
- package/lib/context/internal/AgenticaOperationComposer.js.map +1 -1
- package/lib/context/internal/AgenticaTokenUsageAggregator.js.map +1 -1
- package/lib/context/internal/__IChatInitialApplication.d.ts +1 -1
- package/lib/errors/AgenticaJsonParseError.d.ts +5 -8
- package/lib/errors/AgenticaJsonParseError.js +11 -6
- package/lib/errors/AgenticaJsonParseError.js.map +1 -1
- package/lib/errors/AgenticaValidationError.d.ts +1 -1
- package/lib/events/AgenticaExecuteEvent.d.ts +1 -1
- package/lib/events/AgenticaJsonParseErrorEvent.d.ts +2 -2
- package/lib/factory/events.d.ts +2 -3
- package/lib/factory/events.js +1 -2
- package/lib/factory/events.js.map +1 -1
- package/lib/functional/assertHttpController.d.ts +2 -3
- package/lib/functional/assertHttpController.js +3939 -2656
- package/lib/functional/assertHttpController.js.map +1 -1
- package/lib/functional/assertHttpLlmApplication.d.ts +3 -3
- package/lib/functional/assertHttpLlmApplication.js +3939 -2656
- package/lib/functional/assertHttpLlmApplication.js.map +1 -1
- package/lib/functional/assertMcpController.d.ts +2 -2
- package/lib/functional/assertMcpController.js +202 -629
- package/lib/functional/assertMcpController.js.map +1 -1
- package/lib/functional/createMcpLlmApplication.d.ts +6 -0
- package/lib/functional/createMcpLlmApplication.js +56 -0
- package/lib/functional/createMcpLlmApplication.js.map +1 -0
- package/lib/functional/validateHttpController.d.ts +3 -3
- package/lib/functional/validateHttpController.js +3367 -2268
- package/lib/functional/validateHttpController.js.map +1 -1
- package/lib/functional/validateHttpLlmApplication.d.ts +3 -4
- package/lib/functional/validateHttpLlmApplication.js +3367 -2268
- package/lib/functional/validateHttpLlmApplication.js.map +1 -1
- package/lib/functional/validateMcpController.d.ts +2 -2
- package/lib/functional/validateMcpController.js +388 -1161
- package/lib/functional/validateMcpController.js.map +1 -1
- package/lib/histories/AgenticaExecuteHistory.d.ts +1 -1
- package/lib/index.mjs +21256 -18946
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/call.js +43 -56
- package/lib/orchestrate/call.js.map +1 -1
- package/lib/orchestrate/cancel.js +9 -66
- package/lib/orchestrate/cancel.js.map +1 -1
- package/lib/orchestrate/initialize.js +4 -947
- package/lib/orchestrate/initialize.js.map +1 -1
- package/lib/orchestrate/select.js +11 -68
- package/lib/orchestrate/select.js.map +1 -1
- package/lib/structures/IAgenticaController.d.ts +143 -151
- package/lib/structures/IMcpTool.d.ts +52 -0
- package/lib/structures/IMcpTool.js +3 -0
- package/lib/structures/IMcpTool.js.map +1 -0
- package/lib/utils/ChatGptCompletionMessageUtil.js +16 -5
- package/lib/utils/ChatGptCompletionMessageUtil.js.map +1 -1
- package/lib/utils/ChatGptCompletionMessageUtil.spec.js +0 -5
- package/lib/utils/ChatGptCompletionMessageUtil.spec.js.map +1 -1
- package/package.json +7 -9
- package/prompts/cancel.md +5 -5
- package/prompts/common.md +3 -3
- package/prompts/describe.md +7 -7
- package/prompts/execute.md +122 -122
- package/prompts/initialize.md +3 -3
- package/prompts/json_parse_error.md +35 -33
- package/prompts/select.md +7 -7
- package/prompts/validate.md +123 -123
- package/prompts/validate_repeated.md +31 -31
- package/src/Agentica.ts +367 -367
- package/src/MicroAgentica.ts +357 -357
- package/src/constants/AgenticaConstant.ts +4 -4
- package/src/constants/AgenticaDefaultPrompt.ts +44 -44
- package/src/constants/AgenticaSystemPrompt.ts +1 -1
- package/src/constants/index.ts +2 -2
- package/src/context/AgenticaContext.ts +136 -136
- package/src/context/AgenticaContextRequestResult.ts +14 -14
- package/src/context/AgenticaOperation.ts +73 -72
- package/src/context/AgenticaOperationCollection.ts +49 -49
- package/src/context/AgenticaOperationSelection.ts +9 -9
- package/src/context/AgenticaTokenUsage.ts +186 -186
- package/src/context/MicroAgenticaContext.ts +99 -99
- package/src/context/index.ts +5 -5
- package/src/context/internal/AgenticaOperationComposer.ts +177 -177
- package/src/context/internal/AgenticaTokenUsageAggregator.ts +66 -66
- package/src/context/internal/__IChatCancelFunctionsApplication.ts +23 -23
- package/src/context/internal/__IChatFunctionReference.ts +21 -21
- package/src/context/internal/__IChatInitialApplication.ts +15 -15
- package/src/context/internal/__IChatSelectFunctionsApplication.ts +24 -24
- package/src/context/internal/isAgenticaContext.ts +11 -11
- package/src/errors/AgenticaJsonParseError.ts +52 -47
- package/src/errors/AgenticaValidationError.ts +49 -49
- package/src/errors/index.ts +2 -2
- package/src/events/AgenticaAssistantMessageEvent.ts +12 -12
- package/src/events/AgenticaCallEvent.ts +27 -27
- package/src/events/AgenticaCancelEvent.ts +9 -9
- package/src/events/AgenticaDescribeEvent.ts +14 -14
- package/src/events/AgenticaEvent.ts +59 -59
- package/src/events/AgenticaEvent.type.ts +19 -19
- package/src/events/AgenticaEventBase.ts +18 -18
- package/src/events/AgenticaEventSource.ts +6 -6
- package/src/events/AgenticaExecuteEvent.ts +45 -45
- package/src/events/AgenticaInitializeEvent.ts +7 -7
- package/src/events/AgenticaJsonParseErrorEvent.ts +16 -15
- package/src/events/AgenticaRequestEvent.ts +27 -27
- package/src/events/AgenticaResponseEvent.ts +32 -32
- package/src/events/AgenticaSelectEvent.ts +11 -11
- package/src/events/AgenticaUserMessageEvent.ts +12 -12
- package/src/events/AgenticaValidateEvent.ts +32 -32
- package/src/events/MicroAgenticaEvent.ts +45 -45
- package/src/events/index.ts +15 -15
- package/src/factory/events.ts +357 -359
- package/src/factory/histories.ts +348 -348
- package/src/factory/index.ts +3 -3
- package/src/factory/operations.ts +16 -16
- package/src/functional/assertHttpController.ts +106 -104
- package/src/functional/assertHttpLlmApplication.ts +52 -57
- package/src/functional/assertMcpController.ts +47 -44
- package/src/functional/createMcpLlmApplication.ts +72 -0
- package/src/functional/index.ts +7 -7
- package/src/functional/validateHttpController.ts +113 -110
- package/src/functional/validateHttpLlmApplication.ts +65 -70
- package/src/functional/validateMcpController.ts +53 -50
- package/src/histories/AgenticaAssistantMessageHistory.ts +10 -10
- package/src/histories/AgenticaCancelHistory.ts +8 -8
- package/src/histories/AgenticaDescribeHistory.ts +18 -18
- package/src/histories/AgenticaExecuteHistory.ts +64 -64
- package/src/histories/AgenticaHistory.ts +28 -28
- package/src/histories/AgenticaHistoryBase.ts +35 -35
- package/src/histories/AgenticaSelectHistory.ts +8 -8
- package/src/histories/AgenticaSystemMessageHistory.ts +10 -10
- package/src/histories/AgenticaUserMessageHistory.ts +11 -11
- package/src/histories/MicroAgenticaHistory.ts +19 -19
- package/src/histories/contents/AgenticaUserMessageAudioContent.ts +21 -21
- package/src/histories/contents/AgenticaUserMessageContent.ts +19 -19
- package/src/histories/contents/AgenticaUserMessageContentBase.ts +6 -6
- package/src/histories/contents/AgenticaUserMessageFileContent.ts +25 -25
- package/src/histories/contents/AgenticaUserMessageImageContent.ts +33 -33
- package/src/histories/contents/AgenticaUserMessageTextContent.ts +15 -15
- package/src/histories/contents/index.ts +5 -5
- package/src/histories/index.ts +10 -10
- package/src/index.ts +15 -15
- package/src/json/IAgenticaEventJson.ts +265 -265
- package/src/json/IAgenticaEventJson.type.ts +19 -19
- package/src/json/IAgenticaHistoryJson.ts +165 -165
- package/src/json/IAgenticaHistoryJson.type.ts +19 -19
- package/src/json/IAgenticaOperationJson.ts +36 -36
- package/src/json/IAgenticaOperationSelectionJson.ts +26 -26
- package/src/json/IAgenticaTokenUsageJson.ts +107 -107
- package/src/json/IMicroAgenticaEventJson.ts +22 -22
- package/src/json/IMicroAgenticaHistoryJson.ts +25 -25
- package/src/json/index.ts +7 -7
- package/src/orchestrate/call.ts +542 -558
- package/src/orchestrate/cancel.ts +265 -269
- package/src/orchestrate/describe.ts +66 -66
- package/src/orchestrate/execute.ts +61 -61
- package/src/orchestrate/index.ts +6 -6
- package/src/orchestrate/initialize.ts +102 -102
- package/src/orchestrate/internal/cancelFunctionFromContext.ts +33 -33
- package/src/orchestrate/internal/selectFunctionFromContext.ts +34 -34
- package/src/orchestrate/select.ts +320 -322
- package/src/structures/IAgenticaConfig.ts +83 -83
- package/src/structures/IAgenticaConfigBase.ts +87 -87
- package/src/structures/IAgenticaController.ts +143 -151
- package/src/structures/IAgenticaExecutor.ts +167 -167
- package/src/structures/IAgenticaProps.ts +78 -78
- package/src/structures/IAgenticaSystemPrompt.ts +236 -236
- package/src/structures/IAgenticaVendor.ts +54 -54
- package/src/structures/IMcpTool.ts +60 -0
- package/src/structures/IMicroAgenticaConfig.ts +56 -56
- package/src/structures/IMicroAgenticaExecutor.ts +67 -67
- package/src/structures/IMicroAgenticaProps.ts +77 -77
- package/src/structures/IMicroAgenticaSystemPrompt.ts +169 -169
- package/src/structures/index.ts +10 -10
- package/src/transformers/transformHistory.ts +172 -172
- package/src/utils/AssistantMessageEmptyError.ts +20 -20
- package/src/utils/AsyncQueue.spec.ts +355 -355
- package/src/utils/AsyncQueue.ts +95 -95
- package/src/utils/ByteArrayUtil.ts +5 -5
- package/src/utils/ChatGptCompletionMessageUtil.spec.ts +314 -320
- package/src/utils/ChatGptCompletionMessageUtil.ts +210 -195
- package/src/utils/ChatGptCompletionStreamingUtil.spec.ts +909 -909
- package/src/utils/ChatGptCompletionStreamingUtil.ts +91 -91
- package/src/utils/ChatGptTokenUsageAggregator.spec.ts +226 -226
- package/src/utils/ChatGptTokenUsageAggregator.ts +57 -57
- package/src/utils/MPSC.spec.ts +276 -276
- package/src/utils/MPSC.ts +42 -42
- package/src/utils/Singleton.spec.ts +138 -138
- package/src/utils/Singleton.ts +42 -42
- package/src/utils/StreamUtil.spec.ts +512 -512
- package/src/utils/StreamUtil.ts +87 -87
- package/src/utils/__map_take.spec.ts +140 -140
- package/src/utils/__map_take.ts +13 -13
- package/src/utils/__retry.spec.ts +198 -198
- package/src/utils/__retry.ts +18 -18
- package/src/utils/assertExecuteFailure.ts +16 -16
- package/src/utils/index.ts +4 -4
- package/src/utils/request.ts +140 -140
- package/src/utils/types.ts +50 -50
- package/lib/context/internal/AgenticaOperationComposer.spec.d.ts +0 -1
- package/lib/context/internal/AgenticaOperationComposer.spec.js +0 -353
- package/lib/context/internal/AgenticaOperationComposer.spec.js.map +0 -1
- package/lib/utils/JsonUtil.d.ts +0 -8
- package/lib/utils/JsonUtil.js +0 -349
- package/lib/utils/JsonUtil.js.map +0 -1
- package/src/context/internal/AgenticaOperationComposer.spec.ts +0 -401
- package/src/utils/JsonUtil.ts +0 -460
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import type { AgenticaContext } from "../context/AgenticaContext";
|
|
2
|
-
|
|
3
|
-
import type { IAgenticaConfigBase } from "./IAgenticaConfigBase";
|
|
4
|
-
import type { IAgenticaExecutor } from "./IAgenticaExecutor";
|
|
5
|
-
import type { IAgenticaSystemPrompt } from "./IAgenticaSystemPrompt";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Configuration for Agentic Agent.
|
|
9
|
-
*
|
|
10
|
-
* `IAgenticaConfig` is an interface that defines the configuration
|
|
11
|
-
* properties of the {@link Agentica}. With this configuration, you
|
|
12
|
-
* can set the user's {@link locale}, {@link timezone}, and some of
|
|
13
|
-
* {@link systemPrompt system prompts}.
|
|
14
|
-
*
|
|
15
|
-
* Also, you can affect to the LLM function selecing/calling logic by
|
|
16
|
-
* configuring additional properties. For an example, if you configure the
|
|
17
|
-
* {@link capacity} property, the AI chatbot will divide the functions
|
|
18
|
-
* into the several groups with the configured capacity and select proper
|
|
19
|
-
* functions to call by operating the multiple LLM function selecting
|
|
20
|
-
* agents parallelly.
|
|
21
|
-
*
|
|
22
|
-
* @author Samchon
|
|
23
|
-
*/
|
|
24
|
-
export interface IAgenticaConfig extends IAgenticaConfigBase {
|
|
25
|
-
/**
|
|
26
|
-
* Agent executor.
|
|
27
|
-
*
|
|
28
|
-
* Executor function of Agentic AI's iteration plan to internal agents
|
|
29
|
-
* running by the {@link Agentica.conversate} function.
|
|
30
|
-
*
|
|
31
|
-
* If you want to customize the agent execution plan, you can do it
|
|
32
|
-
* by assigning you logic function of entire or partial to this property.
|
|
33
|
-
* When customizing it, it would better to reference the
|
|
34
|
-
* {@link ChatGptAgent.execute} function.
|
|
35
|
-
*
|
|
36
|
-
* @param ctx Context of the agent
|
|
37
|
-
* @default ChatGptAgent.execute
|
|
38
|
-
*/
|
|
39
|
-
executor?:
|
|
40
|
-
| Partial<IAgenticaExecutor>
|
|
41
|
-
| ((ctx: AgenticaContext) => Promise<void>);
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* System prompt messages.
|
|
45
|
-
*
|
|
46
|
-
* System prompt messages if you want to customize the system prompt
|
|
47
|
-
* messages for each situation.
|
|
48
|
-
*/
|
|
49
|
-
systemPrompt?: IAgenticaSystemPrompt;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Capacity of the LLM function selecting.
|
|
53
|
-
*
|
|
54
|
-
* When the A.I. chatbot selects a proper function to call, if the
|
|
55
|
-
* number of functions registered in the
|
|
56
|
-
* {@link IAgenticaProps.applications} is too much greater,
|
|
57
|
-
* the A.I. chatbot often fallen into the hallucination.
|
|
58
|
-
*
|
|
59
|
-
* In that case, if you configure this property value, `Agentica`
|
|
60
|
-
* will divide the functions into the several groups with the configured
|
|
61
|
-
* capacity and select proper functions to call by operating the multiple
|
|
62
|
-
* LLM function selecting agents parallelly.
|
|
63
|
-
*
|
|
64
|
-
* @default 100
|
|
65
|
-
*/
|
|
66
|
-
capacity?: number;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Eliticism for the LLM function selecting.
|
|
70
|
-
*
|
|
71
|
-
* If you configure {@link capacity}, the A.I. chatbot will complete
|
|
72
|
-
* the candidate functions to call which are selected by the multiple
|
|
73
|
-
* LLM function selecting agents.
|
|
74
|
-
*
|
|
75
|
-
* Otherwise you configure this property as `false`, the A.I. chatbot
|
|
76
|
-
* will not complete the candidate functions to call and just accept
|
|
77
|
-
* every candidate functions to call which are selected by the multiple
|
|
78
|
-
* LLM function selecting agents.
|
|
79
|
-
*
|
|
80
|
-
* @default true
|
|
81
|
-
*/
|
|
82
|
-
eliticism?: boolean;
|
|
83
|
-
}
|
|
1
|
+
import type { AgenticaContext } from "../context/AgenticaContext";
|
|
2
|
+
|
|
3
|
+
import type { IAgenticaConfigBase } from "./IAgenticaConfigBase";
|
|
4
|
+
import type { IAgenticaExecutor } from "./IAgenticaExecutor";
|
|
5
|
+
import type { IAgenticaSystemPrompt } from "./IAgenticaSystemPrompt";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for Agentic Agent.
|
|
9
|
+
*
|
|
10
|
+
* `IAgenticaConfig` is an interface that defines the configuration
|
|
11
|
+
* properties of the {@link Agentica}. With this configuration, you
|
|
12
|
+
* can set the user's {@link locale}, {@link timezone}, and some of
|
|
13
|
+
* {@link systemPrompt system prompts}.
|
|
14
|
+
*
|
|
15
|
+
* Also, you can affect to the LLM function selecing/calling logic by
|
|
16
|
+
* configuring additional properties. For an example, if you configure the
|
|
17
|
+
* {@link capacity} property, the AI chatbot will divide the functions
|
|
18
|
+
* into the several groups with the configured capacity and select proper
|
|
19
|
+
* functions to call by operating the multiple LLM function selecting
|
|
20
|
+
* agents parallelly.
|
|
21
|
+
*
|
|
22
|
+
* @author Samchon
|
|
23
|
+
*/
|
|
24
|
+
export interface IAgenticaConfig extends IAgenticaConfigBase {
|
|
25
|
+
/**
|
|
26
|
+
* Agent executor.
|
|
27
|
+
*
|
|
28
|
+
* Executor function of Agentic AI's iteration plan to internal agents
|
|
29
|
+
* running by the {@link Agentica.conversate} function.
|
|
30
|
+
*
|
|
31
|
+
* If you want to customize the agent execution plan, you can do it
|
|
32
|
+
* by assigning you logic function of entire or partial to this property.
|
|
33
|
+
* When customizing it, it would better to reference the
|
|
34
|
+
* {@link ChatGptAgent.execute} function.
|
|
35
|
+
*
|
|
36
|
+
* @param ctx Context of the agent
|
|
37
|
+
* @default ChatGptAgent.execute
|
|
38
|
+
*/
|
|
39
|
+
executor?:
|
|
40
|
+
| Partial<IAgenticaExecutor>
|
|
41
|
+
| ((ctx: AgenticaContext) => Promise<void>);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* System prompt messages.
|
|
45
|
+
*
|
|
46
|
+
* System prompt messages if you want to customize the system prompt
|
|
47
|
+
* messages for each situation.
|
|
48
|
+
*/
|
|
49
|
+
systemPrompt?: IAgenticaSystemPrompt;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Capacity of the LLM function selecting.
|
|
53
|
+
*
|
|
54
|
+
* When the A.I. chatbot selects a proper function to call, if the
|
|
55
|
+
* number of functions registered in the
|
|
56
|
+
* {@link IAgenticaProps.applications} is too much greater,
|
|
57
|
+
* the A.I. chatbot often fallen into the hallucination.
|
|
58
|
+
*
|
|
59
|
+
* In that case, if you configure this property value, `Agentica`
|
|
60
|
+
* will divide the functions into the several groups with the configured
|
|
61
|
+
* capacity and select proper functions to call by operating the multiple
|
|
62
|
+
* LLM function selecting agents parallelly.
|
|
63
|
+
*
|
|
64
|
+
* @default 100
|
|
65
|
+
*/
|
|
66
|
+
capacity?: number;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Eliticism for the LLM function selecting.
|
|
70
|
+
*
|
|
71
|
+
* If you configure {@link capacity}, the A.I. chatbot will complete
|
|
72
|
+
* the candidate functions to call which are selected by the multiple
|
|
73
|
+
* LLM function selecting agents.
|
|
74
|
+
*
|
|
75
|
+
* Otherwise you configure this property as `false`, the A.I. chatbot
|
|
76
|
+
* will not complete the candidate functions to call and just accept
|
|
77
|
+
* every candidate functions to call which are selected by the multiple
|
|
78
|
+
* LLM function selecting agents.
|
|
79
|
+
*
|
|
80
|
+
* @default true
|
|
81
|
+
*/
|
|
82
|
+
eliticism?: boolean;
|
|
83
|
+
}
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration for Agentic Agent.
|
|
3
|
-
*
|
|
4
|
-
* `IAgenticaConfig` is an interface that defines the configuration
|
|
5
|
-
* properties of the {@link Agentica}. With this configuration, you
|
|
6
|
-
* can set the user's {@link locale}, {@link timezone}, and some of
|
|
7
|
-
* {@link systemPrompt system prompts}.
|
|
8
|
-
*
|
|
9
|
-
* Also, you can affect to the LLM function selecing/calling logic by
|
|
10
|
-
* configuring additional properties. For an example, if you configure the
|
|
11
|
-
* {@link capacity} property, the AI chatbot will divide the functions
|
|
12
|
-
* into the several groups with the configured capacity and select proper
|
|
13
|
-
* functions to call by operating the multiple LLM function selecting
|
|
14
|
-
* agents parallelly.
|
|
15
|
-
*
|
|
16
|
-
* @author sunrabbit123
|
|
17
|
-
*/
|
|
18
|
-
export interface IAgenticaConfigBase {
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Locale of the A.I. chatbot.
|
|
22
|
-
*
|
|
23
|
-
* If you configure this property, the A.I. chatbot will conversate with
|
|
24
|
-
* the given locale. You can get the locale value by
|
|
25
|
-
*
|
|
26
|
-
* - Browser: `navigator.language`
|
|
27
|
-
* - NodeJS: `process.env.LANG.split(".")[0]`
|
|
28
|
-
*
|
|
29
|
-
* @default your_locale
|
|
30
|
-
*/
|
|
31
|
-
locale?: string;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Timezone of the A.I. chatbot.
|
|
35
|
-
*
|
|
36
|
-
* If you configure this property, the A.I. chatbot will consider the
|
|
37
|
-
* given timezone. You can get the timezone value by
|
|
38
|
-
* `Intl.DateTimeFormat().resolvedOptions().timeZone`.
|
|
39
|
-
*
|
|
40
|
-
* @default your_timezone
|
|
41
|
-
*/
|
|
42
|
-
timezone?: string;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Retry count.
|
|
46
|
-
*
|
|
47
|
-
* If LLM function calling composed arguments are invalid,
|
|
48
|
-
* the A.I. chatbot will retry to call the function with
|
|
49
|
-
* the modified arguments.
|
|
50
|
-
*
|
|
51
|
-
* By the way, if you configure it to 0 or 1, the A.I. chatbot
|
|
52
|
-
* will not retry the LLM function calling for correcting the
|
|
53
|
-
* arguments.
|
|
54
|
-
*
|
|
55
|
-
* @default 3
|
|
56
|
-
*/
|
|
57
|
-
retry?: number;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Backoff strategy.
|
|
61
|
-
*
|
|
62
|
-
* If OpenAI SDK fails to connect LLM API Server, this Backoff factor
|
|
63
|
-
* would be used to retry for the next connection.
|
|
64
|
-
*
|
|
65
|
-
* If the function returns `true`, the retry would be stopped.
|
|
66
|
-
* Otherwise, the retry would be continued.
|
|
67
|
-
*
|
|
68
|
-
* @default (props) => throw props.error
|
|
69
|
-
* @returns {number} The number of milliseconds to wait before the next retry
|
|
70
|
-
* @throws {Error} If the function want to stop the retry, you can throw an error
|
|
71
|
-
*/
|
|
72
|
-
backoffStrategy?: (props: {
|
|
73
|
-
count: number;
|
|
74
|
-
error: unknown;
|
|
75
|
-
}) => number;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Whether to enable streaming.
|
|
79
|
-
*
|
|
80
|
-
* If you set this property to `true`, the A.I. chatbot will enable streaming.
|
|
81
|
-
*
|
|
82
|
-
* If you set this property to `false`, the A.I. chatbot will not enable streaming.
|
|
83
|
-
*
|
|
84
|
-
* @default true
|
|
85
|
-
*/
|
|
86
|
-
stream?: boolean;
|
|
87
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for Agentic Agent.
|
|
3
|
+
*
|
|
4
|
+
* `IAgenticaConfig` is an interface that defines the configuration
|
|
5
|
+
* properties of the {@link Agentica}. With this configuration, you
|
|
6
|
+
* can set the user's {@link locale}, {@link timezone}, and some of
|
|
7
|
+
* {@link systemPrompt system prompts}.
|
|
8
|
+
*
|
|
9
|
+
* Also, you can affect to the LLM function selecing/calling logic by
|
|
10
|
+
* configuring additional properties. For an example, if you configure the
|
|
11
|
+
* {@link capacity} property, the AI chatbot will divide the functions
|
|
12
|
+
* into the several groups with the configured capacity and select proper
|
|
13
|
+
* functions to call by operating the multiple LLM function selecting
|
|
14
|
+
* agents parallelly.
|
|
15
|
+
*
|
|
16
|
+
* @author sunrabbit123
|
|
17
|
+
*/
|
|
18
|
+
export interface IAgenticaConfigBase {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Locale of the A.I. chatbot.
|
|
22
|
+
*
|
|
23
|
+
* If you configure this property, the A.I. chatbot will conversate with
|
|
24
|
+
* the given locale. You can get the locale value by
|
|
25
|
+
*
|
|
26
|
+
* - Browser: `navigator.language`
|
|
27
|
+
* - NodeJS: `process.env.LANG.split(".")[0]`
|
|
28
|
+
*
|
|
29
|
+
* @default your_locale
|
|
30
|
+
*/
|
|
31
|
+
locale?: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Timezone of the A.I. chatbot.
|
|
35
|
+
*
|
|
36
|
+
* If you configure this property, the A.I. chatbot will consider the
|
|
37
|
+
* given timezone. You can get the timezone value by
|
|
38
|
+
* `Intl.DateTimeFormat().resolvedOptions().timeZone`.
|
|
39
|
+
*
|
|
40
|
+
* @default your_timezone
|
|
41
|
+
*/
|
|
42
|
+
timezone?: string;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Retry count.
|
|
46
|
+
*
|
|
47
|
+
* If LLM function calling composed arguments are invalid,
|
|
48
|
+
* the A.I. chatbot will retry to call the function with
|
|
49
|
+
* the modified arguments.
|
|
50
|
+
*
|
|
51
|
+
* By the way, if you configure it to 0 or 1, the A.I. chatbot
|
|
52
|
+
* will not retry the LLM function calling for correcting the
|
|
53
|
+
* arguments.
|
|
54
|
+
*
|
|
55
|
+
* @default 3
|
|
56
|
+
*/
|
|
57
|
+
retry?: number;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Backoff strategy.
|
|
61
|
+
*
|
|
62
|
+
* If OpenAI SDK fails to connect LLM API Server, this Backoff factor
|
|
63
|
+
* would be used to retry for the next connection.
|
|
64
|
+
*
|
|
65
|
+
* If the function returns `true`, the retry would be stopped.
|
|
66
|
+
* Otherwise, the retry would be continued.
|
|
67
|
+
*
|
|
68
|
+
* @default (props) => throw props.error
|
|
69
|
+
* @returns {number} The number of milliseconds to wait before the next retry
|
|
70
|
+
* @throws {Error} If the function want to stop the retry, you can throw an error
|
|
71
|
+
*/
|
|
72
|
+
backoffStrategy?: (props: {
|
|
73
|
+
count: number;
|
|
74
|
+
error: unknown;
|
|
75
|
+
}) => number;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Whether to enable streaming.
|
|
79
|
+
*
|
|
80
|
+
* If you set this property to `true`, the A.I. chatbot will enable streaming.
|
|
81
|
+
*
|
|
82
|
+
* If you set this property to `false`, the A.I. chatbot will not enable streaming.
|
|
83
|
+
*
|
|
84
|
+
* @default true
|
|
85
|
+
*/
|
|
86
|
+
stream?: boolean;
|
|
87
|
+
}
|
|
@@ -1,151 +1,143 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* {@link
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
name: string;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Application schema of function calling.
|
|
148
|
-
*/
|
|
149
|
-
application: Application;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
1
|
+
import type { IHttpConnection, IHttpLlmApplication, IHttpLlmFunction, IHttpResponse, ILlmApplication, ILlmFunction } from "@typia/interface";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Controller of the Agentica Agent.
|
|
5
|
+
*
|
|
6
|
+
* `IAgenticaController` is a type represents a controller of the
|
|
7
|
+
* {@link Agentica}, which serves a set of functions to be called
|
|
8
|
+
* by A.I. chatbot from LLM function calling.
|
|
9
|
+
*
|
|
10
|
+
* Also, `IAgenticaController` is an union type which can specify
|
|
11
|
+
* a subtype by checking the {@link protocol} property.
|
|
12
|
+
*
|
|
13
|
+
* - HTTP server: {@link IAgenticaController.IHttp}
|
|
14
|
+
* - TypeScript class: {@link IAgenticaController.IClass}
|
|
15
|
+
* - MCP Server: {@link IAgenticaController.IMcp}
|
|
16
|
+
*
|
|
17
|
+
* @author Samchon
|
|
18
|
+
*/
|
|
19
|
+
export type IAgenticaController
|
|
20
|
+
= | IAgenticaController.IHttp
|
|
21
|
+
| IAgenticaController.IClass
|
|
22
|
+
| IAgenticaController.IMcp;
|
|
23
|
+
|
|
24
|
+
export namespace IAgenticaController {
|
|
25
|
+
/**
|
|
26
|
+
* HTTP controller.
|
|
27
|
+
*
|
|
28
|
+
* You can make it by {@link validateHttpLlmApplication} function with
|
|
29
|
+
* the Swagger or OpenAPI document.
|
|
30
|
+
*/
|
|
31
|
+
export interface IHttp extends IBase<"http", IHttpLlmApplication> {
|
|
32
|
+
/**
|
|
33
|
+
* Connection to the server.
|
|
34
|
+
*
|
|
35
|
+
* Connection to the API server including the URL and headers.
|
|
36
|
+
*/
|
|
37
|
+
connection: IHttpConnection;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Executor of the API function.
|
|
41
|
+
*
|
|
42
|
+
* @param props Properties of the API function call
|
|
43
|
+
* @returns HTTP response of the API function call
|
|
44
|
+
*/
|
|
45
|
+
execute?: (props: {
|
|
46
|
+
/**
|
|
47
|
+
* Connection to the server.
|
|
48
|
+
*/
|
|
49
|
+
connection: IHttpConnection;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Application schema.
|
|
53
|
+
*/
|
|
54
|
+
application: IHttpLlmApplication;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Function schema.
|
|
58
|
+
*/
|
|
59
|
+
function: IHttpLlmFunction;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Arguments of the function calling.
|
|
63
|
+
*
|
|
64
|
+
* It is an object of key-value pairs of the API function's parameters.
|
|
65
|
+
* The property keys are composed by below rules:
|
|
66
|
+
*
|
|
67
|
+
* - parameter names
|
|
68
|
+
* - query parameter as an object type if exists
|
|
69
|
+
* - body parameter if exists
|
|
70
|
+
*/
|
|
71
|
+
arguments: object;
|
|
72
|
+
}) => Promise<IHttpResponse>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* TypeScript class controller.
|
|
77
|
+
*
|
|
78
|
+
* You can make it by `typia.llm.application<App, Model>()` function.
|
|
79
|
+
*
|
|
80
|
+
* - https://typia.io/docs/llm/application
|
|
81
|
+
*/
|
|
82
|
+
export interface IClass extends IBase<"class", ILlmApplication> {
|
|
83
|
+
/**
|
|
84
|
+
* Executor of the class function.
|
|
85
|
+
*
|
|
86
|
+
* Executor of the class function, by target class instance
|
|
87
|
+
* or callback function with given schema and arguments
|
|
88
|
+
* information.
|
|
89
|
+
*/
|
|
90
|
+
execute:
|
|
91
|
+
| object
|
|
92
|
+
| ((props: {
|
|
93
|
+
/**
|
|
94
|
+
* Target application schema.
|
|
95
|
+
*/
|
|
96
|
+
application: ILlmApplication;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Target function schema.
|
|
100
|
+
*/
|
|
101
|
+
function: ILlmFunction;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Arguments of the function calling.
|
|
105
|
+
*/
|
|
106
|
+
arguments: object;
|
|
107
|
+
}) => Promise<unknown>);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* MCP Server controller.
|
|
112
|
+
*/
|
|
113
|
+
export interface IMcp extends IBase<"mcp", ILlmApplication> {
|
|
114
|
+
/**
|
|
115
|
+
* MCP client for connection.
|
|
116
|
+
*
|
|
117
|
+
* @warning You have to install `@modelcontextprotocol/sdk` package
|
|
118
|
+
* to use this type properly. If not, this type would work
|
|
119
|
+
* as an `any` type, so that you can't validate it.
|
|
120
|
+
*/
|
|
121
|
+
// @ts-ignore Type checking only when `@modelcontextprotocol/sdk` is installed.
|
|
122
|
+
// This strategy is useful for someone who does not need MCP,
|
|
123
|
+
// for someone who has not installed `@modelcontextprotocol/sdk`.
|
|
124
|
+
client: import("@modelcontextprotocol/sdk/client/index.d.ts").Client;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
interface IBase<Protocol, Application> {
|
|
128
|
+
/**
|
|
129
|
+
* Protocol discrminator.
|
|
130
|
+
*/
|
|
131
|
+
protocol: Protocol;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Name of the controller.
|
|
135
|
+
*/
|
|
136
|
+
name: string;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Application schema of function calling.
|
|
140
|
+
*/
|
|
141
|
+
application: Application;
|
|
142
|
+
}
|
|
143
|
+
}
|