Skip to content

Commit 051e883

Browse files
committed
Many fixes
1 parent 4d872c9 commit 051e883

22 files changed

+110
-100
lines changed

packages/client-discord/src/messages.ts

-6
Original file line numberDiff line numberDiff line change
@@ -162,12 +162,6 @@ export const discordMessageHandlerTemplate =
162162
{{actionExamples}}
163163
(Action examples are for reference only. Do not use the information from them in your response.)
164164
165-
# Relevant facts that {{agentName}} knows:
166-
{{relevantFacts}}
167-
168-
# Recent facts that {{agentName}} has learned:
169-
{{recentFacts}}
170-
171165
# Task: Generate dialog and actions for the character {{agentName}}.
172166
About {{agentName}}:
173167
{{bio}}

packages/client-telegram/src/messageManager.ts

-6
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,6 @@ const telegramMessageHandlerTemplate =
101101
{{actionExamples}}
102102
(Action examples are for reference only. Do not use the information from them in your response.)
103103
104-
# Relevant facts that {{agentName}} knows:
105-
{{relevantFacts}}
106-
107-
# Recent facts that {{agentName}} has learned:
108-
{{recentFacts}}
109-
110104
# Task: Generate dialog and actions for the character {{agentName}}.
111105
About {{agentName}}:
112106
{{bio}}

packages/client-twitter/src/interactions.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@ import { ClientBase } from "./base.ts";
2222
import { buildConversationThread, sendTweet, wait } from "./utils.ts";
2323

2424
export const twitterMessageHandlerTemplate =
25-
`{{relevantFacts}}
26-
{{recentFacts}}
27-
28-
{{timeline}}
25+
`{{timeline}}
2926
3027
{{providers}}
3128

packages/client-twitter/src/search.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@ import { ClientBase } from "./base.ts";
2020
import { buildConversationThread, sendTweet, wait } from "./utils.ts";
2121

2222
const twitterSearchTemplate =
23-
`{{relevantFacts}}
24-
{{recentFacts}}
25-
26-
{{timeline}}
23+
`{{timeline}}
2724
2825
{{providers}}
2926

packages/core/src/runtime.ts

