Graph
The Graph tab shows the grounded entities and relationships that have been imported from a Hindsight memory bank. The left side lists entities and edges; the right side shows the details for whichever item you select.
Layout
The Graph tab is split into three resizable panels:
- Entities (top left) — grounded nodes such as people, organizations, projects, products, or any other entity type imported from Hindsight.
- Edges (bottom left) — grounded relationships between those entities.
- Details (right) — the full information panel for the selected entity or edge.
You can drag the resize handles to change panel sizes, and double-click a handle to reset it.
Entities list
Entities are displayed as rows in the top-left panel. Each row shows:
| Field | What it tells you |
|---|---|
| Label | The human-readable name of the entity. |
| Type and ID | The entity type (for example person, project, product) followed by its stable ID. |
| Left border color | A color assigned to the entity type so you can scan the list quickly. |
Click any entity to open its details in the right panel.
Edges list
Edges are displayed in the bottom-left panel. Each row shows:
| Field | What it tells you |
|---|---|
| Source → Target | The two entities connected by the relationship. |
| Description / type | A short description of the relationship, or the relationship type if no description is available. |
| Edge count badge | When multiple physical edges are grouped under a single edge context, the badge shows how many edges are in that group. |
Click any edge to open its details in the right panel.
Mental-model-driven edge contexts can represent many concrete Hindsight relationships as one conceptual edge. The group row lets you see that an edge context exists, while the child rows beneath it show the individual physical edges.
Details panel
When you select an entity or an edge, the right panel shows everything architxt knows about that item. The sections are the same for both nodes and edges unless noted below.
Header
- Title — the entity label, or the edge description if one exists.
- Subtitle — the entity ID, or the
source_id → target_idpair for an edge. - Badges — entity labels (for nodes) or the edge type (for edges).
Mental model refs
Lists any contextual mental models attached to this entity or edge. For each model you see:
| Field | Meaning |
|---|---|
| Scope badge | Whether the model is attached to a node, edge, seed, or other scope. |
| External ID | The stable Hindsight ext_id of the model. |
| Template role | The template role the model was derived from. |
| Attached / fetched | When the model was attached to the graph and when its content was last fetched from Hindsight. |
| Content hash | A hash used to detect content changes. |
| Refresh status | Whether the last refresh succeeded, was skipped, or errored — and the error if one occurred. |
Provenance
Shows where the item came from — for example, whether it was imported from Hindsight, created by a sync job, or produced by a specific pipeline stage. Empty provenance means the source was not recorded.
Stored data
The raw properties stored for this entity or edge, excluding provenance and legacy computed fields. This is useful when you need to see the underlying values that feed into models or sync logic.
Timestamps
- Last refreshed — most recent mental-model content refresh across all attached models.
- Created — when the item first appeared in the contextual graph.
- Updated — when the item's record was last modified.
- Last seen — when the item was most recently observed during a sync.
Interactions
| Action | What it does |
|---|---|
| Click an entity or edge | Opens its details in the right panel. |
| Search | Filters both entities and edges by label, ID, type, source, or target. |
| Drag resize handles | Resizes the panels. |
| Double-click a resize handle | Resets that split to its default size. |
| Export | Opens the export dialog for the current bank's graph. |
Export
The Export button sits on the same row as the graph search bar and the node/edge count. Clicking it opens a dialog where you choose how to download the current bank's contextual graph.
| Option | What it controls | |
|---|---|---|
| Format | The export file format. | |
| Filename base | An optional prefix for the downloaded files. If you leave this blank, architxt uses the bank name and today's date. | |
| Undirected edges only | When checked, the export contains only edges explicitly marked as undirected. | |
| Entity Content (JSON only) | When checked, every mental-model ref attached to a node is expanded with its normalized envelope content. | |
| Edge Content (JSON only) | When checked, every mental-model ref attached to a grounded co-occurrence edge is expanded with its normalized envelope content. Other edges are left unchanged. |
The two content checkboxes are only available when Format is set to JSON. They are disabled for all other export formats because those formats do not carry mental-model model_refs in a way that can meaningfully include full envelope content.
Embedded mental-model content
When Entity Content is enabled, each node properties.provenance.model_refs[] entry gains a content field containing the normalized envelope of the referenced Hindsight mental model. The envelope follows the standard architxt shape — narratives, graph, tables, and diagrams — and is produced by toEnvelopeWithFallback from the model's reflect_response.
When Edge Content is enabled, the same content field is added to model_refs on grounded co-occurrence edges (edges whose properties.labels contains 'grounded'). Non-grounded edges keep their model_refs but receive no content field, so their mental models are not fetched.
If a referenced model cannot be fetched, the content field is set to null and the export continues. Each referenced model is fetched individually, so large graphs with many attached models may take longer to export when these options are enabled.
Supported formats
| Format | Download | |
|---|---|---|
| JSON | A single .json file containing the nodes, edges, export metadata, and (optionally) embedded mental-model envelope content. | |
| GraphML | A single .graphml file for tools that support the GraphML format. | |
| GEXF | A single .gexf file for Gephi and other GEXF-compatible tools. | |
| Cypher | A single .cypher file containing Neo4j-flavoured Cypher statements. | |
| CSV | Two files: nodes.csv and edges.csv. The node file has an id and labels column plus any stored properties; the edge file has id, source_id, target_id, type, and directed columns plus any stored properties. | |
| C4 (Structurizr DSL) | A single .dsl file in Structurizr DSL format, using the C4 element and relationship mappings defined on entity/edge types. | |
| C4 (Mermaid) | A single .mmd file in Mermaid C4 diagram format, using the same C4 mappings. | |
| ArchiMate XML | A single .xml file in ArchiMate Open Exchange Format. |
API filtering
The export dialog calls the /contextual-graph/export endpoint. The same endpoint can be used directly with the following query parameters:
| Parameter | Effect | |
|---|---|---|
server_id (required) | The Hindsight server to export from. | |
bank_id (required) | The bank to export from. | |
format | json (default), graphml, gexf, cypher, csv, c4, c4-mermaid, or archimate. | |
labels | Comma-separated node labels. Only nodes that have all of these labels are included. | |
id_prefix | Include only nodes whose ID starts with this prefix. | |
ids | Comma-separated list of exact node IDs to include. | |
source_id | Include only edges that originate from this node ID. | |
target_id | Include only edges that point to this node ID. | |
type | Include only edges of this relationship type. Pass an empty value to match untyped edges. | |
undirected | true to include only edges explicitly marked as undirected. | |
include_entity_content | true to embed normalized mental-model envelope content in every node model_refs entry. JSON format only. | |
include_edge_content | true to embed normalized mental-model envelope content in grounded co-occurrence edge model_refs entries. JSON format only. |
When any node selector is used (labels, id_prefix, or ids), the export trims the edge list to edges whose source and target are both in the returned node set, so the download stays a coherent subgraph.
Example JSON output with content enabled
{
"meta": {
"server_id": 1,
"bank_id": "Mozart-API",
"format": "json",
"include_entity_content": true,
"include_edge_content": true,
"node_count": 2,
"edge_count": 1
},
"nodes": [
{
"id": "svc:SVC-005",
"labels": ["service"],
"properties": {
"provenance": {
"source": "hindsight",
"model_refs": [
{
"role": "sys_entity_summary",
"ext_id": "summary-svc-005",
"content": {
"narratives": [{ "narrative_name": "Summary", "narrative": "..." }],
"graph": { "name": "...", "nodes": [], "edges": [] },
"tables": [],
"diagrams": []
}
}
]
}
}
}
],
"edges": [
{
"id": "e1",
"source_id": "svc:SVC-005",
"target_id": "com:COM-001",
"type": null,
"properties": {
"directed": false,
"labels": ["grounded", "active"],
"provenance": {
"source": "contextual-graph",
"model_refs": [
{
"role": "sys_edge_context",
"ext_id": "edge-context-e1",
"content": {
"narratives": [{ "narrative_name": "Context", "narrative": "..." }],
"graph": { "name": "...", "nodes": [], "edges": [] },
"tables": [],
"diagrams": []
}
}
]
}
}
}
]
}
How the Graph tab relates to the others
The Graph tab contains the grounded items: things already imported and promoted from Hindsight. Candidate nodes and edges that have not been promoted live in the Candidates tab, and the contextual mental models attached to graph items are managed in the Mental Models tab. The background work that imports and refreshes these items is shown in Sync Jobs.