Repository navigation
v0.13.1
Request and response shapes checked against a live v0.12.0 server (the same contracts as
v0.11.108). Every fix below was a call that failed or a field that was wrong on both servers.
Changed (signatures)
memory_link()(sync and async) takes a required keywordagent_idand an optional
label. The server'sPOST /v1/memories/{id}/linksrequiresagent_id; without it every
call failed with422, so no working code breaks.edge_typeis still accepted but not sent:
the server records every explicit link aslinked_by.DakeraDelegationHelper.link_delegation()(TealTiger integration) takes a required keyword
agent_id. Links arelinked_byedges labelleddelegated_from(the server cannot store a
custom edge type, so the olddelegated_fromedges were never created) and
get_delegation_chain()followslinked_byedges.summarize(dry_run=True)raisesValueErrorbefore sending anything: the server has no dry
run and always stores the summary memory (dry_runwas silently ignored).summarize()also
raisesValueErrorwith fewer than twomemory_ids, andknowledge_graph()without
memory_id; the server answered both with422.
Added
tagsonrecall()andsearch_memories()(sync and async): memories carrying at least one
of the tags. The server accepts it; the SDK had no way to send it.EdgeType.SUPERSEDES(edges the server creates when a newer memory supersedes an older one);
EdgeTypeis now lenient, so a type this SDK does not know parses instead of raising.GraphNode.edges,MemoryGraph.node_count,GraphLinkResponse.from_id/to_id/
edge_type,GraphExport.namespace/edges,MemoryEntitiesResponse.count.
Fixed
update_memory()(sync and async) sendsagent_idas a query parameter.PUT /v1/memory/update/{id}reads it from the query string, so every update failed with
400 INVALID_REQUEST(missing fieldagent_id).AsyncDakeraClient.get_memory()sendsagent_idas a query parameter too (the sync client
already did);GET /v1/memory/get/{id}needs it.- Graph edges: the server sends
{from_id, to_id, edge_type, weight, created_at}with no edge
id.GraphEdge.from_dict()requiredid,source_idandtarget_id, somemory_graph(),
knowledge_query(),knowledge_export()andagent_graph_export()raisedKeyErroron any
graph with edges.source_id/target_idnow carryfrom_id/to_id;idis"". memory_graph(): the server lists edges per node;MemoryGraph.edgesis now their union
(it was always empty).typesis applied client-side (the server ignores it and returns
every type).memory_path()sent the target astarget; the server readsto, so every call failed with
400. The answer{from_id, to_id, path, hop_count}is parsed intoGraphPath.memory_link()parsed{"edge": ...}; the server answers{from_id, to_id, edge_type}
(KeyErrorafter the request).GraphLinkResponse.edgeis built from it (weight 1.0).agent_graph_export()readformatanddata; the server answers{agent_id, namespace, node_count, edge_count, edges}and ignoresformat(KeyError).GraphExport.dataholds the
answer as a JSON string.memory_entities(): the server answers{entities, count}withoutmemory_id(KeyError);
memory_idis now the requested id.- Examples:
advanced.pyandplayground/quickstart.pylink withagent_id;
knowledge_graph.pyis rewritten against the real API (it called methods with arguments the
SDK does not have). - Integration tests cover update/get (sync and async), recall with tags, link, graph, path,
agent export, knowledge query and memory entities against the real server.
What's Changed
Bug Fixes
- fix: request and response shapes the server really uses (0.13.1) @ferhimedamine (#200)
Full Changelog: v0.13.0...v0.13.1