Skip to main content
Glama

delete_observations

Remove specific observations from entities in the knowledge graph. Use this tool to maintain data accuracy by deleting outdated or incorrect entity-associated observations.

Instructions

Delete specific observations from entities in the knowledge graph

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deletionsYesArray of entity observations to delete

Implementation Reference

  • Full tool registration including the handler execute function that implements delete_observations by filtering observations from enhancedEntities in memoryStore after fuzzy entity matching.
    server.addTool({ name: 'delete_observations', description: 'Delete specific observations from entities in the knowledge graph', parameters: Schemas.DeleteObservationsSchema, execute: async (args) => { const results = { updated: [] as string[], notFound: [] as string[] }; for (const item of args.deletions) { try { // First, find the entity directly const entity = graph.entities.get(item.entityName); if (!entity) { // If not found directly, try to find similar entities const similarEntities = await memoryStore.findSimilar(item.entityName); if (similarEntities.length === 0) { // No matching entity found results.notFound.push(item.entityName); continue; } // Use the first similar entity item.entityName = similarEntities[0]; } // Get enhanced entity from memory store (access private property carefully) const enhancedEntityMap = (memoryStore as any).enhancedEntities; const enhancedEntity = enhancedEntityMap?.get(item.entityName); if (!enhancedEntity) { results.notFound.push(item.entityName); continue; } // Track if any observations were removed let observationsRemoved = false; // Loop through the observations to delete for (const observationToDelete of item.observations) { // Filter out observations that match the text const originalLength = enhancedEntity.observations.length; enhancedEntity.observations = enhancedEntity.observations.filter((obs: { text: string }) => !obs.text.includes(observationToDelete) ); if (enhancedEntity.observations.length < originalLength) { observationsRemoved = true; } } if (observationsRemoved) { results.updated.push(item.entityName); } else { results.notFound.push(item.entityName); } } catch (error) { console.error(`Error deleting observations for ${item.entityName}:`, error); results.notFound.push(item.entityName); } } // Save changes await memoryStore.save(); // Return as string return JSON.stringify({ updated: results.updated.length > 0 ? results.updated : null, notFound: results.notFound.length > 0 ? results.notFound : null, message: `Removed observations from ${results.updated.length} entities. ${results.notFound.length} entities not found or observations not found.` }); } });
  • Zod schema defining the input parameters for the delete_observations tool.
    export const DeleteObservationsSchema = z.object({ deletions: z.array(z.object({ entityName: z.string().min(1).describe('Name of the entity to remove observations from'), observations: z.array(z.string()).describe('Observations to remove from the entity') })).describe('Array of entity observations to delete') });
  • Supporting method in KnowledgeGraph class for deleting observations from an entity (used in other tools like upsert_entities).
    deleteObservations(entityName: string, observations: string[]): boolean { const entity = this.entities.get(entityName); if (!entity) { return false; } // Remove each observation if it exists for (const observation of observations) { const index = entity.observations.indexOf(observation); if (index !== -1) { entity.observations.splice(index, 1); } } return true; }
  • Tool registration within registerMemoryTools function.
    server.addTool({ name: 'delete_observations', description: 'Delete specific observations from entities in the knowledge graph', parameters: Schemas.DeleteObservationsSchema,

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flight505/mcp-think-tank'

If you have feedback or need assistance with the MCP directory API, please join our Discord server