agentnet 0.0.1 → 0.0.2
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 +265 -380
- package/_OLD_README.md +554 -0
- package/assets/network01.png +0 -0
- package/examples/customer-support/README.md +66 -0
- package/examples/customer-support/agents.yaml +457 -0
- package/examples/customer-support/index.js +408 -0
- package/examples/event-planner/README.md +69 -0
- package/examples/event-planner/agents.yaml +318 -0
- package/examples/event-planner/index.js +547 -0
- package/{src/examples → examples/smartness}/agents-smartness.yaml +8 -17
- package/{src/examples/def3.js → examples/smartness/index.js} +9 -9
- package/package.json +2 -2
- package/src/agent/agent.js +9 -1
- package/src/agent/runtime.js +2 -2
- package/src/agent/runtimes/nats.js +154 -27
- package/src/llm/gemini.js +7 -2
- package/src/llm/gpt.js +6 -1
- package/src/store/store.js +82 -48
- package/src/examples/agents.yaml +0 -394
- package/src/examples/def.js +0 -74
- package/src/examples/def2.js +0 -65
- /package/{src/examples → examples/simple}/simple.js +0 -0
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
---
|
|
2
|
+
apiVersion: smartagent.io/v1alpha1
|
|
3
|
+
kind: AgentDefinition
|
|
4
|
+
metadata:
|
|
5
|
+
name: triageAgent
|
|
6
|
+
namespace: customerSupport
|
|
7
|
+
spec:
|
|
8
|
+
io:
|
|
9
|
+
- type: NatsIO
|
|
10
|
+
bindings:
|
|
11
|
+
discoveryTopic: customerSupport.discovery
|
|
12
|
+
acceptedNetworks:
|
|
13
|
+
- "customerSupport.*"
|
|
14
|
+
store:
|
|
15
|
+
type: Memory
|
|
16
|
+
llm:
|
|
17
|
+
provider: Gemini
|
|
18
|
+
model: gemini-2.0-flash
|
|
19
|
+
systemInstruction: |
|
|
20
|
+
You are a customer support triage agent. Your role is to:
|
|
21
|
+
1. Greet customers professionally and warmly
|
|
22
|
+
2. Understand their query or issue
|
|
23
|
+
3. Categorize their inquiry accurately
|
|
24
|
+
4. Route them to the appropriate specialized agent
|
|
25
|
+
|
|
26
|
+
Categories include:
|
|
27
|
+
- Product questions (features, specs, compatibility)
|
|
28
|
+
- Technical issues (setup problems, bugs, troubleshooting)
|
|
29
|
+
- Billing concerns (payments, subscriptions, refunds)
|
|
30
|
+
- Complex issues requiring special attention
|
|
31
|
+
|
|
32
|
+
Make the customer feel heard and ensure their issue is sent to the right specialist.
|
|
33
|
+
config:
|
|
34
|
+
temperature: 0.3
|
|
35
|
+
toolConfig:
|
|
36
|
+
functionCallingConfig:
|
|
37
|
+
mode: 'auto'
|
|
38
|
+
|
|
39
|
+
tools:
|
|
40
|
+
- name: categorizeQuery
|
|
41
|
+
description: Analyze a customer query and determine its category
|
|
42
|
+
parameters:
|
|
43
|
+
type: object
|
|
44
|
+
properties:
|
|
45
|
+
query:
|
|
46
|
+
type: string
|
|
47
|
+
description: The customer's full query or issue description
|
|
48
|
+
required:
|
|
49
|
+
- query
|
|
50
|
+
|
|
51
|
+
- name: routeToAgent
|
|
52
|
+
description: Route the customer to the appropriate specialized agent
|
|
53
|
+
parameters:
|
|
54
|
+
type: object
|
|
55
|
+
properties:
|
|
56
|
+
category:
|
|
57
|
+
type: string
|
|
58
|
+
description: The category of the customer's query (product, technical, billing, complex)
|
|
59
|
+
queryId:
|
|
60
|
+
type: string
|
|
61
|
+
description: Unique identifier for this customer query
|
|
62
|
+
customerInfo:
|
|
63
|
+
type: object
|
|
64
|
+
description: Customer information if available
|
|
65
|
+
required:
|
|
66
|
+
- category
|
|
67
|
+
- queryId
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
apiVersion: smartagent.io/v1alpha1
|
|
71
|
+
kind: AgentDefinition
|
|
72
|
+
metadata:
|
|
73
|
+
name: productAgent
|
|
74
|
+
namespace: customerSupport
|
|
75
|
+
spec:
|
|
76
|
+
io:
|
|
77
|
+
- type: NatsIO
|
|
78
|
+
bindings:
|
|
79
|
+
discoveryTopic: customerSupport.discovery
|
|
80
|
+
store:
|
|
81
|
+
type: Memory
|
|
82
|
+
llm:
|
|
83
|
+
provider: Gemini
|
|
84
|
+
model: gemini-2.0-flash
|
|
85
|
+
systemInstruction: |
|
|
86
|
+
You are a product specialist agent in customer support. Your role is to:
|
|
87
|
+
1. Answer questions about product features and specifications
|
|
88
|
+
2. Explain product compatibility with other systems
|
|
89
|
+
3. Help customers understand product capabilities
|
|
90
|
+
4. Suggest the right product based on customer needs
|
|
91
|
+
|
|
92
|
+
Be knowledgeable, accurate, and helpful. If a question falls outside your expertise,
|
|
93
|
+
suggest routing to a more appropriate agent.
|
|
94
|
+
config:
|
|
95
|
+
temperature: 0.3
|
|
96
|
+
toolConfig:
|
|
97
|
+
functionCallingConfig:
|
|
98
|
+
mode: 'auto'
|
|
99
|
+
|
|
100
|
+
tools:
|
|
101
|
+
- name: getProductInfo
|
|
102
|
+
description: Retrieve information about a specific product
|
|
103
|
+
parameters:
|
|
104
|
+
type: object
|
|
105
|
+
properties:
|
|
106
|
+
productId:
|
|
107
|
+
type: string
|
|
108
|
+
description: The ID of the product to get information about
|
|
109
|
+
infoType:
|
|
110
|
+
type: string
|
|
111
|
+
description: The type of information needed (specs, features, compatibility)
|
|
112
|
+
required:
|
|
113
|
+
- productId
|
|
114
|
+
|
|
115
|
+
- name: compareProducts
|
|
116
|
+
description: Compare features between multiple products
|
|
117
|
+
parameters:
|
|
118
|
+
type: object
|
|
119
|
+
properties:
|
|
120
|
+
productIds:
|
|
121
|
+
type: array
|
|
122
|
+
items:
|
|
123
|
+
type: string
|
|
124
|
+
description: Array of product IDs to compare
|
|
125
|
+
required:
|
|
126
|
+
- productIds
|
|
127
|
+
|
|
128
|
+
discoverySchemas:
|
|
129
|
+
- name: product_agent_query
|
|
130
|
+
description: Handle product-related customer inquiries
|
|
131
|
+
parameters:
|
|
132
|
+
type: object
|
|
133
|
+
properties:
|
|
134
|
+
question:
|
|
135
|
+
type: string
|
|
136
|
+
description: The customer's product-related question
|
|
137
|
+
productContext:
|
|
138
|
+
type: object
|
|
139
|
+
description: Additional context about the products being discussed
|
|
140
|
+
required:
|
|
141
|
+
- question
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
apiVersion: smartagent.io/v1alpha1
|
|
145
|
+
kind: AgentDefinition
|
|
146
|
+
metadata:
|
|
147
|
+
name: technicalAgent
|
|
148
|
+
namespace: customerSupport
|
|
149
|
+
spec:
|
|
150
|
+
io:
|
|
151
|
+
- type: NatsIO
|
|
152
|
+
bindings:
|
|
153
|
+
discoveryTopic: customerSupport.discovery
|
|
154
|
+
store:
|
|
155
|
+
type: Memory
|
|
156
|
+
llm:
|
|
157
|
+
provider: Gemini
|
|
158
|
+
model: gemini-2.0-flash
|
|
159
|
+
systemInstruction: |
|
|
160
|
+
You are a technical support specialist agent. Your role is to:
|
|
161
|
+
1. Help troubleshoot technical issues with products
|
|
162
|
+
2. Guide customers through setup and configuration
|
|
163
|
+
3. Diagnose problems and suggest solutions
|
|
164
|
+
4. Provide step-by-step technical instructions
|
|
165
|
+
|
|
166
|
+
Be patient, thorough, and explain technical concepts clearly. If an issue is
|
|
167
|
+
particularly complex, consider escalating to the escalation agent.
|
|
168
|
+
config:
|
|
169
|
+
temperature: 0.3
|
|
170
|
+
toolConfig:
|
|
171
|
+
functionCallingConfig:
|
|
172
|
+
mode: 'auto'
|
|
173
|
+
|
|
174
|
+
tools:
|
|
175
|
+
- name: troubleshootIssue
|
|
176
|
+
description: Analyze a technical issue and provide troubleshooting steps
|
|
177
|
+
parameters:
|
|
178
|
+
type: object
|
|
179
|
+
properties:
|
|
180
|
+
issueDescription:
|
|
181
|
+
type: string
|
|
182
|
+
description: Description of the technical issue
|
|
183
|
+
productId:
|
|
184
|
+
type: string
|
|
185
|
+
description: The ID of the product having issues
|
|
186
|
+
systemInfo:
|
|
187
|
+
type: object
|
|
188
|
+
description: Customer's system information if available
|
|
189
|
+
required:
|
|
190
|
+
- issueDescription
|
|
191
|
+
|
|
192
|
+
- name: checkKnownIssues
|
|
193
|
+
description: Check if the reported issue matches any known issues
|
|
194
|
+
parameters:
|
|
195
|
+
type: object
|
|
196
|
+
properties:
|
|
197
|
+
symptoms:
|
|
198
|
+
type: array
|
|
199
|
+
items:
|
|
200
|
+
type: string
|
|
201
|
+
description: List of symptoms or error messages
|
|
202
|
+
productId:
|
|
203
|
+
type: string
|
|
204
|
+
description: The ID of the product
|
|
205
|
+
required:
|
|
206
|
+
- symptoms
|
|
207
|
+
|
|
208
|
+
discoverySchemas:
|
|
209
|
+
- name: technical_agent_query
|
|
210
|
+
description: Handle technical support issues and troubleshooting
|
|
211
|
+
parameters:
|
|
212
|
+
type: object
|
|
213
|
+
properties:
|
|
214
|
+
issue:
|
|
215
|
+
type: string
|
|
216
|
+
description: Description of the technical issue
|
|
217
|
+
productInfo:
|
|
218
|
+
type: object
|
|
219
|
+
description: Information about the product having issues
|
|
220
|
+
required:
|
|
221
|
+
- issue
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
apiVersion: smartagent.io/v1alpha1
|
|
225
|
+
kind: AgentDefinition
|
|
226
|
+
metadata:
|
|
227
|
+
name: billingAgent
|
|
228
|
+
namespace: customerSupport
|
|
229
|
+
spec:
|
|
230
|
+
io:
|
|
231
|
+
- type: NatsIO
|
|
232
|
+
bindings:
|
|
233
|
+
discoveryTopic: customerSupport.discovery
|
|
234
|
+
store:
|
|
235
|
+
type: Memory
|
|
236
|
+
llm:
|
|
237
|
+
provider: Gemini
|
|
238
|
+
model: gemini-2.0-flash
|
|
239
|
+
systemInstruction: |
|
|
240
|
+
You are a billing and accounts specialist agent. Your role is to:
|
|
241
|
+
1. Help with payment-related inquiries
|
|
242
|
+
2. Address subscription concerns
|
|
243
|
+
3. Process refund requests
|
|
244
|
+
4. Explain billing policies and procedures
|
|
245
|
+
|
|
246
|
+
Be accurate, discreet, and helpful with financial matters. Maintain customer privacy
|
|
247
|
+
and security when discussing account details.
|
|
248
|
+
config:
|
|
249
|
+
temperature: 0.3
|
|
250
|
+
toolConfig:
|
|
251
|
+
functionCallingConfig:
|
|
252
|
+
mode: 'auto'
|
|
253
|
+
|
|
254
|
+
tools:
|
|
255
|
+
- name: getAccountInfo
|
|
256
|
+
description: Retrieve a customer's account information
|
|
257
|
+
parameters:
|
|
258
|
+
type: object
|
|
259
|
+
properties:
|
|
260
|
+
customerId:
|
|
261
|
+
type: string
|
|
262
|
+
description: The customer's unique identifier
|
|
263
|
+
infoType:
|
|
264
|
+
type: string
|
|
265
|
+
description: Type of account info needed (payment history, subscription details, etc.)
|
|
266
|
+
required:
|
|
267
|
+
- customerId
|
|
268
|
+
|
|
269
|
+
- name: processRefund
|
|
270
|
+
description: Process a refund request
|
|
271
|
+
parameters:
|
|
272
|
+
type: object
|
|
273
|
+
properties:
|
|
274
|
+
orderId:
|
|
275
|
+
type: string
|
|
276
|
+
description: The order ID for the purchase to be refunded
|
|
277
|
+
reason:
|
|
278
|
+
type: string
|
|
279
|
+
description: Reason for the refund request
|
|
280
|
+
fullRefund:
|
|
281
|
+
type: boolean
|
|
282
|
+
description: Whether a full or partial refund is requested
|
|
283
|
+
required:
|
|
284
|
+
- orderId
|
|
285
|
+
- reason
|
|
286
|
+
|
|
287
|
+
discoverySchemas:
|
|
288
|
+
- name: billing_agent_query
|
|
289
|
+
description: Handle billing, payment, and subscription inquiries
|
|
290
|
+
parameters:
|
|
291
|
+
type: object
|
|
292
|
+
properties:
|
|
293
|
+
question:
|
|
294
|
+
type: string
|
|
295
|
+
description: The customer's billing-related question
|
|
296
|
+
accountContext:
|
|
297
|
+
type: object
|
|
298
|
+
description: Additional context about the customer's account
|
|
299
|
+
required:
|
|
300
|
+
- question
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
apiVersion: smartagent.io/v1alpha1
|
|
304
|
+
kind: AgentDefinition
|
|
305
|
+
metadata:
|
|
306
|
+
name: escalationAgent
|
|
307
|
+
namespace: customerSupport
|
|
308
|
+
spec:
|
|
309
|
+
io:
|
|
310
|
+
- type: NatsIO
|
|
311
|
+
bindings:
|
|
312
|
+
discoveryTopic: customerSupport.discovery
|
|
313
|
+
store:
|
|
314
|
+
type: Memory
|
|
315
|
+
llm:
|
|
316
|
+
provider: Gemini
|
|
317
|
+
model: gemini-2.0-flash
|
|
318
|
+
systemInstruction: |
|
|
319
|
+
You are an escalation specialist agent for complex support issues. Your role is to:
|
|
320
|
+
1. Handle difficult or unique customer problems
|
|
321
|
+
2. Address issues that couldn't be resolved by other agents
|
|
322
|
+
3. Provide specialized expertise for complex scenarios
|
|
323
|
+
4. Coordinate with multiple teams when necessary
|
|
324
|
+
|
|
325
|
+
You have a deeper level of access and authority. Be thorough, patient, and
|
|
326
|
+
focus on resolution even for the most challenging issues.
|
|
327
|
+
config:
|
|
328
|
+
temperature: 0.3
|
|
329
|
+
toolConfig:
|
|
330
|
+
functionCallingConfig:
|
|
331
|
+
mode: 'auto'
|
|
332
|
+
|
|
333
|
+
tools:
|
|
334
|
+
- name: analyzeComplexIssue
|
|
335
|
+
description: Analyze a complex customer issue that requires special handling
|
|
336
|
+
parameters:
|
|
337
|
+
type: object
|
|
338
|
+
properties:
|
|
339
|
+
issueDescription:
|
|
340
|
+
type: string
|
|
341
|
+
description: Detailed description of the complex issue
|
|
342
|
+
previousAttempts:
|
|
343
|
+
type: array
|
|
344
|
+
items:
|
|
345
|
+
type: object
|
|
346
|
+
description: Previous attempts to resolve the issue
|
|
347
|
+
customerHistory:
|
|
348
|
+
type: object
|
|
349
|
+
description: Relevant customer history
|
|
350
|
+
required:
|
|
351
|
+
- issueDescription
|
|
352
|
+
|
|
353
|
+
- name: createSpecializedSolution
|
|
354
|
+
description: Create a customized solution for a complex issue
|
|
355
|
+
parameters:
|
|
356
|
+
type: object
|
|
357
|
+
properties:
|
|
358
|
+
issueId:
|
|
359
|
+
type: string
|
|
360
|
+
description: ID of the complex issue
|
|
361
|
+
approachType:
|
|
362
|
+
type: string
|
|
363
|
+
description: Type of approach to use for the solution
|
|
364
|
+
required:
|
|
365
|
+
- issueId
|
|
366
|
+
|
|
367
|
+
discoverySchemas:
|
|
368
|
+
- name: escalation_agent_query
|
|
369
|
+
description: Handle complex, escalated customer support issues
|
|
370
|
+
parameters:
|
|
371
|
+
type: object
|
|
372
|
+
properties:
|
|
373
|
+
complexIssue:
|
|
374
|
+
type: string
|
|
375
|
+
description: Description of the complex issue requiring escalation
|
|
376
|
+
history:
|
|
377
|
+
type: object
|
|
378
|
+
description: History of previous support attempts
|
|
379
|
+
required:
|
|
380
|
+
- complexIssue
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
apiVersion: smartagent.io/v1alpha1
|
|
384
|
+
kind: AgentDefinition
|
|
385
|
+
metadata:
|
|
386
|
+
name: followupAgent
|
|
387
|
+
namespace: customerSupport
|
|
388
|
+
spec:
|
|
389
|
+
io:
|
|
390
|
+
- type: NatsIO
|
|
391
|
+
bindings:
|
|
392
|
+
discoveryTopic: customerSupport.discovery
|
|
393
|
+
store:
|
|
394
|
+
type: Memory
|
|
395
|
+
llm:
|
|
396
|
+
provider: Gemini
|
|
397
|
+
model: gemini-2.0-flash
|
|
398
|
+
systemInstruction: |
|
|
399
|
+
You are a customer follow-up specialist agent. Your role is to:
|
|
400
|
+
1. Check in with customers after their issues have been addressed
|
|
401
|
+
2. Verify that solutions were satisfactory
|
|
402
|
+
3. Collect feedback on the support experience
|
|
403
|
+
4. Identify any remaining concerns
|
|
404
|
+
|
|
405
|
+
Be personable, appreciative of their time, and genuinely interested in their
|
|
406
|
+
satisfaction. If new issues are found, route them back to the triage agent.
|
|
407
|
+
config:
|
|
408
|
+
temperature: 0.3
|
|
409
|
+
toolConfig:
|
|
410
|
+
functionCallingConfig:
|
|
411
|
+
mode: 'auto'
|
|
412
|
+
|
|
413
|
+
tools:
|
|
414
|
+
- name: checkResolutionStatus
|
|
415
|
+
description: Check if a customer issue was fully resolved
|
|
416
|
+
parameters:
|
|
417
|
+
type: object
|
|
418
|
+
properties:
|
|
419
|
+
caseId:
|
|
420
|
+
type: string
|
|
421
|
+
description: The case ID for the support interaction
|
|
422
|
+
required:
|
|
423
|
+
- caseId
|
|
424
|
+
|
|
425
|
+
- name: recordFeedback
|
|
426
|
+
description: Record customer feedback on their support experience
|
|
427
|
+
parameters:
|
|
428
|
+
type: object
|
|
429
|
+
properties:
|
|
430
|
+
caseId:
|
|
431
|
+
type: string
|
|
432
|
+
description: The case ID for the support interaction
|
|
433
|
+
feedbackType:
|
|
434
|
+
type: string
|
|
435
|
+
description: Type of feedback (satisfaction rating, comments, suggestions)
|
|
436
|
+
feedbackContent:
|
|
437
|
+
type: string
|
|
438
|
+
description: The actual feedback provided by the customer
|
|
439
|
+
required:
|
|
440
|
+
- caseId
|
|
441
|
+
- feedbackType
|
|
442
|
+
- feedbackContent
|
|
443
|
+
|
|
444
|
+
discoverySchemas:
|
|
445
|
+
- name: followup_agent_query
|
|
446
|
+
description: Follow up with customers after support interactions
|
|
447
|
+
parameters:
|
|
448
|
+
type: object
|
|
449
|
+
properties:
|
|
450
|
+
caseId:
|
|
451
|
+
type: string
|
|
452
|
+
description: The case ID to follow up on
|
|
453
|
+
interactionSummary:
|
|
454
|
+
type: string
|
|
455
|
+
description: Summary of the previous support interaction
|
|
456
|
+
required:
|
|
457
|
+
- caseId
|