@falai/agent 0.6.2 → 0.6.4

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.
Files changed (128) hide show
  1. package/README.md +89 -56
  2. package/dist/cjs/constants/index.d.ts +6 -1
  3. package/dist/cjs/constants/index.d.ts.map +1 -1
  4. package/dist/cjs/constants/index.js +8 -3
  5. package/dist/cjs/constants/index.js.map +1 -1
  6. package/dist/cjs/core/Agent.d.ts +22 -0
  7. package/dist/cjs/core/Agent.d.ts.map +1 -1
  8. package/dist/cjs/core/Agent.js +108 -21
  9. package/dist/cjs/core/Agent.js.map +1 -1
  10. package/dist/cjs/core/Events.d.ts +13 -0
  11. package/dist/cjs/core/Events.d.ts.map +1 -1
  12. package/dist/cjs/core/Events.js +28 -14
  13. package/dist/cjs/core/Events.js.map +1 -1
  14. package/dist/cjs/core/Route.d.ts.map +1 -1
  15. package/dist/cjs/core/Route.js +4 -4
  16. package/dist/cjs/core/Route.js.map +1 -1
  17. package/dist/cjs/core/RoutingEngine.d.ts +6 -1
  18. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
  19. package/dist/cjs/core/RoutingEngine.js +112 -37
  20. package/dist/cjs/core/RoutingEngine.js.map +1 -1
  21. package/dist/cjs/core/State.d.ts +15 -5
  22. package/dist/cjs/core/State.d.ts.map +1 -1
  23. package/dist/cjs/core/State.js +24 -5
  24. package/dist/cjs/core/State.js.map +1 -1
  25. package/dist/cjs/core/Tool.d.ts +8 -1
  26. package/dist/cjs/core/Tool.d.ts.map +1 -1
  27. package/dist/cjs/core/Tool.js +25 -28
  28. package/dist/cjs/core/Tool.js.map +1 -1
  29. package/dist/cjs/core/Transition.js +1 -1
  30. package/dist/cjs/index.d.ts +1 -1
  31. package/dist/cjs/index.d.ts.map +1 -1
  32. package/dist/cjs/index.js +3 -2
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/cjs/types/agent.d.ts +5 -0
  35. package/dist/cjs/types/agent.d.ts.map +1 -1
  36. package/dist/cjs/types/agent.js.map +1 -1
  37. package/dist/cjs/types/route.d.ts +7 -1
  38. package/dist/cjs/types/route.d.ts.map +1 -1
  39. package/dist/cjs/types/session.d.ts +12 -1
  40. package/dist/cjs/types/session.d.ts.map +1 -1
  41. package/dist/cjs/types/session.js +26 -5
  42. package/dist/cjs/types/session.js.map +1 -1
  43. package/dist/cjs/utils/logger.d.ts +10 -0
  44. package/dist/cjs/utils/logger.d.ts.map +1 -0
  45. package/dist/cjs/utils/logger.js +23 -0
  46. package/dist/cjs/utils/logger.js.map +1 -0
  47. package/dist/constants/index.d.ts +6 -1
  48. package/dist/constants/index.d.ts.map +1 -1
  49. package/dist/constants/index.js +6 -1
  50. package/dist/constants/index.js.map +1 -1
  51. package/dist/core/Agent.d.ts +22 -0
  52. package/dist/core/Agent.d.ts.map +1 -1
  53. package/dist/core/Agent.js +108 -21
  54. package/dist/core/Agent.js.map +1 -1
  55. package/dist/core/Events.d.ts +13 -0
  56. package/dist/core/Events.d.ts.map +1 -1
  57. package/dist/core/Events.js +28 -14
  58. package/dist/core/Events.js.map +1 -1
  59. package/dist/core/Route.d.ts.map +1 -1
  60. package/dist/core/Route.js +4 -4
  61. package/dist/core/Route.js.map +1 -1
  62. package/dist/core/RoutingEngine.d.ts +6 -1
  63. package/dist/core/RoutingEngine.d.ts.map +1 -1
  64. package/dist/core/RoutingEngine.js +112 -37
  65. package/dist/core/RoutingEngine.js.map +1 -1
  66. package/dist/core/State.d.ts +15 -5
  67. package/dist/core/State.d.ts.map +1 -1
  68. package/dist/core/State.js +25 -6
  69. package/dist/core/State.js.map +1 -1
  70. package/dist/core/Tool.d.ts +8 -1
  71. package/dist/core/Tool.d.ts.map +1 -1
  72. package/dist/core/Tool.js +25 -28
  73. package/dist/core/Tool.js.map +1 -1
  74. package/dist/core/Transition.js +1 -1
  75. package/dist/index.d.ts +1 -1
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +1 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/types/agent.d.ts +5 -0
  80. package/dist/types/agent.d.ts.map +1 -1
  81. package/dist/types/agent.js.map +1 -1
  82. package/dist/types/route.d.ts +7 -1
  83. package/dist/types/route.d.ts.map +1 -1
  84. package/dist/types/session.d.ts +12 -1
  85. package/dist/types/session.d.ts.map +1 -1
  86. package/dist/types/session.js +26 -5
  87. package/dist/types/session.js.map +1 -1
  88. package/dist/utils/logger.d.ts +10 -0
  89. package/dist/utils/logger.d.ts.map +1 -0
  90. package/dist/utils/logger.js +17 -0
  91. package/dist/utils/logger.js.map +1 -0
  92. package/docs/{CONSTRUCTOR_OPTIONS.md → AGENT.md} +79 -7
  93. package/docs/API_REFERENCE.md +309 -18
  94. package/docs/ARCHITECTURE.md +1 -1
  95. package/docs/DOCS.md +46 -22
  96. package/docs/GETTING_STARTED.md +1 -1
  97. package/docs/README.md +13 -5
  98. package/docs/ROUTES.md +743 -0
  99. package/docs/STATES.md +798 -0
  100. package/examples/business-onboarding.ts +46 -5
  101. package/examples/company-qna-agent.ts +107 -1
  102. package/examples/custom-database-persistence.ts +44 -1
  103. package/examples/declarative-agent.ts +80 -37
  104. package/examples/domain-scoping.ts +91 -21
  105. package/examples/extracted-data-modification.ts +64 -2
  106. package/examples/healthcare-agent.ts +61 -4
  107. package/examples/openai-agent.ts +24 -2
  108. package/examples/opensearch-persistence.ts +26 -1
  109. package/examples/persistent-onboarding.ts +84 -18
  110. package/examples/prisma-persistence.ts +90 -16
  111. package/examples/redis-persistence.ts +89 -17
  112. package/examples/rules-prohibitions.ts +300 -139
  113. package/examples/streaming-agent.ts +60 -0
  114. package/examples/travel-agent.ts +66 -24
  115. package/package.json +3 -2
  116. package/src/constants/index.ts +6 -1
  117. package/src/core/Agent.ts +135 -21
  118. package/src/core/Events.ts +73 -10
  119. package/src/core/Route.ts +8 -4
  120. package/src/core/RoutingEngine.ts +150 -39
  121. package/src/core/State.ts +35 -10
  122. package/src/core/Tool.ts +67 -10
  123. package/src/core/Transition.ts +1 -1
  124. package/src/index.ts +1 -1
  125. package/src/types/agent.ts +5 -0
  126. package/src/types/route.ts +10 -1
  127. package/src/types/session.ts +42 -6
  128. package/src/utils/logger.ts +19 -0