+1-52
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { names, uniqueNamesGenerator } from "unique-names-generator";
2-
// import { formatFacts } from "../evaluators/fact.ts";
32
import {
43
composeActionExamples,
54
formatActionNames,
@@ -115,11 +114,6 @@ export class AgentRuntime implements IAgentRuntime {
115114
*/
116115
descriptionManager: IMemoryManager;
117116

118-
/**
119-
* Manage the fact and recall of facts.
120-
*/
121-
factManager: IMemoryManager;
122-
123117
/**
124118
* Manage the creation and recall of static information (documents, historical game lore, etc)
125119
*/
@@ -236,12 +230,6 @@ export class AgentRuntime implements IAgentRuntime {
236230
tableName: "descriptions",
237231
});
238232

239-
// TODO: register fact manager
240-
// this.factManager = new MemoryManager({
241-
// runtime: this,
242-
// tableName: "facts",
243-
// });
244-
245233
this.loreManager = new MemoryManager({
246234
runtime: this,
247235
tableName: "lore",
@@ -671,13 +659,10 @@ export class AgentRuntime implements IAgentRuntime {
671659
const { userId, roomId } = message;
672660

673661
const conversationLength = this.getConversationLength();
674-
// const recentFactsCount = Math.ceil(this.getConversationLength() / 2);
675-
// const relevantFactsCount = Math.ceil(this.getConversationLength() / 2);
676662

677-
const [actorsData, recentMessagesData, /*recentFactsData,*/ goalsData]: [
663+
const [actorsData, recentMessagesData, goalsData]: [
678664
Actor[],
679665
Memory[],
680-
/*Memory[],*/
681666
Goal[],
682667
] = await Promise.all([
683668
getActorDetails({ runtime: this, roomId }),
@@ -687,11 +672,6 @@ export class AgentRuntime implements IAgentRuntime {
687672
count: conversationLength,
688673
unique: false,
689674
}),
690-
// this.factManager.getMemories({
691-
// agentId: this.agentId,
692-
// roomId,
693-
// count: recentFactsCount,
694-
// }),
695675
getGoals({
696676
runtime: this,
697677
count: 10,
@@ -702,24 +682,6 @@ export class AgentRuntime implements IAgentRuntime {
702682

703683
const goals = formatGoalsAsString({ goals: goalsData });
704684

705-
// let relevantFactsData: Memory[] = [];
706-
707-
// if (recentFactsData.length > recentFactsCount) {
708-
// relevantFactsData = (
709-
// await this.factManager.searchMemoriesByEmbedding(
710-
// recentFactsData[0].embedding!,
711-
// {
712-
// roomId,
713-
// agentId: this.agentId,
714-
// count: relevantFactsCount,
715-
// }
716-
// )
717-
// ).filter((fact: Memory) => {
718-
// return !recentFactsData.find(
719-
// (recentFact: Memory) => recentFact.id === fact.id
720-
// );
721-
// });
722-
// }
723685

724686
const actors = formatActors({ actors: actorsData ?? [] });
725687

@@ -734,9 +696,6 @@ export class AgentRuntime implements IAgentRuntime {
734696
conversationHeader: false,
735697
});
736698

737-
// const recentFacts = formatFacts(recentFactsData);
738-
// const relevantFacts = formatFacts(relevantFactsData);
739-
740699
// const lore = formatLore(loreData);
741700

742701
const senderName = actorsData?.find(
@@ -1049,16 +1008,6 @@ Text: ${attachment.text}
10491008
? addHeader("# Posts in Thread", recentPosts)
10501009
: "",
10511010
recentMessagesData,
1052-
// recentFacts:
1053-
// recentFacts && recentFacts.length > 0
1054-
// ? addHeader("# Recent Facts", recentFacts)
1055-
// : "",
1056-
// recentFactsData,
1057-
// relevantFacts:
1058-
// relevantFacts && relevantFacts.length > 0
1059-
// ? addHeader("# Relevant Facts", relevantFacts)
1060-
// : "",
1061-
// relevantFactsData,
10621011
attachments:
10631012
formattedAttachments && formattedAttachments.length > 0
10641013
? addHeader("# Attachments", formattedAttachments)

packages/core/src/types.ts

-2
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,6 @@ export interface IAgentRuntime {
531531
messageManager: IMemoryManager;
532532
descriptionManager: IMemoryManager;
533533
loreManager: IMemoryManager;
534-
factManager: IMemoryManager; // move me
535-
536534

537535
services: Map<ServiceType, Service>;
538536
registerMemoryManager(manager: IMemoryManager): void;

packages/plugin-bootstrap/src/evaluators/fact.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { composeContext } from "@ai16z/eliza/src/context.ts";
22
import { generateObjectArray } from "@ai16z/eliza/src/generation.ts";
3+
import { MemoryManager } from "@ai16z/eliza/src/memory.ts";
34
import {
45
ActionExample,
56
Content,
@@ -26,10 +27,6 @@ These are an examples of the expected output of this task:
2627
{{evaluationExamples}}
2728
# END OF EXAMPLES
2829
29-
Known facts:
30-
{{recentFacts}}
31-
{{relevantFacts}}
32-
3330
# INSTRUCTIONS
3431
3532
Extract any claims from the conversation that are not already present in the list of known facts above:
@@ -71,6 +68,11 @@ async function handler(runtime: IAgentRuntime, message: Memory) {
7168
modelClass: ModelClass.SMALL,
7269
});
7370

71+
const factsManager = new MemoryManager({
72+
runtime,
73+
tableName: "facts",
74+
});
75+
7476
if (!facts) {
7577
return [];
7678
}
@@ -89,15 +91,16 @@ async function handler(runtime: IAgentRuntime, message: Memory) {
8991
.map((fact) => fact.claim);
9092

9193
for (const fact of filteredFacts) {
92-
const factMemory = await runtime.factManager.addEmbeddingToMemory({
94+
const factMemory = await factsManager.addEmbeddingToMemory({
9395
userId: agentId!,
9496
agentId,
9597
content: { text: fact },
9698
roomId,
9799
createdAt: Date.now(),
98100
});
99101

100-
await runtime.factManager.createMemory(factMemory, true);
102+
103+
await factsManager.createMemory(factMemory, true);
101104

102105
await new Promise((resolve) => setTimeout(resolve, 250));
103106
}

packages/plugin-bootstrap/src/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { factEvaluator } from "./evaluators/fact.ts";
1010
import { goalEvaluator } from "./evaluators/goal.ts";
1111
import { boredomProvider } from "./providers/boredom.ts";
1212
import { timeProvider } from "./providers/time.ts";
13+
import { factsProvider } from "./providers/facts.ts";
1314

1415
export const defaultPlugin: Plugin = {
1516
name: "default",
@@ -29,6 +30,7 @@ export const defaultPlugin: Plugin = {
2930
],
3031
providers: [
3132
boredomProvider,
32-
timeProvider
33+
timeProvider,
34+
factsProvider,
3335
],
3436
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { embed } from "@ai16z/eliza/src/embedding.ts";
2+
import { MemoryManager } from "@ai16z/eliza/src/memory.ts";
3+
import { formatMessages } from "@ai16z/eliza/src/messages.ts";
4+
import { IAgentRuntime, Memory, Provider, State } from "@ai16z/eliza/src/types.ts";
5+
import { formatFacts } from "../evaluators/fact.ts";
6+
7+
const factsProvider: Provider = {
8+
get: async (runtime: IAgentRuntime, message: Memory, state?: State) => {
9+
10+
const recentMessagesData = state?.recentMessagesData;
11+
12+
const recentMessages = formatMessages({ messages: recentMessagesData, actors: state?.actorsData });
13+
14+
const embedding = await embed(runtime, recentMessages);
15+
16+
const memoryManager = new MemoryManager({
17+
runtime,
18+
tableName: "facts",
19+
});
20+
21+
const relevantFacts = await memoryManager.searchMemoriesByEmbedding(embedding,
22+
{
23+
roomId: message.roomId,
24+
count: 10,
25+
agentId: runtime.agentId,
26+
})
27+
28+
const recentFactsData = await memoryManager.getMemories({
29+
roomId: message.roomId,
30+
count: 10,
31+
agentId: runtime.agentId,
32+
})
33+
34+
// join the two and deduplicate
35+
const allFacts = [...relevantFacts, ...recentFactsData].filter((fact, index, self) =>
36+
index === self.findIndex((t) => t.id === fact.id)
37+
);
38+
39+
const formattedFacts = formatFacts(allFacts);
40+
41+
return "Important facts that {{agentName}} knows:\n{{formattedFacts}}".replace("{{agentName}}", runtime.character.name).replace("{{formattedFacts}}", formattedFacts);
42+
},
43+
};
44+
45+
export { factsProvider };
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from "./boredom.ts";
22
export * from "./time.ts";
3+
export * from "./facts.ts";

packages/test/src/test_resources/constants.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { type UUID } from "../core/types.ts";
1+
import { type UUID } from "@ai16z/eliza/src/types.ts";
22

33
export const SERVER_URL = "http://localhost:7998";
44
export const SUPABASE_URL = "https://pronvzrzfwsptkojvudd.supabase.co";

packages/test/src/test_resources/createRuntime.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { SqliteDatabaseAdapter } from "../adapters/sqlite.ts";
22
import { load } from "../../../adapter-sqlite/src/sqlite_vec.ts";
33
import { SqlJsDatabaseAdapter } from "../../../adapter-sqljs/src/index.ts";
44
import { SupabaseDatabaseAdapter } from "../../../adapter-supabase/src/index.ts";
5-
import { DatabaseAdapter } from "../core/database.ts";
6-
import { AgentRuntime } from "../core/runtime.ts";
7-
import { Action, Evaluator, ModelProviderName, Provider } from "../core/types.ts";
5+
import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts";
6+
import { AgentRuntime } from "@ai16z/eliza/src/runtime.ts";
7+
import { Action, Evaluator, ModelProviderName, Provider } from "@ai16z/eliza/src/types.ts";
88
import {
99
SUPABASE_ANON_KEY,
1010
SUPABASE_URL,

packages/test/src/test_resources/data.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ConversationExample, type UUID } from "../core/types.ts";
1+
import { ConversationExample, type UUID } from "@ai16z/eliza/src/types.ts";
22
import { zeroUuid } from "./constants.ts";
33

44
// CJ asks Jim some personal questions - name, job, marital status, and what he's looking for in a relationship

packages/test/src/test_resources/getOrCreateRelationship.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { getRelationship } from "../core/relationships.ts";
2-
import { IAgentRuntime, Relationship, UUID } from "../core/types.ts";
1+
import { getRelationship } from "@ai16z/eliza/src/relationships.ts";
2+
import { IAgentRuntime, Relationship, UUID } from "@ai16z/eliza/src/types.ts";
33

44
export async function getOrCreateRelationship({
55
runtime,

packages/test/src/test_resources/populateMemories.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Content, IAgentRuntime, type UUID } from "../core/types.ts";
1+
import { Content, IAgentRuntime, type UUID } from "@ai16z/eliza/src/types.ts";
22
import { getCachedEmbeddings, writeCachedEmbedding } from "./cache.ts";
33
import { type User } from "./types.ts";
44

packages/test/src/test_resources/templates.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { messageCompletionFooter } from "../core/parsing.ts";
1+
import { messageCompletionFooter } from "@ai16z/eliza/src/parsing.ts";
22

33
export const messageHandlerTemplate =
44
`{{actionExamples}}
@@ -14,8 +14,6 @@ export const messageHandlerTemplate =
1414
- Available actions are {{actionNames}}
1515
1616
{{lore}}
17-
{{relevantFacts}}
18-
{{recentFacts}}
1917
{{goals}}
2018
{{actors}}
2119
{{actionNames}}

packages/test/src/test_resources/testAction.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IAgentRuntime, type Action, type Memory } from "../core/types.ts";
1+
import { IAgentRuntime, type Action, type Memory } from "@ai16z/eliza/src/types.ts";
22

33
export const TEST_ACTION = {
44
name: "TEST_ACTION",

packages/test/src/test_resources/testEvaluator.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
IAgentRuntime,
44
type Memory,
55
type State,
6-
} from "../core/types.ts";
6+
} from "@ai16z/eliza/src/types.ts";
77

88
async function handler(runtime: IAgentRuntime, message: Memory) {
99
const state = (await runtime.composeState(message)) as State;

packages/test/src/tests/actions.test.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
} from "../src/types.ts";
2121
import { stringToUuid } from "../src/uuid.ts";
2222
import { generateMessageResponse } from "../src/generation.ts";
23+
import { MemoryManager } from "@ai16z/eliza/src/index.ts";
2324

2425
async function handleMessage(
2526
runtime: IAgentRuntime,
@@ -163,7 +164,12 @@ describe("Actions", () => {
163164
});
164165

165166
async function cleanup() {
166-
await runtime.factManager.removeAllMemories(roomId);
167+
const factsManager = new MemoryManager({
168+
runtime,
169+
tableName: "facts",
170+
});
171+
172+
await factsManager.removeAllMemories(roomId);
167173
await runtime.messageManager.removeAllMemories(roomId);
168174
}
169175

packages/test/src/tests/continue.test.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { runAiTest } from "../src/test_resources/runAiTest.ts";
1414
import { type User } from "../src/test_resources/types.ts";
1515
import action from "../src/actions/continue.ts";
1616
import ignore from "../src/actions/ignore.ts";
17+
import { MemoryManager } from "@ai16z/eliza/src/memory.ts";
1718

1819
dotenv.config({ path: ".dev.vars" });
1920

@@ -74,7 +75,12 @@ describe("User Profile", () => {
7475
});
7576

7677
async function cleanup() {
77-
await runtime.factManager.removeAllMemories(roomId);
78+
const factsManager = new MemoryManager({
79+
runtime,
80+
tableName: "facts",
81+
});
82+
83+
await factsManager.removeAllMemories(roomId);
7884
await runtime.messageManager.removeAllMemories(roomId);
7985
}
8086

0 commit comments

Comments
 (0)