Memory Canvas
curl --request GET \
--url https://api.userepo.com/v1/memory-canvasimport requests
url = "https://api.userepo.com/v1/memory-canvas"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.userepo.com/v1/memory-canvas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.userepo.com/v1/memory-canvas",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.userepo.com/v1/memory-canvas"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.userepo.com/v1/memory-canvas")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.userepo.com/v1/memory-canvas")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"nodes": [
{
"id": "<string>",
"kind": "<string>",
"label": "<string>",
"count": 123
}
],
"edges": [
{}
]
}Reference
Memory Canvas
A graph view of what Repo knows — entities, relationships, and source channels.
GET
/
v1
/
memory-canvas
Memory Canvas
curl --request GET \
--url https://api.userepo.com/v1/memory-canvasimport requests
url = "https://api.userepo.com/v1/memory-canvas"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.userepo.com/v1/memory-canvas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.userepo.com/v1/memory-canvas",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.userepo.com/v1/memory-canvas"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.userepo.com/v1/memory-canvas")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.userepo.com/v1/memory-canvas")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"nodes": [
{
"id": "<string>",
"kind": "<string>",
"label": "<string>",
"count": 123
}
],
"edges": [
{}
]
}The memory canvas is a structured snapshot of your org’s memory, surfaced as nodes (entities) and edges (relationships). It powers the Memory screen in the console and is useful for agents that need to reason about the shape of available context, not just retrieve text.
Required action
memory:read
Query parameters
integer
default:"80"
Max number of nodes to return. Min 10, max 120.
Response
{
"nodes": [
{ "id": "memory", "kind": "core", "label": "memory", "count": 142 },
{ "id": "channel:C0123", "kind": "channel", "label": "#brand", "count": 38 },
{ "id": "entity:project:brand-refresh", "kind": "project", "label": "Brand refresh", "count": 12 },
{ "id": "entity:person:sam-rivera", "kind": "person", "label": "Sam Rivera", "count": 9 }
],
"edges": [
{ "from": "memory", "to": "channel:C0123", "kind": "contains" },
{ "from": "channel:C0123", "to": "entity:project:brand-refresh", "kind": "mentions" }
]
}
array
array
Relationships between nodes. Edge
kind is contains, mentions, or from_channel.When to use this
- Onboard a new agent by giving it a map of “what does this company even talk about?”
- Build a UI that lets users browse memory by topic instead of search
- Surface “you might also want to ask about…” suggestions