package/README.md CHANGED
@@ -93,34 +93,6 @@
93
93
 
94
94
  ---
95
95
 
96
- ## 🏗️ Architecture
97
-
98
- `@falai/agent` uses a **state machine-driven architecture** where:
99
-
100
- - 🎯 **Conversations are explicit state machines** - Predictable, testable flows using the Route DSL
101
- - 🔧 **Tools execute automatically** - Based on state transitions and guideline matching, not AI decisions
102
- - 🧠 **AI only generates messages** - The AI never sees or calls tools; it just creates natural responses
103
- - 🔄 **Preparation iterations gather data** - Tools run in loops before message generation to enrich context
104
- - 📦 **Domain-based organization** - Tools grouped logically with route-level access control
105
-
106
- **Example:**
107
-
108
- ```typescript
109
- route.initialState
110
- .transitionTo({ chatState: "What's your name?" })
111
- .transitionTo(
112
- { toolState: saveName }, // ← Tool executes automatically
113
- "User provided their name"
114
- )
115
- .transitionTo({ chatState: "Thanks! What's your email?" });
116
- ```
117
-
118
- The AI generates conversational messages while the engine handles tool execution and flow control. This creates **deterministic, controllable agents** perfect for structured conversations like customer support, onboarding, and multi-step processes.
119
-
120
- 📖 **[Read the full architecture guide →](./docs/ARCHITECTURE.md)**
121
-
122
- ---
123
-
124
96
  ## 📦 Installation
125
97
 
