add_observations
Enhance entities in the Knowledge Graph Memory Server by adding new observations, enabling persistent memory integration for chat applications across interactions.
Instructions
Add new observations to existing entities in the knowledge graph
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| observations | Yes |
Implementation Reference
- index.ts:170-183 (handler)Core handler function in KnowledgeGraphManager that adds new observations to specified entities, filters out duplicates, updates the graph, and saves changes to the memory file.async addObservations(observations: { entityName: string; contents: string[] }[]): Promise<{ entityName: string; addedObservations: string[] }[]> { const graph = await this.loadGraph(); const results = observations.map(o => { const entity = graph.entities.find(e => e.name === o.entityName); if (!entity) { throw new Error(`Entity with name ${o.entityName} not found`); } const newObservations = o.contents.filter(content => !entity.observations.includes(content)); entity.observations.push(...newObservations); return { entityName: o.entityName, addedObservations: newObservations }; }); await this.saveGraph(graph); return results; }
- index.ts:412-436 (registration)Tool registration in the ListToolsRequestHandler, including name, description, and input schema.{ name: "add_observations", description: "Add new observations to existing entities in the knowledge graph", inputSchema: { type: "object", properties: { observations: { type: "array", items: { type: "object", properties: { entityName: { type: "string", description: "The name of the entity to add the observations to" }, contents: { type: "array", items: { type: "string" }, description: "An array of observation contents to add" }, }, required: ["entityName", "contents"], }, }, }, required: ["observations"], }, },
- index.ts:557-558 (handler)Dispatch handler in CallToolRequestHandler that invokes the KnowledgeGraphManager.addObservations method for the 'add_observations' tool.case "add_observations": return createResponse(JSON.stringify(await knowledgeGraphManager.addObservations(args.observations as { entityName: string; contents: string[] }[]), null, 2));