Skip to content

dorshitrit/memory

v1.0.0

Read, search, add, and delete deterministic long-term memory entries.

What this package declares

The file a client reads when it loads this plugin, exactly as this revision carries it.

plugin.json
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "memory",
  "version": "1.0.0",
  "description": "Read, search, add, and delete deterministic long-term memory entries.",
  "extensions": {
    "ai.abot.runtime": {
      "version": 1,
      "entrypoint": "./src/index.cjs",
      "catalogGroups": ["memory"],
      "capabilities": {
        "memory_get": {
          "description": "Read one bounded page of stored memory entries (deterministic, no inference)",
          "routingCapability": "semantic_lookup",
          "developmentRoles": ["inspect"],
          "eventPresentation": {
            "metadata": {},
            "resultMetadata": {
              "outputPreview": { "path": "output", "kind": "preview" },
              "returnedItemCount": { "path": "data.returnedItemCount", "kind": "number" },
              "totalItemCount": { "path": "data.itemCount", "kind": "number" },
              "sourceTruncated": { "path": "data.truncated", "kind": "boolean" },
              "nextOffset": { "path": "data.nextOffset", "kind": "number" }
            }
          },
          "skills": ["memory_lookup_skill"],
          "operations": {
            "list_memory": {
              "summary": "Read one bounded page of currently stored long-term memory entries.",
              "input": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "offset": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                  }
                },
                "required": []
              },
              "effect": "read_only",
              "approval": "request_policy"
            }
          }
        },
        "memory_search": {
          "description": "Search stored memory entries by query and return matches only. When the user asks about previously saved personal facts or preferences without providing a search phrase, derive a short search query from the remembered subject of the request rather than from meta-instructions like 'search memory'.",
          "routingCapability": "semantic_lookup",
          "developmentRoles": ["inspect"],
          "eventPresentation": {
            "metadata": {
              "query": {
                "param": "query",
                "kind": "string"
              },
              "queryCount": {
                "param": "query",
                "kind": "number",
                "default": 1
              }
            },
            "resultMetadata": {
              "outputPreview": { "path": "output", "kind": "preview" },
              "returnedItemCount": { "path": "data.returnedItemCount", "kind": "number" },
              "totalItemCount": { "path": "data.itemCount", "kind": "number" },
              "sourceTruncated": { "path": "data.truncated", "kind": "boolean" }
            }
          },
          "skills": ["memory_lookup_skill"],
          "operations": {
            "search_memory": {
              "summary": "Search stored memory entries using one bounded query.",
              "input": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "query": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4096
                  }
                },
                "required": ["query"]
              },
              "effect": "read_only",
              "approval": "request_policy"
            }
          }
        },
        "memory_add": {
          "description": "Add a long-term semantic memory entry only when the user explicitly asks to remember or store a personal fact/preference for future conversations. Do not use memory_add as a substitute for saving files, documents, reports, artifacts, or generated output content; when the user asks for a file or artifact, use the appropriate filesystem mutation tool.",
          "routingCapability": "semantic_mutation",
          "developmentRoles": ["mutate"],
          "eventPresentation": {
            "metadata": {
              "contentLength": {
                "param": "content",
                "kind": "length"
              },
              "inputPreview": { "param": "content", "kind": "string" }
            },
            "resultMetadata": {
              "outputPreview": { "path": "output", "kind": "preview" },
              "savedId": { "path": "data.id", "kind": "preview" }
            }
          },
          "skills": ["memory_mutation_skill"],
          "operations": {
            "add_memory": {
              "summary": "Store one explicit long-term memory entry.",
              "input": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "content": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": ["content"]
              },
              "effect": "mutating",
              "approval": "request_policy"
            }
          }
        },
        "memory_delete": {
          "description": "Delete memory entry by exact id only",
          "routingCapability": "semantic_mutation",
          "developmentRoles": ["mutate"],
          "eventPresentation": {
            "metadata": {
              "id": {
                "param": "id",
                "kind": "string"
              }
            },
            "resultMetadata": {
              "outputPreview": { "path": "output", "kind": "preview" },
              "deletedCount": { "path": "data.deletedCount", "kind": "number" }
            }
          },
          "skills": ["memory_mutation_skill"],
          "operations": {
            "delete_memory": {
              "summary": "Delete one stored memory entry by its exact ID.",
              "input": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": ["id"]
              },
              "effect": "mutating",
              "approval": "request_policy"
            }
          }
        }
      }
    }
  }
}

Client extensions

Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.

  • ai.abot.runtime