126
98
  ```bash
@@ -140,7 +112,7 @@ yarn add @falai/agent
140
112
 
141
113
  ## 🚀 Quick Start
142
114
 
143
- Build a conversational AI agent in 2 minutes:
115
+ Build a data-driven conversational AI agent in minutes. This example shows how to intelligently gather structured data over multiple turns.
144
116
 
145
117
  ```typescript
146
118
  import {
@@ -149,65 +121,117 @@ import {
149
121
  defineTool,
150
122
  createMessageEvent,
151
123
  EventSource,
124
+ END_STATE,
125
+ type ToolContext,
152
126
  } from "@falai/agent";
153
127
 
154
- // 1️⃣ Create your agent
128
+ // 1️⃣ Define the data you want to collect
129
+ interface HotelBookingData {
130
+ hotelName: string;
131
+ date: string;
132
+ guests: number;
133
+ }
134
+
135
+ // 2️⃣ Create your agent
155
136
  const agent = new Agent({
156
137
  name: "BookingBot",
157
- description: "Hotel booking assistant",
138
+ description: "A hotel booking assistant that gathers information.",
158
139
  ai: new GeminiProvider({
159
140
  apiKey: process.env.GEMINI_API_KEY!,
160
- model: "models/gemini-2.5-flash",
141
+ model: "models/gemini-2.5-flash", // or your preferred model
161
142
  }),
162
- context: { userId: "user_123" },
163
143
  });
164
144
 
165
- // 2️⃣ Define a simple tool
166
- const checkAvailability = defineTool(
167
- "check_availability",
168
- async (ctx, hotelName: string, date: string) => {
169
- return { data: `${hotelName} has rooms available on ${date}` };
145
+ // 3️⃣ Define a tool that uses the collected data
146
+ const bookHotel = defineTool(
147
+ "book_hotel",
148
+ async ({ extracted }: ToolContext<{}, HotelBookingData>) => {
149
+ // Logic to book the hotel...
150
+ return {
151
+ data: `Booking confirmed for ${extracted?.guests} at ${extracted?.hotelName} on ${extracted?.date}!`,
152
+ };
170
153
  },
171
- { description: "Check hotel availability" }
154
+ { description: "Books a hotel once all information is collected." }
172
155
  );
173
156
 
174
- // 3️⃣ Create a route with 2 states
175
- const bookingRoute = agent.createRoute({
157
+ // 4️⃣ Create a data-driven route
158
+ const bookingRoute = agent.createRoute<HotelBookingData>({
176
159
  title: "Book Hotel",
160
+ description: "Guides the user through the hotel booking process.",
177
161
  conditions: ["User wants to book a hotel"],
162
+ extractionSchema: {
163
+ type: "object",
164
+ properties: {
165
+ hotelName: { type: "string", description: "The name of the hotel." },
166
+ date: { type: "string", description: "The desired booking date." },
167
+ guests: { type: "number", description: "The number of guests." },
168
+ },
169
+ required: ["hotelName", "date", "guests"],
170
+ },
171
+ });
172
+
173
+ // 5️⃣ Build the flow to gather data step-by-step
174
+ const askHotel = bookingRoute.initialState.transitionTo({
175
+ chatState: "Ask which hotel they want to book",
176
+ gather: ["hotelName"],
177
+ skipIf: (extracted) => !!extracted.hotelName, // Skip if we already have it
178
178
  });
179
179
 
180
- bookingRoute.initialState
181
- .transitionTo(
182
- { toolState: checkAvailability },
183
- "User provided hotel name and date"
184
- )
185
- .transitionTo({ chatState: "Confirm booking and provide summary" });
180
+ const askDate = askHotel.transitionTo({
181
+ chatState: "Ask for the booking date",
182
+ gather: ["date"],
183
+ skipIf: (extracted) => !!extracted.date,
184
+ });
185
+
186
+ const askGuests = askDate.transitionTo({
187
+ chatState: "Ask for the number of guests",
188
+ gather: ["guests"],
189
+ skipIf: (extracted) => !!extracted.guests,
190
+ });
191
+
192
+ const confirmBooking = askGuests.transitionTo({
193
+ toolState: bookHotel,
194
+ condition:
195
+ "All required information (hotel, date, guests) has been collected.",
196
+ });
186
197
 
187
- // 4️⃣ Start conversing
198
+ confirmBooking.transitionTo({
199
+ state: END_STATE, // End the conversation flow
200
+ });
201
+
202
+ // 6️⃣ Start conversing
188
203
  const response = await agent.respond({
189
204
  history: [
190
205
  createMessageEvent(
191
206
  EventSource.CUSTOMER,
192
207
  "Alice",
193
- "Book me a room at Grand Hotel for tomorrow"
208
+ "I want to book a room at the Grand Hotel for 2 people."
194
209
  ),
195
210
  ],
196
211
  });
197
212
 
198
- console.log(response.message); // 🎉 AI handles the rest!
213
+ // The agent sees that `hotelName` and `guests` are provided,
214
+ // skips the first and third steps, and only asks for the date.
215
+ console.log(response.message);
216
+ // Expected: "Sure, for what date would you like to book at the Grand Hotel?"
199
217
  ```
200
218
 
201
- **That's it!** The agent will:
202
- - ✅ Route to the correct conversation flow
203
- - ✅ Execute tools automatically when conditions match
204
- - ✅ Generate natural responses based on state
219
+ **That's it!** The data-driven agent will:
220
+
221
+ - ✅ **Understand the Goal** - Route to the `Book Hotel` flow based on user intent.
222
+ - ✅ **Extract Known Data** - Automatically pull `hotelName` and `guests` from the first message.
223
+ - ✅ **Skip Unneeded Steps** - Use `skipIf` to bypass questions for data it already has.
224
+ - ✅ **Gather Missing Data** - Intelligently ask only for the missing `date`.
225
+ - ✅ **Execute Deterministically** - Call the `bookHotel` tool only when all required data is present.
226
+
227
+ This creates a flexible and natural conversation, guided by a clear data structure.
205
228
 
206
229
  📖 **[See more examples →](./docs/EXAMPLES.md)** | **[Full tutorial →](./docs/GETTING_STARTED.md)**
207
230
 
208
231
  ### ⚡ Advanced Features
209
232
 
210
233
  **Streaming responses** for real-time UX:
234
+
211
235
  ```typescript
212
236
  for await (const chunk of agent.respondStream({ history })) {
213
237
  process.stdout.write(chunk.delta);
@@ -215,6 +239,7 @@ for await (const chunk of agent.respondStream({ history })) {
215
239
  ```
216
240
 
217
241
  **Session state** for multi-turn conversations:
242
+
218
243
  ```typescript
219
244
  let session = createSession<MyData>();
220
245
  const response = await agent.respond({ history, session });
@@ -222,10 +247,11 @@ session = response.session!; // Tracks progress across turns
222
247
  ```
223
248
 
224
249
  **Database persistence** with any adapter:
250
+
225
251
  ```typescript
226
252
  import { PrismaAdapter } from "@falai/agent";
227
253
  const agent = new Agent({
228
- persistence: { adapter: new PrismaAdapter({ prisma }) }
254
+ persistence: { adapter: new PrismaAdapter({ prisma }) },
229
255
  });
230
256
  ```
231
257
 
@@ -238,15 +264,19 @@ const agent = new Agent({
238
264
  📋 **[Complete Documentation Index →](docs/DOCS.md)** - Searchable index of all docs
239
265
 
240
266
  **Core Guides:**
267
+
241
268
  - 📘 **[Getting Started](./docs/GETTING_STARTED.md)** - Build your first agent in 5 minutes
242
269
  - 🏗️ **[Architecture](./docs/ARCHITECTURE.md)** - Design principles & philosophy
243
270
  - 🔧 **[API Reference](./docs/API_REFERENCE.md)** - Complete API documentation
244
271
  - 📝 **[Examples](./docs/EXAMPLES.md)** - Production-ready code examples
245
272
 
246
273
  **Feature Guides:**
274
+
275
+ - 🛤️ **[Routes](./docs/ROUTES.md)** - Creating conversational routes & flows
276
+ - 🔄 **[States](./docs/STATES.md)** - Managing states & transitions
247
277
  - 💾 **[Persistence](./docs/PERSISTENCE.md)** - Database integration with adapters
248
278
  - 🔒 **[Domains](./docs/DOMAINS.md)** - Optional tool security & organization
249
- - 🎛️ **[Constructor Options](./docs/CONSTRUCTOR_OPTIONS.md)** - Configuration patterns
279
+ - 🎛️ **[Agent](./docs/AGENT.md)** - Configuration patterns
250
280
  - 📊 **[Context Management](./docs/CONTEXT_MANAGEMENT.md)** - Session state & lifecycle hooks
251
281
  - 🤖 **[AI Providers](./docs/PROVIDERS.md)** - Anthropic, OpenAI, Gemini, OpenRouter
252
282
 
@@ -255,6 +285,7 @@ const agent = new Agent({
255
285
  ## 🎯 Examples
256
286
 
257
287
  **Core Examples:**
288
+
258
289
  - 🏢 **[Business Onboarding](./examples/business-onboarding.ts)** - Complex multi-step flow with branching
259
290
  - ✈️ **[Travel Agent](./examples/travel-agent.ts)** - Multi-route booking system with session state
260
291
  - 🏥 **[Healthcare Assistant](./examples/healthcare-agent.ts)** - Appointment scheduling & lab results
@@ -262,6 +293,7 @@ const agent = new Agent({
262
293
  - ⚡ **[Streaming Responses](./examples/streaming-agent.ts)** - Real-time response streaming
263
294
 
264
295
  **Persistence & Advanced:**
296
+
265
297
  - 💾 **[Prisma Persistence](./examples/prisma-persistence.ts)** - Auto-save with Prisma ORM
266
298
  - ⚡ **[Redis Persistence](./examples/redis-persistence.ts)** - Fast in-memory sessions
267
299
  - 🔐 **[Domain Scoping](./examples/domain-scoping.ts)** - Tool security per route
@@ -282,6 +314,7 @@ const agent = new Agent({
282
314
  5. **Message Generation** - AI generates natural responses based on current state
283
315
 
284
316
  **Behind the scenes:**
317
+
285
318
  - The AI only generates messages and extracts data - it never decides which tools to call
286
319
  - Tools execute deterministically based on state transitions and code-based conditions
287
320
  - Session state tracks progress and extracted data across conversation turns
@@ -1,5 +1,10 @@
1
1
  /**
2
2
  * Special marker to end a route/journey
3
3
  */
4
- export declare const END_ROUTE: unique symbol;
4
+ export declare const END_STATE: unique symbol;
5
+ /**
6
+ * String constant for END_STATE comparisons
7
+ * Use this when checking if currentState.id has reached END_STATE
8
+ */
9
+ export declare const END_STATE_ID = "END_STATE";
5
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS,eAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS,eAAsB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,YAAY,cAAc,CAAC"}
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.END_STATE_ID = exports.END_STATE = void 0;
2
4
  /**
3
5
  * Special marker to end a route/journey
4
6
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.END_ROUTE = void 0;
7
- exports.END_ROUTE = Symbol("END_ROUTE");
7
+ exports.END_STATE = Symbol("END_STATE");
8
+ /**
9
+ * String constant for END_STATE comparisons
10
+ * Use this when checking if currentState.id has reached END_STATE
11
+ */
12
+ exports.END_STATE_ID = "END_STATE";
8
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7C;;;GAGG;AACU,QAAA,YAAY,GAAG,WAAW,CAAC"}
@@ -22,6 +22,7 @@ export declare class Agent<TContext = unknown> {
22
22
  private persistenceManager;
23
23
  private routingEngine;
24
24
  private responseEngine;
25
+ private currentSession?;
25
26
  /**
26
27
  * Dynamic domain property - populated via addDomain
27
28
  */
@@ -95,6 +96,7 @@ export declare class Agent<TContext = unknown> {
95
96
  toolName: string;
96
97
  arguments: Record<string, unknown>;
97
98
  }>;
99
+ isRouteComplete?: boolean;
98
100
  }>;
99
101
  /**
100
102
  * Generate a response based on history and context
@@ -112,6 +114,7 @@ export declare class Agent<TContext = unknown> {
112
114
  toolName: string;
113
115
  arguments: Record<string, unknown>;
114
116
  }>;
117
+ isRouteComplete?: boolean;
115
118
  }>;
116
119
  /**
117
120
  * Get all routes
@@ -153,5 +156,24 @@ export declare class Agent<TContext = unknown> {
153
156
  * @returns Filtered domains object, or all domains if route has no restrictions
154
157
  */
155
158
  getDomainsForRouteByTitle(routeTitle: string): Record<string, Record<string, unknown>>;
159
+ /**
160
+ * Set the current session for convenience methods
161
+ * @param session - Session state to use for subsequent calls
162
+ */
163
+ setCurrentSession(session: SessionState): void;
164
+ /**
165
+ * Get the current session (if set)
166
+ */
167
+ getCurrentSession(): SessionState | undefined;
168
+ /**
169
+ * Clear the current session
170
+ */
171
+ clearCurrentSession(): void;
172
+ /**
173
+ * Get extracted data from current session
174
+ * @param routeId - Optional route ID to get data for (uses current route if not provided)
175
+ * @returns The extracted data from the current session
176
+ */
177
+ getExtractedData<TExtracted = unknown>(routeId?: string): Partial<TExtracted>;
156
178
  }
157
179
  //# sourceMappingURL=Agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}