forked from elizaOS/eliza
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasterai.provider.ts
63 lines (61 loc) · 2.12 KB
/
asterai.provider.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
import {
elizaLogger,
IAgentRuntime,
Memory,
Provider,
State, UUID,
} from "@elizaos/core";
import {validateAsteraiConfig} from "../environment.ts";
import {getInitAsteraiClient} from "../index.ts";
const asteraiProvider: Provider = {
get: async (
runtime: IAgentRuntime,
message: Memory,
_state?: State
): Promise<string | null> => {
const hasConfiguredEnv =
!!runtime.getSetting("ASTERAI_AGENT_ID") &&
!!runtime.getSetting("ASTERAI_PUBLIC_QUERY_KEY");
if (!hasConfiguredEnv) {
elizaLogger.error(
"ASTERAI_AGENT_ID or ASTERAI_PUBLIC_QUERY_KEY " +
"not configured, skipping provider"
);
return null;
}
const config = await validateAsteraiConfig(runtime);
const asteraiClient = getInitAsteraiClient(
config.ASTERAI_AGENT_ID,
config.ASTERAI_PUBLIC_QUERY_KEY
);
if (!asteraiClient) {
elizaLogger.error("asteraiClient is not initialised");
return null;
}
const agentId = runtime.getSetting("ASTERAI_AGENT_ID") as UUID;
let agentSummaryMemory = await runtime.knowledgeManager.getMemoryById(agentId);
if (!agentSummaryMemory) {
// Fetch & set summary memory.
const summary = await asteraiClient.fetchSummary();
elizaLogger.debug("asterai agent summary fetched:", summary);
await runtime.knowledgeManager.createMemory({
id: agentId,
userId: message.userId,
agentId: message.agentId,
roomId: message.roomId,
createdAt: Date.now(),
content: {
text: summary
}
});
agentSummaryMemory = await runtime.knowledgeManager.getMemoryById(agentId);
}
if (!agentSummaryMemory) {
elizaLogger.error("failed to initialise agent's summary memory");
return null;
}
return agentSummaryMemory.content.text;
},
};
// Module exports
export { asteraiProvider };