---
title: "ai.memory-result@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/ai.memory-result"
updated: null
---

# ai.memory-result@1 · OpenVibe.Services

HTML: [ai.memory-result@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/ai.memory-result)

# AiMemoryResult `ai.memory-result@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: ai
- Visibility: first-party
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/ai/memory-result.v1.json`](/docs/contracts/ai.memory-result.json)

ai.memory-result@1 (OpenVibe.AI; Memory M2): what the memory API answers: a list of items (GET /items, the batch import), one item (GET or PATCH /items/{id}), the cached profile (GET /profile), a count of deleted rows (DELETE) or the agent search's items (GET /search, at most 8, active only). The text is the person's own and is never logged.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `items` | [ai.memory-item](/docs/contracts/ai.memory-item) |  |  | - `maxItems 200` |
| `item` | [ai.memory-item](/docs/contracts/ai.memory-item) |  |  |  |
| `profile` | object |  |  | - `no other fields` |
| `profile.scope` | string | yes |  | - `pattern ^(user\|project:[a-z0-9][a-z0-9._-]{0,63})$` |
| `profile.text` | string | yes | The cached summary of the person's own notes for this scope. It passed noLooks before it was stored. | - `maxLength 4000` |
| `profile.items_hash` | string | yes | sha256 of the sorted item MACs the profile was built from. | - `pattern ^[0-9a-f]{64}$` |
| `profile.built_at` | string | yes |  | - `format date-time` |
| `deleted` | integer |  |  | - `minimum 0` |
| `count` | integer |  |  | - `minimum 0` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: items

~~~~
{
  "items": [
    {
      "id": "mem_01JZ0000000000000000000001",
      "owner": "user:usr_01JZ0000000000000000000AAA",
      "scope": "user",
      "kind": "preference",
      "text": "Prefers short answers and a code block.",
      "source": "person",
      "status": "active",
      "confidence": 1,
      "created_at": "2026-10-30T09:00:00.000Z",
      "updated_at": "2026-10-30T09:00:00.000Z"
    }
  ],
  "count": 1
}
~~~~

Rejected: item-without-text

~~~~
{
  "item": {
    "id": "mem_01JZ0000000000000000000001",
    "owner": "user:usr_01JZ0000000000000000000AAA",
    "scope": "user",
    "kind": "preference",
    "source": "person",
    "status": "active",
    "confidence": 1,
    "created_at": "2026-10-30T09:00:00.000Z",
    "updated_at": "2026-10-30T09:00:00.000Z"
  }
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('ai.memory-result@1', value);   // { valid, errors: [{ path, message }] }
~~~~
