1
1
import bodyParser from "body-parser" ;
2
2
import cors from "cors" ;
3
3
import express , { Request as ExpressRequest } from "express" ;
4
- import multer from "multer" ;
4
+ import multer , { File } from "multer" ;
5
5
import {
6
6
elizaLogger ,
7
7
generateCaption ,
8
8
generateImage ,
9
9
Media ,
10
+ getEmbeddingZeroVector
10
11
} from "@elizaos/core" ;
11
12
import { composeContext } from "@elizaos/core" ;
12
13
import { generateMessageResponse } from "@elizaos/core" ;
@@ -229,17 +230,19 @@ export class DirectClient {
229
230
} ;
230
231
231
232
const memory : Memory = {
232
- id : messageId ,
233
+ id : stringToUuid ( messageId + "-" + userId ) ,
234
+ ...userMessage ,
233
235
agentId : runtime . agentId ,
234
236
userId,
235
237
roomId,
236
238
content,
237
239
createdAt : Date . now ( ) ,
238
240
} ;
239
241
242
+ await runtime . messageManager . addEmbeddingToMemory ( memory ) ;
240
243
await runtime . messageManager . createMemory ( memory ) ;
241
244
242
- const state = await runtime . composeState ( userMessage , {
245
+ let state = await runtime . composeState ( userMessage , {
243
246
agentName : runtime . character . name ,
244
247
} ) ;
245
248
@@ -254,34 +257,30 @@ export class DirectClient {
254
257
modelClass : ModelClass . LARGE ,
255
258
} ) ;
256
259
260
+ if ( ! response ) {
261
+ res . status ( 500 ) . send (
262
+ "No response from generateMessageResponse"
263
+ ) ;
264
+ return ;
265
+ }
266
+
257
267
// save response to memory
258
- const responseMessage = {
268
+ const responseMessage : Memory = {
269
+ id : stringToUuid ( messageId + "-" + runtime . agentId ) ,
259
270
...userMessage ,
260
271
userId : runtime . agentId ,
261
272
content : response ,
273
+ embedding : getEmbeddingZeroVector ( ) ,
274
+ createdAt : Date . now ( ) ,
262
275
} ;
263
276
264
277
await runtime . messageManager . createMemory ( responseMessage ) ;
265
278
266
- if ( ! response ) {
267
- res . status ( 500 ) . send (
268
- "No response from generateMessageResponse"
269
- ) ;
270
- return ;
271
- }
279
+ state = await runtime . updateRecentMessageState ( state ) ;
272
280
273
281
let message = null as Content | null ;
274
282
275
- await runtime . evaluate ( memory , state ) ;
276
-
277
- // Check if we should suppress the initial message
278
- const action = runtime . actions . find (
279
- ( a ) => a . name === response . action
280
- ) ;
281
- const shouldSuppressInitialMessage =
282
- action ?. suppressInitialMessage ;
283
-
284
- const _result = await runtime . processActions (
283
+ await runtime . processActions (
285
284
memory ,
286
285
[ responseMessage ] ,
287
286
state ,
@@ -291,6 +290,15 @@ export class DirectClient {
291
290
}
292
291
) ;
293
292
293
+ await runtime . evaluate ( memory , state ) ;
294
+
295
+ // Check if we should suppress the initial message
296
+ const action = runtime . actions . find (
297
+ ( a ) => a . name === response . action
298
+ ) ;
299
+ const shouldSuppressInitialMessage =
300
+ action ?. suppressInitialMessage ;
301
+
294
302
if ( ! shouldSuppressInitialMessage ) {
295
303
if ( message ) {
296
304
res . json ( [ response , message ] ) ;
0 commit comments