Download OpenAPI specification:
API du Knowledge Graph Octopia.
Deux surfaces :
POST /octopia/api/ingest) : les connecteurs
externes poussent leurs données dans le graphe. Auth par clé API via
l'en-tête X-Connector-Key./api/v1/octopia/memories) : mémoire sémantique
partagée entre devs et agents (fait/préférence/contexte/insight),
recherchable sémantiquement et rattachée aux entités du graphe (client,
projet…). Auth OAuth2 Bearer (PAT, ex. via le device flow CLI) avec le
scope adapté au verbe (read pour les lectures — y compris la recherche
exposée en POST /memories/search — write pour les mutations).Pour l'authentification, voir la page Authentification.
Importe des entités et des relations dans le Knowledge Graph Octopia depuis un connecteur externe.
Authentification : via header X-Connector-Key (clé API du connecteur, pas OAuth2).
Workflow typique :
Types d'entités supportés : person, company, team, skill, tag, project, contract, product, service, location, event, role
Cas d'usage :
required | Array of objects Liste des entités à créer ou mettre à jour (upsert par nom) |
Array of objects Liste des relations à créer entre entités |
{- "entities": [
- {
- "type": "company",
- "name": "ACME Corporation",
- "attributes": {
- "industry": "technologie",
- "city": "Paris",
- "country": "FR"
}
}, - {
- "type": "person",
- "name": "Jean Dupont",
- "attributes": {
- "email": "jean.dupont@acme.fr"
}
}, - {
- "type": "project",
- "name": "Migration Cloud 2025",
- "attributes": {
- "status": "active"
}
}
], - "relations": [
- {
- "from_type": "person",
- "from_name": "Jean Dupont",
- "to_type": "company",
- "to_name": "ACME Corporation",
- "edge_type": "works_in"
}, - {
- "from_type": "person",
- "from_name": "Jean Dupont",
- "to_type": "project",
- "to_name": "Migration Cloud 2025",
- "edge_type": "works_on_project"
}
]
}{- "imported": 3,
- "updated": 0,
- "errors": [ ]
}Cerveau d'entreprise : mémoire sémantique partagée entre devs et agents.
Chaque mémoire porte son auteur (user_id), est recherchable
sémantiquement par tous, et se rattache à des entités du graphe (client,
projet…) via links — ces entités sont les points de convergence
(documents hubdoc, mémoires…) qui rendent le graphe naviguable.
| memory_type | string Enum: "fact" "preference" "context" "insight" |
| scope[type] | string Type d'entité de rattachement (ex. |
| scope[name] | string Nom de l'entité de rattachement. |
| per_page | integer [ 1 .. 200 ] Default: 50 |
| page | integer >= 1 Default: 1 |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "content": "string",
- "memory_type": "fact",
- "category": "professional",
- "confidence": 0.1,
- "salience": 0.1,
- "tags": [
- "string"
], - "origin": "string",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "similarity": 0.1,
- "related_entities": [
- {
- "type": "company",
- "label": "DSH"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| content required | string >= 30 characters Fait atomique en langage naturel (≥ 30 caractères ; un contenu trop court ou bruité est rejeté par le quality gate en |
| memory_type | string Default: "context" Enum: "fact" "preference" "context" "insight" |
| category | string Enum: "professional" "personal" "project" "domain" "technical" |
| confidence | number <float> [ 0 .. 1 ] Default: 0.8 |
| tags | Array of strings |
Array of objects (EntityLink) Entités du graphe auxquelles rattacher la mémoire (client, projet…). |
{- "content": "Le client DSH utilise l'ERP Aareon Prem'Habitat pour ses signalements.",
- "memory_type": "fact",
- "category": "professional",
- "confidence": 0.8,
- "tags": [
- "string"
], - "links": [
- {
- "type": "client",
- "name": "DSH"
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "content": "string",
- "memory_type": "fact",
- "category": "professional",
- "confidence": 0.1,
- "salience": 0.1,
- "tags": [
- "string"
], - "origin": "string",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "similarity": 0.1,
- "related_entities": [
- {
- "type": "company",
- "label": "DSH"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "links": [
- {
- "type": "client",
- "name": "DSH",
- "id": "string"
}
]
}| id required | string <uuid> Example: 019951a3-01b7-7eb9-88bb-f872a01ed886 Identifiant de la ressource |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "content": "string",
- "memory_type": "fact",
- "category": "professional",
- "confidence": 0.1,
- "salience": 0.1,
- "tags": [
- "string"
], - "origin": "string",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "similarity": 0.1,
- "related_entities": [
- {
- "type": "company",
- "label": "DSH"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> Example: 019951a3-01b7-7eb9-88bb-f872a01ed886 Identifiant de la ressource |
{- "error": "unauthorized",
- "message": "Authentification requise"
}Recherche sémantique (pgvector) sur tous les auteurs (mémoire commune),
enrichie des entités liées du graphe. Optionnellement restreinte à une
entité via scope.
| query required | string Texte de recherche en langage naturel. |
| memory_type | string Enum: "fact" "preference" "context" "insight" |
| limit | integer [ 1 .. 50 ] Default: 5 |
object Restreint la recherche aux mémoires liées à cette entité. |
{- "query": "quel ERP utilise DSH ?",
- "memory_type": "fact",
- "limit": 5,
- "scope": {
- "type": "client",
- "name": "DSH"
}
}{- "query": "string",
- "count": 0,
- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "content": "string",
- "memory_type": "fact",
- "category": "professional",
- "confidence": 0.1,
- "salience": 0.1,
- "tags": [
- "string"
], - "origin": "string",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "similarity": 0.1,
- "related_entities": [
- {
- "type": "company",
- "label": "DSH"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}