@agentica/benchmark 0.20.0 → 0.21.0
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/README.md +130 -300
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,335 +1,165 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Agentica, AI Function Calling Framework
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- https://github.com/user-attachments/assets/5326cc59-5129-470d-abcb-c3f458b5c488 -->
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
[](https://www.npmjs.com/package/@agentica/benchmark)
|
|
7
|
-
[](https://www.npmjs.com/package/@agentica/benchmark)
|
|
8
|
-
[](https://github.com/wrtnlabs/agentica/actions?query=workflow%3Abuild)
|
|
9
|
-
|
|
10
|
-
Benchmark program of `Agentica`.
|
|
11
|
-
|
|
12
|
-
`Agentica` is the simplest Agentic AI library specialized in **LLM Function Calling**, and `@agentica/benchmark` is the benchmark tool of such Agentic AI library. It supports two quantitive benchmark tools `AgenticaSelectBenchmark` and `AgenticaCallBenchmark` which can measure function calling's selecting and calling qualities.
|
|
13
|
-
|
|
14
|
-
Here is an example report generated by `@agentica/benchmark` measuring function calling quality of "Shopping Mall" scenario. Below measured benchmark scenario is exactly same with the recorded video, and you can find that every function calling has succeeded without any error.
|
|
5
|
+

|
|
15
6
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
> - Repository: https://github.com/wrtnlabs/shopping-backend
|
|
7
|
+
[](https://github.com/wrtnlabs/agentica/blob/master/LICENSE)
|
|
8
|
+
[](https://www.npmjs.com/package/@agentica/core)
|
|
9
|
+
[](https://www.npmjs.com/package/@agentica/core)
|
|
10
|
+
[](https://github.com/wrtnlabs/agentica/actions?query=workflow%3Abuild)
|
|
11
|
+
[](https://wrtnlabs.io/agentica/)
|
|
12
|
+
[](https://discord.gg/aMhRmzkqCx)
|
|
23
13
|
|
|
24
|
-
|
|
14
|
+
Agentic AI framework specialized in AI Function Calling.
|
|
25
15
|
|
|
26
|
-
|
|
16
|
+
Don't be afraid of AI agent development. Just list functions from three protocols below. This is everything you should do for AI agent development.
|
|
27
17
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
```
|
|
18
|
+
- TypeScript Class
|
|
19
|
+
- Swagger/OpenAPI Document
|
|
20
|
+
- MCP (Model Context Protocol) Server
|
|
32
21
|
|
|
33
|
-
|
|
22
|
+
Wanna make an e-commerce agent? Bring in e-commerce functions. Need a newspaper agent? Get API functions from the newspaper company. Just prepare any functions that you need, then it becomes an AI agent.
|
|
34
23
|
|
|
35
|
-
|
|
24
|
+
Are you a TypeScript developer? Then you're already an AI developer. Familiar with backend development? You're already well-versed in AI development. Anyone who can make functions can make AI agents.
|
|
36
25
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
By the way, as `typia` is a transformer library analyzing TypeScript source code in the compilation level, it needs additional setup command `npx typia setup`.
|
|
40
|
-
|
|
41
|
-
### Function selecting Benchmark
|
|
26
|
+
<!-- eslint-skip -->
|
|
42
27
|
|
|
43
28
|
```typescript
|
|
44
|
-
import
|
|
45
|
-
import path from "node:path";
|
|
46
|
-
|
|
47
|
-
import { AgenticaSelectBenchmark } from "@agentica/benchmark";
|
|
48
|
-
import { Agentica, IAgenticaOperation } from "@agentica/core";
|
|
49
|
-
import { HttpLlm, IHttpConnection, OpenApi } from "@samchon/openapi";
|
|
29
|
+
import { Agentica, assertHttpLlmApplication } from "@agentica/core";
|
|
50
30
|
import OpenAI from "openai";
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
31
|
+
import typia from "typia";
|
|
32
|
+
|
|
33
|
+
import { MobileFileSystem } from "./services/MobileFileSystem";
|
|
34
|
+
|
|
35
|
+
const agent = new Agentica({
|
|
36
|
+
vendor: {
|
|
37
|
+
api: new OpenAI({ apiKey: "********" }),
|
|
38
|
+
model: "gpt-4o-mini",
|
|
39
|
+
},
|
|
40
|
+
controllers: [
|
|
41
|
+
// functions from TypeScript class
|
|
42
|
+
{
|
|
43
|
+
protocol: "http",
|
|
44
|
+
application: typia.llm.application<MobileFileSystem, "chatgpt">(),
|
|
45
|
+
execute: new MobileFileSystem(),
|
|
61
46
|
},
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
// DO BENCHMARK
|
|
80
|
-
const find = (method: OpenApi.Method, path: string): IAgenticaOperation => {
|
|
81
|
-
const found = agent
|
|
82
|
-
.getOperations()
|
|
83
|
-
.find(
|
|
84
|
-
op =>
|
|
85
|
-
op.protocol === "http"
|
|
86
|
-
&& op.function.method === method
|
|
87
|
-
&& op.function.path === path,
|
|
88
|
-
);
|
|
89
|
-
if (!found) {
|
|
90
|
-
throw new Error(`Operation not found: ${method} ${path}`);
|
|
91
|
-
}
|
|
92
|
-
return found;
|
|
93
|
-
};
|
|
94
|
-
const benchmark: AgenticaSelectBenchmark<"chatgpt">
|
|
95
|
-
= new AgenticaSelectBenchmark({
|
|
96
|
-
agent,
|
|
97
|
-
config: {
|
|
98
|
-
repeat: 4,
|
|
47
|
+
// functions from Swagger/OpenAPI
|
|
48
|
+
{
|
|
49
|
+
protocol: "http",
|
|
50
|
+
application: assertHttpLlmApplication({
|
|
51
|
+
model: "chatgpt",
|
|
52
|
+
document: await fetch(
|
|
53
|
+
"https://shopping-be.wrtn.ai/editor/swagger.json",
|
|
54
|
+
).then(r => r.json()),
|
|
55
|
+
}),
|
|
56
|
+
connection: {
|
|
57
|
+
host: "https://shopping-be.wrtn.ai",
|
|
58
|
+
headers: { Authorization: "Bearer ********" },
|
|
99
59
|
},
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"I wanna see every sales in the shopping mall",
|
|
105
|
-
"",
|
|
106
|
-
"And then show me the detailed information about the Macbook.",
|
|
107
|
-
"",
|
|
108
|
-
"After that, select the most expensive stock",
|
|
109
|
-
"from the Macbook, and put it into my shopping cart.",
|
|
110
|
-
"And take the shopping cart to the order.",
|
|
111
|
-
"",
|
|
112
|
-
"At last, I'll publish it by cash payment, and my address is",
|
|
113
|
-
"",
|
|
114
|
-
" - country: South Korea",
|
|
115
|
-
" - city/province: Seoul",
|
|
116
|
-
" - department: Wrtn Apartment",
|
|
117
|
-
" - Possession: 101-1411",
|
|
118
|
-
].join("\n"),
|
|
119
|
-
expected: {
|
|
120
|
-
type: "array",
|
|
121
|
-
items: [
|
|
122
|
-
{
|
|
123
|
-
type: "standalone",
|
|
124
|
-
operation: find("patch", "/shoppings/customers/sales"),
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
type: "standalone",
|
|
128
|
-
operation: find("get", "/shoppings/customers/sales/{id}"),
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
type: "anyOf",
|
|
132
|
-
anyOf: [
|
|
133
|
-
{
|
|
134
|
-
type: "standalone",
|
|
135
|
-
operation: find("post", "/shoppings/customers/orders"),
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
type: "standalone",
|
|
139
|
-
operation: find("post", "/shoppings/customers/orders/direct"),
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
type: "standalone",
|
|
145
|
-
operation: find(
|
|
146
|
-
"post",
|
|
147
|
-
"/shoppings/customers/orders/{orderId}/publish",
|
|
148
|
-
),
|
|
149
|
-
},
|
|
150
|
-
],
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
],
|
|
154
|
-
});
|
|
155
|
-
await benchmark.execute();
|
|
156
|
-
|
|
157
|
-
// REPORT
|
|
158
|
-
const docs: Record<string, string> = benchmark.report();
|
|
159
|
-
const root: string = `docs/benchmarks/call`;
|
|
160
|
-
|
|
161
|
-
await rmdir(root);
|
|
162
|
-
for (const [key, value] of Object.entries(docs)) {
|
|
163
|
-
await mkdir(path.join(root, key.split("/").slice(0, -1).join("/")));
|
|
164
|
-
await fs.promises.writeFile(path.join(root, key), value, "utf8");
|
|
165
|
-
}
|
|
166
|
-
}
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
});
|
|
63
|
+
await agent.conversate("I wanna buy MacBook Pro");
|
|
167
64
|
```
|
|
168
65
|
|
|
169
|
-
|
|
170
|
-
>
|
|
171
|
-
> - [Benchmark Report](https://github.com/wrtnlabs/agentica/tree/main/test/examples/benchmarks/select)
|
|
172
|
-
> - Swagger Document: https://shopping-be.wrtn.ai/editor
|
|
173
|
-
> - Repository: https://github.com/wrtnlabs/shopping-backend
|
|
66
|
+
## 📦 Setup
|
|
174
67
|
|
|
175
|
-
|
|
68
|
+
```bash
|
|
69
|
+
$ npx agentica start <directory>
|
|
70
|
+
|
|
71
|
+
----------------------------------------
|
|
72
|
+
Agentica Setup Wizard
|
|
73
|
+
----------------------------------------
|
|
74
|
+
? Package Manager (use arrow keys)
|
|
75
|
+
> npm
|
|
76
|
+
pnpm
|
|
77
|
+
yarn (berry is not supported)
|
|
78
|
+
? Project Type
|
|
79
|
+
NodeJS Agent Server
|
|
80
|
+
> NestJS Agent Server
|
|
81
|
+
React Client Application
|
|
82
|
+
Standalone Application
|
|
83
|
+
? Embedded Controllers (multi-selectable)
|
|
84
|
+
(none)
|
|
85
|
+
Google Calendar
|
|
86
|
+
Google News
|
|
87
|
+
> Github
|
|
88
|
+
Reddit
|
|
89
|
+
Slack
|
|
90
|
+
...
|
|
91
|
+
```
|
|
176
92
|
|
|
177
|
-
|
|
93
|
+
The setup wizard helps you create a new project tailored to your needs.
|
|
178
94
|
|
|
179
|
-
|
|
95
|
+
For reference, when selecting a project type, any option other than "Standalone Application" will implement the [WebSocket Protocol](https://wrtnlabs.io/agentica/docs/websocket/) for client-server communication.
|
|
180
96
|
|
|
181
|
-
|
|
97
|
+
For comprehensive setup instructions, visit our [Getting Started](https://wrtnlabs.io/agentica/docs/) guide.
|
|
182
98
|
|
|
183
|
-
|
|
184
|
-
>
|
|
185
|
-
> - [Benchmark Report](https://github.com/wrtnlabs/agentica/tree/main/test/examples/benchmarks/call)
|
|
186
|
-
> - Swagger Document: https://shopping-be.wrtn.ai/editor
|
|
187
|
-
> - Repository: https://github.com/wrtnlabs/shopping-backend
|
|
99
|
+
## 💻 Playground
|
|
188
100
|
|
|
189
|
-
|
|
190
|
-
import fs from "node:fs";
|
|
191
|
-
import path from "node:path";
|
|
101
|
+
Experience Agentica firsthand through our [interactive playground](https://wrtnlabs.io/agentica/playground) before installing.
|
|
192
102
|
|
|
193
|
-
|
|
194
|
-
import { Agentica, IAgenticaOperation } from "@agentica/core";
|
|
195
|
-
import { HttpLlm, IHttpConnection, OpenApi } from "@samchon/openapi";
|
|
196
|
-
import OpenAI from "openai";
|
|
103
|
+
Our demonstrations showcase the power and simplicity of Agentica's function calling capabilities across different integration methods.
|
|
197
104
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
model: "chatgpt",
|
|
202
|
-
vendor: {
|
|
203
|
-
api: new OpenAI({
|
|
204
|
-
apiKey: "YOUR_OPENAI_API_KEY",
|
|
205
|
-
}),
|
|
206
|
-
model: "gpt-4o-mini",
|
|
207
|
-
},
|
|
208
|
-
controllers: [
|
|
209
|
-
{
|
|
210
|
-
protocol: "http",
|
|
211
|
-
name: "shopping",
|
|
212
|
-
application: HttpLlm.application({
|
|
213
|
-
model: "chatgpt",
|
|
214
|
-
document: await fetch(
|
|
215
|
-
"https://shopping-be.wrtn.ai/editor/swagger.json",
|
|
216
|
-
).then(res => res.json()),
|
|
217
|
-
}),
|
|
218
|
-
connection: {
|
|
219
|
-
host: "https://shopping-be.wrtn.ai",
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
],
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
// DO BENCHMARK
|
|
226
|
-
const find = (method: OpenApi.Method, path: string): IAgenticaOperation => {
|
|
227
|
-
const found = agent
|
|
228
|
-
.getOperations()
|
|
229
|
-
.find(
|
|
230
|
-
op =>
|
|
231
|
-
op.protocol === "http"
|
|
232
|
-
&& op.function.method === method
|
|
233
|
-
&& op.function.path === path,
|
|
234
|
-
);
|
|
235
|
-
if (!found) {
|
|
236
|
-
throw new Error(`Operation not found: ${method} ${path}`);
|
|
237
|
-
}
|
|
238
|
-
return found;
|
|
239
|
-
};
|
|
240
|
-
const benchmark: AgenticaSelectBenchmark<"chatgpt">
|
|
241
|
-
= new AgenticaSelectBenchmark({
|
|
242
|
-
agent,
|
|
243
|
-
config: {
|
|
244
|
-
repeat: 4,
|
|
245
|
-
},
|
|
246
|
-
scenarios: [
|
|
247
|
-
{
|
|
248
|
-
name: "order",
|
|
249
|
-
text: [
|
|
250
|
-
"I wanna see every sales in the shopping mall",
|
|
251
|
-
"",
|
|
252
|
-
"And then show me the detailed information about the Macbook.",
|
|
253
|
-
"",
|
|
254
|
-
"After that, select the most expensive stock",
|
|
255
|
-
"from the Macbook, and put it into my shopping cart.",
|
|
256
|
-
"And take the shopping cart to the order.",
|
|
257
|
-
"",
|
|
258
|
-
"At last, I'll publish it by cash payment, and my address is",
|
|
259
|
-
"",
|
|
260
|
-
" - country: South Korea",
|
|
261
|
-
" - city/province: Seoul",
|
|
262
|
-
" - department: Wrtn Apartment",
|
|
263
|
-
" - Possession: 101-1411",
|
|
264
|
-
].join("\n"),
|
|
265
|
-
expected: {
|
|
266
|
-
type: "array",
|
|
267
|
-
items: [
|
|
268
|
-
{
|
|
269
|
-
type: "standalone",
|
|
270
|
-
operation: find("patch", "/shoppings/customers/sales"),
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
type: "standalone",
|
|
274
|
-
operation: find("get", "/shoppings/customers/sales/{id}"),
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
type: "anyOf",
|
|
278
|
-
anyOf: [
|
|
279
|
-
{
|
|
280
|
-
type: "standalone",
|
|
281
|
-
operation: find("post", "/shoppings/customers/orders"),
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
type: "standalone",
|
|
285
|
-
operation: find("post", "/shoppings/customers/orders/direct"),
|
|
286
|
-
},
|
|
287
|
-
],
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
type: "standalone",
|
|
291
|
-
operation: find(
|
|
292
|
-
"post",
|
|
293
|
-
"/shoppings/customers/orders/{orderId}/publish",
|
|
294
|
-
),
|
|
295
|
-
},
|
|
296
|
-
],
|
|
297
|
-
},
|
|
298
|
-
},
|
|
299
|
-
],
|
|
300
|
-
});
|
|
301
|
-
await benchmark.execute();
|
|
302
|
-
|
|
303
|
-
// REPORT
|
|
304
|
-
const docs: Record<string, string> = benchmark.report();
|
|
305
|
-
const root: string = `docs/benchmarks/call`;
|
|
306
|
-
|
|
307
|
-
await rmdir(root);
|
|
308
|
-
for (const [key, value] of Object.entries(docs)) {
|
|
309
|
-
await mkdir(path.join(root, key.split("/").slice(0, -1).join("/")));
|
|
310
|
-
await fs.promises.writeFile(path.join(root, key), value, "utf8");
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
```
|
|
105
|
+
- [TypeScript Class](https://wrtnlabs.io/agentica/playground/bbs)
|
|
106
|
+
- [Swagger/OpenAPI Document](https://wrtnlabs.io/agentica/playground/swagger)
|
|
107
|
+
- [Enterprise E-commerce Agent](https://wrtnlabs.io/agentica/playground/shopping)
|
|
314
108
|
|
|
315
|
-
|
|
109
|
+
<!--
|
|
110
|
+
@todo this section would be changed after making tutorial playground
|
|
111
|
+
-->
|
|
316
112
|
|
|
317
|
-
|
|
113
|
+
## 📚 Documentation Resources
|
|
318
114
|
|
|
319
|
-
|
|
115
|
+
Find comprehensive resources at our [official website](https://wrtnlabs.io/agentica).
|
|
320
116
|
|
|
321
|
-
|
|
117
|
+
- [Home](https://wrtnlabs.io/agentica)
|
|
118
|
+
- [Guide Documents](https://wrtnlabs.io/agentica/docs)
|
|
119
|
+
- [Tutorial](https://wrtnlabs.io/agentica/tutorial)
|
|
120
|
+
- [API Documents](https://wrtnlabs.io/agentica/api)
|
|
121
|
+
- [Youtube](https://www.youtube.com/@wrtnlabs)
|
|
122
|
+
- [Paper](https://wrtnlabs.io/agentica/paper)
|
|
322
123
|
|
|
323
|
-
|
|
124
|
+
## 🌟 Why Agentica?
|
|
324
125
|
|
|
325
|
-
|
|
126
|
+
```mermaid
|
|
127
|
+
flowchart
|
|
128
|
+
subgraph "JSON Schema Specification"
|
|
129
|
+
schemav4("JSON Schema v4 ~ v7") --upgrades--> emended[["OpenAPI v3.1 (emended)"]]
|
|
130
|
+
schema2910("JSON Schema 2019-03") --upgrades--> emended
|
|
131
|
+
schema2020("JSON Schema 2020-12") --emends--> emended
|
|
132
|
+
end
|
|
133
|
+
subgraph "Agentica"
|
|
134
|
+
emended --"Artificial Intelligence"--> fc{{"AI Function Calling"}}
|
|
135
|
+
fc --"OpenAI"--> chatgpt("ChatGPT")
|
|
136
|
+
fc --"Google"--> gemini("Gemini")
|
|
137
|
+
fc --"Anthropic"--> claude("Claude")
|
|
138
|
+
fc --"High-Flyer"--> deepseek("DeepSeek")
|
|
139
|
+
fc --"Meta"--> llama("Llama")
|
|
140
|
+
chatgpt --"3.1"--> custom(["Custom JSON Schema"])
|
|
141
|
+
gemini --"3.0"--> custom(["Custom JSON Schema"])
|
|
142
|
+
claude --"3.1"--> standard(["Standard JSON Schema"])
|
|
143
|
+
deepseek --"3.1"--> standard
|
|
144
|
+
llama --"3.1"--> standard
|
|
145
|
+
end
|
|
146
|
+
```
|
|
326
147
|
|
|
327
|
-
|
|
148
|
+
Agentica enhances AI function calling by the following strategies:
|
|
328
149
|
|
|
329
|
-
|
|
150
|
+
- [**Compiler Driven Development**](https://wrtnlabs.io/agentica/docs/concepts/compiler-driven-development): constructs function calling schema automatically by compiler skills without hand-writing.
|
|
151
|
+
- [**JSON Schema Conversion**](https://wrtnlabs.io/agentica/docs/core/vendor/#schema-specification): automatically handles specification differences between LLM vendors, ensuring seamless integration regardless of your chosen AI model.
|
|
152
|
+
- [**Validation Feedback**](https://wrtnlabs.io/agentica/docs/concepts/function-calling#validation-feedback): detects and corrects AI mistakes in argument composition, dramatically reducing errors and improving reliability.
|
|
153
|
+
- [**Selector Agent**](https://wrtnlabs.io/agentica/docs/concepts/function-calling#orchestration-strategy): filtering candidate functions to minimize context usage, optimize performance, and reduce token consumption.
|
|
330
154
|
|
|
331
|
-
|
|
155
|
+
Thanks to these innovations, Agentica makes AI function calling easier, safer, and more accurate than before. Development becomes more intuitive since you only need to prepare functions relevant to your specific use case, and scaling your agent's capabilities is as simple as adding or removing functions.
|
|
332
156
|
|
|
333
|
-
|
|
157
|
+
In 2023, when OpenAI announced function calling, many predicted that function calling-driven AI development would become the mainstream. However, in reality, due to the difficulty and instability of function calling, the trend in AI development became agent workflow. Agent workflow, which is inflexible and must be created for specific purposes, has conquered the AI agent ecosystem.
|
|
158
|
+
By the way, as Agentica has resolved the difficulty and instability problems of function calling, the time has come to embrace function-driven AI development once again.
|
|
334
159
|
|
|
335
|
-
|
|
160
|
+
| Type | Workflow | Vanilla Function Calling | Agentica Function Calling |
|
|
161
|
+
| ----------- | ------------- | ------------------------ | ------------------------- |
|
|
162
|
+
| Purpose | ❌ Specific | 🟢 General | 🟢 General |
|
|
163
|
+
| Difficulty | ❌ Difficult | ❌ Difficult | 🟢 Easy |
|
|
164
|
+
| Stability | 🟢 Stable | ❌ Unstable | 🟢 Stable |
|
|
165
|
+
| Flexibility | ❌ Inflexible | 🟢 Flexible | 🟢 Flexible |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentica/benchmark",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "Agentic AI Library specialized in LLM Function Calling",
|
|
5
5
|
"author": "Wrtn Technologies",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"src"
|
|
36
36
|
],
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@agentica/core": "^0.
|
|
38
|
+
"@agentica/core": "^0.21.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@samchon/openapi": "^4.2.0",
|
|
42
42
|
"openai": "^4.80.0",
|
|
43
43
|
"tstl": "^3.0.0",
|
|
44
44
|
"typia": "^9.0.1",
|
|
45
|
-
"@agentica/core": "^0.
|
|
45
|
+
"@agentica/core": "^0.21.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@rollup/plugin-terser": "^0.4.4",
|