CrabRAG: Why Automated Assistants Need Graph Memory, Not More Tokens — Stephen Chin, Neo4j
Read full transcript 15 segments
-
My name's Steven Chin. I run the My name's Steven Chin. I run the developer relations team here at Neo developer relations team here at Neo developer relations team here at Neo Forj. Forj. Forj. And I'm excited to talk to you about And I'm excited to talk to you about And I'm excited to talk to you about something we've all come to love, our something we've all come to love, our something we've all come to love, our our crustaceian friends. So, we have um our crustaceian friends. So, we have um our crustaceian friends. So, we have um um openclaw mascot. We have a bunch of um openclaw mascot. We have a bunch of um openclaw mascot. We have a bunch of other crustaceians. And we're going to other crustaceians. And we're going to other crustaceians. And we're going to we're going to focus on one member of we're going to focus on one member of we're going to focus on one member of the crustaceian family. I I I love crab. the crustaceian family. I I I love crab. the crustaceian family. I I I love crab. So, our little boy, Crab D. So, our little boy, Crab D. So, our little boy, Crab D. And I think in the in the journey to to And I think in the in the journey to to And I think in the in the journey to to figure out how to apply agents, how to figure out how to apply agents, how to figure out how to apply agents, how to do things which are more autonomous, do things which are more autonomous, do things which are more autonomous, we're all looking for ways where we can we're all looking for ways where we can we're all looking for ways where we can get better results, more accurate get better results, more accurate get better results, more accurate answers, and to actually capture all of answers, and to actually capture all of answers, and to actually capture all of this. But the tools kind of work against this. But the tools kind of work against this. But the tools kind of work against us. So, um, here's our our friend Crab us. So, um, here's our our friend Crab us. So, um, here's our our friend Crab D. He's he's a personal assistant, very D. He's he's a personal assistant, very D. He's he's a personal assistant, very happy, very eager. He wants to to help happy, very eager. He wants to to help happy, very eager. He wants to to help us out with our lives, maybe to help us us out with our lives, maybe to help us us out with our lives, maybe to help us to code, to help us to, you know, manage to code, to help us to, you know, manage to code, to help us to, you know, manage our email, to do different things. But our email, to do different things. But our email, to do different things. But he's got a problem.
-
he's got a problem. he's got a problem. And our poor boy Krabby D has a very bad And our poor boy Krabby D has a very bad And our poor boy Krabby D has a very bad memory. He wakes up every day and his memory. He wakes up every day and his memory. He wakes up every day and his memory file flips and now it's a new day memory file flips and now it's a new day memory file flips and now it's a new day and he forgets everything from and he forgets everything from and he forgets everything from yesterday. Has this happened to you yesterday. Has this happened to you yesterday. Has this happened to you where you you wake up and you're using where you you wake up and you're using where you you wake up and you're using Open Claw and suddenly it's on a new set Open Claw and suddenly it's on a new set Open Claw and suddenly it's on a new set of memory files and remembers nothing of memory files and remembers nothing of memory files and remembers nothing that you actually did the previous day. He's got a lot of tools at his disposal. He's got a lot of tools at his disposal. I mean, we love giving our agents tools, I mean, we love giving our agents tools, I mean, we love giving our agents tools, but sometimes he doesn't pick the right but sometimes he doesn't pick the right but sometimes he doesn't pick the right tool for the job. tool for the job. tool for the job. I don't think either of these are going I don't think either of these are going I don't think either of these are going to help him drink his his bowl of soup. to help him drink his his bowl of soup. to help him drink his his bowl of soup. So, that's not the tool which he was So, that's not the tool which he was So, that's not the tool which he was looking to to reach for. and a little bit forgetful at times. So, and a little bit forgetful at times. So, you know, I think I don't remember you know, I think I don't remember you know, I think I don't remember everybody I meet, but I'm pretty good at everybody I meet, but I'm pretty good at everybody I meet, but I'm pretty good at faces. Like, if I've if I've met you faces. Like, if I've if I've met you faces. Like, if I've if I've met you before, I recognize faces. It's like, before, I recognize faces. It's like, before, I recognize faces. It's like, pleased to meet you. Um, Crab D is not pleased to meet you. Um, Crab D is not pleased to meet you. Um, Crab D is not as good at that. So, very forgetful. as good at that. So, very forgetful. as good at that. So, very forgetful. It's like you're retaching it every day It's like you're retaching it every day It's like you're retaching it every day to do the same sort of tasks. And we to do the same sort of tasks. And we to do the same sort of tasks. And we want agents which are more helpful, want agents which are more helpful, want agents which are more helpful, which are able to do more for us. So, which are able to do more for us. So, which are able to do more for us. So, let's dig into how CrabD actually works.
-
let's dig into how CrabD actually works. let's dig into how CrabD actually works. So So So it's basically a a memory loop, right? it's basically a a memory loop, right? it's basically a a memory loop, right? So we're we're prompting, we're thinking So we're we're prompting, we're thinking So we're we're prompting, we're thinking about the response, maybe calling tools, about the response, maybe calling tools, about the response, maybe calling tools, observing what happens. But the hard observing what happens. But the hard observing what happens. But the hard part is the memory. The hard part is part is the memory. The hard part is part is the memory. The hard part is what you put in context, what you're what you put in context, what you're what you put in context, what you're recalling from. And recalling from. And recalling from. And the way you have memory structured in the way you have memory structured in the way you have memory structured in most tools, this is an example of um how most tools, this is an example of um how most tools, this is an example of um how open cloth structures things is you have open cloth structures things is you have open cloth structures things is you have a sol for your agents memory. You have a sol for your agents memory. You have a sol for your agents memory. You have maybe um memory files, you have maybe um memory files, you have maybe um memory files, you have different tool files, you have daily different tool files, you have daily different tool files, you have daily memory files. Now, if you look at this, memory files. Now, if you look at this, memory files. Now, if you look at this, there's one thing which is in common there's one thing which is in common there's one thing which is in common with all of these. They're just markdown with all of these. They're just markdown with all of these. They're just markdown files. So, markdown files are great. files. So, markdown files are great. files. So, markdown files are great. That's easy for us to read. Like, we can That's easy for us to read. Like, we can That's easy for us to read. Like, we can we can look through it. We can quickly we can look through it. We can quickly we can look through it. We can quickly figure out what's not needed and compact figure out what's not needed and compact figure out what's not needed and compact them. Um they're intentionally small for them. Um they're intentionally small for them. Um they're intentionally small for agents because you have a limited agents because you have a limited agents because you have a limited context window and also you need to keep context window and also you need to keep context window and also you need to keep the right things at the top of the the right things at the top of the the right things at the top of the context. context. context. But if your whole memory is a bunch of But if your whole memory is a bunch of But if your whole memory is a bunch of markdown files, you're wasting a lot of markdown files, you're wasting a lot of markdown files, you're wasting a lot of tokens. So, um, my my average agents are tokens. So, um, my my average agents are tokens. So, um, my my average agents are are loading up at least 100k in tokens are loading up at least 100k in tokens are loading up at least 100k in tokens for each round. Um, they're doing a a for each round. Um, they're doing a a for each round. Um, they're doing a a lot of skills. They're adding a lot of lot of skills. They're adding a lot of lot of skills. They're adding a lot of things into the context constantly. It's things into the context constantly. It's things into the context constantly. It's very repetitive because they they very repetitive because they they very repetitive because they they basically load up everything in the basically load up everything in the basically load up everything in the hopes that something will be useful in hopes that something will be useful in hopes that something will be useful in the context. At small scale that works the context. At small scale that works the context. At small scale that works where you get the results you want with where you get the results you want with where you get the results you want with a high quality model. It doesn't work at
-
a high quality model. It doesn't work at a high quality model. It doesn't work at large scale and I'm going to show a demo large scale and I'm going to show a demo large scale and I'm going to show a demo of large scale where we take open claw of large scale where we take open claw of large scale where we take open claw and we let it run loose on my home lab. and we let it run loose on my home lab. and we let it run loose on my home lab. So um high demo risk but a lot of fun So um high demo risk but a lot of fun So um high demo risk but a lot of fun and um a classic digital twin scenario. and um a classic digital twin scenario. and um a classic digital twin scenario. So I think we'll have we'll have a lot So I think we'll have we'll have a lot So I think we'll have we'll have a lot of fun here. of fun here. of fun here. Um anybody use Hermes agent at all? Um anybody use Hermes agent at all? Um anybody use Hermes agent at all? >> Okay. I'm I'm a big fan of Hermes agent. >> Okay. I'm I'm a big fan of Hermes agent. >> Okay. I'm I'm a big fan of Hermes agent. Um I think it's got a much better memory Um I think it's got a much better memory Um I think it's got a much better memory system. It kind of at the end of each system. It kind of at the end of each system. It kind of at the end of each task it goes and it reflects and it adds task it goes and it reflects and it adds task it goes and it reflects and it adds back in new skills or new things which back in new skills or new things which back in new skills or new things which it needs. So um it's a really powerful it needs. So um it's a really powerful it needs. So um it's a really powerful system system system and um you know again and um you know again and um you know again we're relying a lot on markdown files. we're relying a lot on markdown files. we're relying a lot on markdown files. Skills are just basically markdown Skills are just basically markdown Skills are just basically markdown files. But we can teach the agent to do files. But we can teach the agent to do files. But we can teach the agent to do a lot of things with skills and it can a lot of things with skills and it can a lot of things with skills and it can it can get the right skill if it gets it can get the right skill if it gets it can get the right skill if it gets loaded up and then good things happen. loaded up and then good things happen. loaded up and then good things happen. But sometimes we don't get the right But sometimes we don't get the right But sometimes we don't get the right skill loaded up. So our our poor boy skill loaded up. So our our poor boy skill loaded up. So our our poor boy crabd here is not going to get that crabd here is not going to get that crabd here is not going to get that clam. He just doesn't have the open clam. He just doesn't have the open clam. He just doesn't have the open clamshell skill.
-
clamshell skill. clamshell skill. Lots of shrimp, no clams. Lots of shrimp, no clams. Lots of shrimp, no clams. Maybe you picked the wrong skill for the Maybe you picked the wrong skill for the Maybe you picked the wrong skill for the job and suddenly you're you're jet job and suddenly you're you're jet job and suddenly you're you're jet skiing on the on the beach, right? This skiing on the on the beach, right? This skiing on the on the beach, right? This this is not this is not going to get him this is not this is not going to get him this is not this is not going to get him very far. very far. very far. And And And sometimes you you might get that clam sometimes you you might get that clam sometimes you you might get that clam open, but then you don't have the skill open, but then you don't have the skill open, but then you don't have the skill to eat them. to eat them. to eat them. So skills, you need to have the right So skills, you need to have the right So skills, you need to have the right skills, the right chain of skills. Um skills, the right chain of skills. Um skills, the right chain of skills. Um actually we have an awesome project by actually we have an awesome project by actually we have an awesome project by one of the neo forj folks which is just one of the neo forj folks which is just one of the neo forj folks which is just bananas as an arvix paper which is a bananas as an arvix paper which is a bananas as an arvix paper which is a graph for skills. So that's an exciting graph for skills. So that's an exciting graph for skills. So that's an exciting way of like like figuring out what the way of like like figuring out what the way of like like figuring out what the right skills are but maybe we can do right skills are but maybe we can do right skills are but maybe we can do better. So um goose is a project that's better. So um goose is a project that's better. So um goose is a project that's part of the um agentic AI foundation is part of the um agentic AI foundation is part of the um agentic AI foundation is a new foundation which MCP is part of. a new foundation which MCP is part of. a new foundation which MCP is part of. Um anthropic is backing this. We're Um anthropic is backing this. We're Um anthropic is backing this. We're we're also a member of this. So, it's a we're also a member of this. So, it's a we're also a member of this. So, it's a it's a great it's a great it's a great automation tool for a lot of enterprise automation tool for a lot of enterprise automation tool for a lot of enterprise workflows. You can also use it kind of workflows. You can also use it kind of workflows. You can also use it kind of like a personal assistant. It relies like a personal assistant. It relies like a personal assistant. It relies heavily on MCP as the layer, over 70 MCP heavily on MCP as the layer, over 70 MCP heavily on MCP as the layer, over 70 MCP extensions. And extensions. And extensions. And what it does is it treats memory just what it does is it treats memory just what it does is it treats memory just like another MCP server.
-
like another MCP server. like another MCP server. So, this is great, right? It's it's So, this is great, right? It's it's So, this is great, right? It's it's pluggable. You can call different pluggable. You can call different pluggable. You can call different commands on it to retrieve memories, commands on it to retrieve memories, commands on it to retrieve memories, remember memories, um, forget memories. remember memories, um, forget memories. remember memories, um, forget memories. Memories are just plain files on disks. Memories are just plain files on disks. Memories are just plain files on disks. So now you can manipulate them. So now you can manipulate them. So now you can manipulate them. So same great idea, same fundamental So same great idea, same fundamental So same great idea, same fundamental problem. We're storing the memory. We're problem. We're storing the memory. We're problem. We're storing the memory. We're storing the memory of agents as markdown storing the memory of agents as markdown storing the memory of agents as markdown files on disks. And files on disks. And files on disks. And again, you end up with what if what if again, you end up with what if what if again, you end up with what if what if you pick the wrong tool for the job, the you pick the wrong tool for the job, the you pick the wrong tool for the job, the wrong paddle? wrong paddle? wrong paddle? Now, in this case, if you pick the wrong Now, in this case, if you pick the wrong Now, in this case, if you pick the wrong paddle, you're a genius because you've paddle, you're a genius because you've paddle, you're a genius because you've invented the most the fastest rising invented the most the fastest rising invented the most the fastest rising sport in the US, which is pickle ball. sport in the US, which is pickle ball. sport in the US, which is pickle ball. Um, actually, the origin of pickle ball Um, actually, the origin of pickle ball Um, actually, the origin of pickle ball was was um a family wanted to create a was was um a family wanted to create a was was um a family wanted to create a new game and they just took what they new game and they just took what they new game and they just took what they had around the house, a bad men court, had around the house, a bad men court, had around the house, a bad men court, and um made up the rules along the way. and um made up the rules along the way. and um made up the rules along the way. So, creation can be good when you have So, creation can be good when you have So, creation can be good when you have the wrong tools. the wrong tools. the wrong tools. Maybe you remember everything, but it's Maybe you remember everything, but it's Maybe you remember everything, but it's too much. is too much weight because you too much. is too much weight because you too much. is too much weight because you can't actually solve the problem. So our can't actually solve the problem. So our can't actually solve the problem. So our poor friend Goose here is encumbered by poor friend Goose here is encumbered by poor friend Goose here is encumbered by too many notes, too many memories, too many notes, too many memories, too many notes, too many memories, or most dangerously or most dangerously or most dangerously now you have MCP tools. You're one step now you have MCP tools. You're one step now you have MCP tools. You're one step away from calling the forget command and away from calling the forget command and away from calling the forget command and just wiping out your own memory.
-
just wiping out your own memory. just wiping out your own memory. Okay, so we want to be able to do better Okay, so we want to be able to do better Okay, so we want to be able to do better than this. than this. than this. So vector databases, right? So vector databases, right? So vector databases, right? So we can store everything. We can So we can store everything. We can So we can store everything. We can create embeddings for it. Now we create embeddings for it. Now we create embeddings for it. Now we actually have a d a database. We can actually have a d a database. We can actually have a d a database. We can store it in a vector database. So this store it in a vector database. So this store it in a vector database. So this is great. I mean you have to pick the is great. I mean you have to pick the is great. I mean you have to pick the right vector database. Um right vector database. Um right vector database. Um and then now you can do similarity and then now you can do similarity and then now you can do similarity searches. So you can pull back searches. So you can pull back searches. So you can pull back information which is which is relevant. information which is which is relevant. information which is which is relevant. So we're doing much better. We have a So we're doing much better. We have a So we're doing much better. We have a larger repository of knowledge. We can larger repository of knowledge. We can larger repository of knowledge. We can pull back related information. Um open pull back related information. Um open pull back related information. Um open claw comes with pg vector out of the claw comes with pg vector out of the claw comes with pg vector out of the box. given embedding, you can just start box. given embedding, you can just start box. given embedding, you can just start using this. Um, lance DB is a great using this. Um, lance DB is a great using this. Um, lance DB is a great option. I'm going to use both of those option. I'm going to use both of those option. I'm going to use both of those in my demo. in my demo. in my demo. But the challenge here is similar what But the challenge here is similar what But the challenge here is similar what what vectors give you, which is what vectors give you, which is what vectors give you, which is similarity in vector space is not the similarity in vector space is not the similarity in vector space is not the same as actual relationships. same as actual relationships. same as actual relationships. And so you get hallucinations. You get a And so you get hallucinations. You get a And so you get hallucinations. You get a lot of problems when you're relying lot of problems when you're relying lot of problems when you're relying solely on vector lookup as the answer. solely on vector lookup as the answer. solely on vector lookup as the answer. And it compounds with more complex And it compounds with more complex And it compounds with more complex scenarios when you're doing things like scenarios when you're doing things like scenarios when you're doing things like like I'm going to show you an example of like I'm going to show you an example of like I'm going to show you an example of a digital twin. When you're doing things a digital twin. When you're doing things a digital twin. When you're doing things which are very complex, they they just which are very complex, they they just which are very complex, they they just don't scale and you make silly mistakes don't scale and you make silly mistakes don't scale and you make silly mistakes like this obviously is not what poor like this obviously is not what poor like this obviously is not what poor Crab D wanted to munch into and it's a Crab D wanted to munch into and it's a Crab D wanted to munch into and it's a very expensive lunch for him.
-
Also, it's sometimes impossible to get Also, it's sometimes impossible to get to the answer even though you have all to the answer even though you have all to the answer even though you have all the facts because those large multihop the facts because those large multihop the facts because those large multihop reasoning chains don't work on reasoning chains don't work on reasoning chains don't work on similarity searches. They're also very similarity searches. They're also very similarity searches. They're also very expensive on traditional relational expensive on traditional relational expensive on traditional relational databases. And often things look similar, And often things look similar, but they're not exactly the same. And but they're not exactly the same. And but they're not exactly the same. And this is one of the problems with the this is one of the problems with the this is one of the problems with the responses you get from a vector database responses you get from a vector database responses you get from a vector database is you suffer from getting facts which is you suffer from getting facts which is you suffer from getting facts which are related in some way and they're not are related in some way and they're not are related in some way and they're not your shell and you don't you don't want your shell and you don't you don't want your shell and you don't you don't want to take the wrong shell out of the to take the wrong shell out of the to take the wrong shell out of the locker room. That's that's very locker room. That's that's very locker room. That's that's very unfortunate. So enter graphs. Graphs are unfortunate. So enter graphs. Graphs are unfortunate. So enter graphs. Graphs are a great way of finding the a great way of finding the a great way of finding the relationships, finding those identities, relationships, finding those identities, relationships, finding those identities, bu mapping out the paths, getting that bu mapping out the paths, getting that bu mapping out the paths, getting that full chain full chain full chain and they're built for this sort of and they're built for this sort of and they're built for this sort of connected data. So now that you have connected data. So now that you have connected data. So now that you have first class nodes which are the the first class nodes which are the the first class nodes which are the the circles, edges, those are the circles, edges, those are the circles, edges, those are the relationships between different objects relationships between different objects relationships between different objects and then you can put properties on top and then you can put properties on top and then you can put properties on top of graphs to store information. You can of graphs to store information. You can of graphs to store information. You can also store embeddings in your graph and also store embeddings in your graph and also store embeddings in your graph and that gives you a way to both use vectors that gives you a way to both use vectors that gives you a way to both use vectors and graphs together. Um architecturally and graphs together. Um architecturally and graphs together. Um architecturally the demo I'm going to show you is um the demo I'm going to show you is um the demo I'm going to show you is um both a vector search and a graph search.
-
both a vector search and a graph search. both a vector search and a graph search. So it uses the vector search to get the So it uses the vector search to get the So it uses the vector search to get the seed nodes where it starts the traversal seed nodes where it starts the traversal seed nodes where it starts the traversal and then it uses a graph search pulling and then it uses a graph search pulling and then it uses a graph search pulling the the nearest neighbors and then the the nearest neighbors and then the the nearest neighbors and then ranking those by how related they are. ranking those by how related they are. ranking those by how related they are. And this gives you this complex multihop And this gives you this complex multihop And this gives you this complex multihop queries to solve more difficult more queries to solve more difficult more queries to solve more difficult more domain specific problems and to figure domain specific problems and to figure domain specific problems and to figure out where that where that reef is that out where that where that reef is that out where that where that reef is that we want to get to with all the the tasty we want to get to with all the the tasty we want to get to with all the the tasty um the tasty junk food across the ocean. And graphs are they're accurate so they And graphs are they're accurate so they give you very precise information. give you very precise information. give you very precise information. Explainable because you can look at the Explainable because you can look at the Explainable because you can look at the graph which got returned graph which got returned graph which got returned and auditable because now you can and auditable because now you can and auditable because now you can actually say these are the this is the actually say these are the this is the actually say these are the this is the context. This is the part of the graph context. This is the part of the graph context. This is the part of the graph which resulted in that answer. So it's which resulted in that answer. So it's which resulted in that answer. So it's very powerful and it gives you more very powerful and it gives you more very powerful and it gives you more tools as a developer where if you're not tools as a developer where if you're not tools as a developer where if you're not getting the right answer, you know where getting the right answer, you know where getting the right answer, you know where it's coming from. You can actually see it's coming from. You can actually see it's coming from. You can actually see and introspect the graph and you can and introspect the graph and you can and introspect the graph and you can change how you're doing extraction. You change how you're doing extraction. You change how you're doing extraction. You can reduce duplicate nodes in the graph can reduce duplicate nodes in the graph can reduce duplicate nodes in the graph and then you can get to and converge and then you can get to and converge and then you can get to and converge very quickly on a great answer. If very quickly on a great answer. If very quickly on a great answer. If you're not a graph expert, guess what you're not a graph expert, guess what you're not a graph expert, guess what Claude is. Claude can write cipher Claude is. Claude can write cipher Claude is. Claude can write cipher better than I can. Claude can extract better than I can. Claude can extract better than I can. Claude can extract build entity extractors and it can do build entity extractors and it can do build entity extractors and it can do pretty much everything you need to do to pretty much everything you need to do to pretty much everything you need to do to get started with graphs today as long as get started with graphs today as long as get started with graphs today as long as you know the the basic kind of model for you know the the basic kind of model for you know the the basic kind of model for what you want to accomplish. That's what what you want to accomplish. That's what what you want to accomplish. That's what I'm going to cover in the demo. So, I'm going to cover in the demo. So, I'm going to cover in the demo. So, we're going to do have Claud action into
-
we're going to do have Claud action into we're going to do have Claud action into the graph as he works. We're going to the graph as he works. We're going to the graph as he works. We're going to follow up by traversing, not rereading follow up by traversing, not rereading follow up by traversing, not rereading it. And then in a fresh session, we will it. And then in a fresh session, we will it. And then in a fresh session, we will get the results we want to get out. Now, get the results we want to get out. Now, get the results we want to get out. Now, what I did for this um high stakes demo what I did for this um high stakes demo what I did for this um high stakes demo is I over the past week or two, I took is I over the past week or two, I took is I over the past week or two, I took my home lab as the demo environment, did my home lab as the demo environment, did my home lab as the demo environment, did a full digital twin as a graph, and I a full digital twin as a graph, and I a full digital twin as a graph, and I have two separate environments built off have two separate environments built off have two separate environments built off the same original markdown files. One is the same original markdown files. One is the same original markdown files. One is a vector database store, that's our our a vector database store, that's our our a vector database store, that's our our A test, and the second is a graph store, A test, and the second is a graph store, A test, and the second is a graph store, that's our B test. And the graph store that's our B test. And the graph store that's our B test. And the graph store is built on top of um Cognite. So I'm is built on top of um Cognite. So I'm is built on top of um Cognite. So I'm using Cogni which is a startup. Um they using Cogni which is a startup. Um they using Cogni which is a startup. Um they do amazing stuff in the memory space. do amazing stuff in the memory space. do amazing stuff in the memory space. They have a Neo Forj backend. They have a Neo Forj backend. They have a Neo Forj backend. This is my the structure. So we have a This is my the structure. So we have a This is my the structure. So we have a bunch of Proxmox servers in my my home bunch of Proxmox servers in my my home bunch of Proxmox servers in my my home lab. It's really a couple computers lab. It's really a couple computers lab. It's really a couple computers around my desk and around my desk and around my desk and I built a separate VLAN for the demo. So I built a separate VLAN for the demo. So I built a separate VLAN for the demo. So it's segmented off my real network. So it's segmented off my real network. So it's segmented off my real network. So it was trained on real network for my it was trained on real network for my it was trained on real network for my network. But now it's it's cut off. It network. But now it's it's cut off. It network. But now it's it's cut off. It can only answer from memory. it can't can only answer from memory. it can't can only answer from memory. it can't actually look up the hosts and get actually look up the hosts and get actually look up the hosts and get dynamic information. So, dynamic information. So, dynamic information. So, let's see how it does all right. Here we have our our crab rag all right. Here we have our our crab rag cockpit.
-
cockpit. cockpit. Um, and I have five different questions Um, and I have five different questions Um, and I have five different questions queued up with schematics. You can see queued up with schematics. You can see queued up with schematics. You can see this is the same home lab schematic that this is the same home lab schematic that this is the same home lab schematic that you saw earlier in the slides and um you saw earlier in the slides and um you saw earlier in the slides and um let's let's start with this one. So WR let's let's start with this one. So WR let's let's start with this one. So WR exposed end of life soft WAN exposed end exposed end of life soft WAN exposed end exposed end of life soft WAN exposed end of life software. So we're going to of life software. So we're going to of life software. So we're going to basically we're going to try to find out basically we're going to try to find out basically we're going to try to find out if there's anything on my network which if there's anything on my network which if there's anything on my network which is exposed to the network the the is exposed to the network the the is exposed to the network the the internet the WAN that's running out internet the WAN that's running out internet the WAN that's running out ofdate software which put my home lab at ofdate software which put my home lab at ofdate software which put my home lab at risk right so if if somebody can attack risk right so if if somebody can attack risk right so if if somebody can attack the home lab and um you can see here the home lab and um you can see here the home lab and um you can see here that [clears throat] there there is some that [clears throat] there there is some that [clears throat] there there is some servers um Tsterland which is my servers um Tsterland which is my servers um Tsterland which is my daughter's Minecraft server it's running daughter's Minecraft server it's running daughter's Minecraft server it's running oh my god dbna Jesse and let's see how oh my god dbna Jesse and let's see how oh my god dbna Jesse and let's see how the the two agents did in looking this the the two agents did in looking this the the two agents did in looking this up Okay, so we got the vector response up Okay, so we got the vector response up Okay, so we got the vector response back. Couldn't find specific details, back. Couldn't find specific details, back. Couldn't find specific details, excluded by policy for more precise excluded by policy for more precise excluded by policy for more precise information, yada yada yada, source it information, yada yada yada, source it information, yada yada yada, source it separately. Okay, that's that's not very separately. Okay, that's that's not very separately. Okay, that's that's not very helpful. Now, on the graph side, it's helpful. Now, on the graph side, it's helpful. Now, on the graph side, it's done a bunch of cipher queries. Here are done a bunch of cipher queries. Here are done a bunch of cipher queries. Here are the cipher queries. It's fired off. Um, the cipher queries. It's fired off. Um, the cipher queries. It's fired off. Um, this is the graph traversal.
-
this is the graph traversal. this is the graph traversal. And the the color coding on the graph And the the color coding on the graph And the the color coding on the graph traversal is these blue guys. traversal is these blue guys. traversal is these blue guys. These are the seed nodes. So this came These are the seed nodes. So this came These are the seed nodes. So this came from a a vector lookup and a ranking. from a a vector lookup and a ranking. from a a vector lookup and a ranking. But it didn't stop there. It does the But it didn't stop there. It does the But it didn't stop there. It does the one hop traversals. Those are all the one hop traversals. Those are all the one hop traversals. Those are all the gray nodes. gray nodes. gray nodes. Some of the nodes get highlighted in Some of the nodes get highlighted in Some of the nodes get highlighted in green and those are the ones which which green and those are the ones which which green and those are the ones which which won and got into context. And you can won and got into context. And you can won and got into context. And you can see the answer here. So guest name see the answer here. So guest name see the answer here. So guest name tinsterland exactly as expected. Um OS tinsterland exactly as expected. Um OS tinsterland exactly as expected. Um OS version out of date and it's flagging. version out of date and it's flagging. version out of date and it's flagging. So so it gives us very precise So so it gives us very precise So so it gives us very precise actionable information. actionable information. actionable information. And so that's the difference between And so that's the difference between And so that's the difference between same same exact data. One is a vector same same exact data. One is a vector same same exact data. One is a vector store, one is a graph store. And you can store, one is a graph store. And you can store, one is a graph store. And you can see the difference where the the vector see the difference where the the vector see the difference where the the vector store is having a lot of trouble pulling store is having a lot of trouble pulling store is having a lot of trouble pulling the information out, the relevant the information out, the relevant the information out, the relevant information out. Okay, let's try another information out. Okay, let's try another information out. Okay, let's try another one just for fun. Um, one just for fun. Um, one just for fun. Um, let's see. Expose 0.0.0.0 let's see. Expose 0.0.0.0 let's see. Expose 0.0.0.0 management ports. That's that's bad. So, management ports. That's that's bad. So, management ports. That's that's bad. So, um, basically, you don't want your um, basically, you don't want your um, basically, you don't want your management ports on the network exposed management ports on the network exposed management ports on the network exposed to the, you know, the world. And there's to the, you know, the world. And there's to the, you know, the world. And there's a bunch of these. So, I have a new a bunch of these. So, I have a new a bunch of these. So, I have a new matrix server I set up, and also hroxy, matrix server I set up, and also hroxy, matrix server I set up, and also hroxy, which are exposed to the internet.
-
which are exposed to the internet. which are exposed to the internet. That's bad. The rest of these, like my That's bad. The rest of these, like my That's bad. The rest of these, like my Cognney demo, my openclaw instance, Cognney demo, my openclaw instance, Cognney demo, my openclaw instance, those are inside the LAN. You need to those are inside the LAN. You need to those are inside the LAN. You need to get into the LAN to access them. That's get into the LAN to access them. That's get into the LAN to access them. That's that's what you want. Okay. And let's that's what you want. Okay. And let's that's what you want. Okay. And let's see how the two agents did in see how the two agents did in see how the two agents did in identifying this. identifying this. identifying this. So the So the So the memory search returns some information memory search returns some information memory search returns some information and it's telling me check services and it's telling me check services and it's telling me check services configuration expect PFSense rule. So it configuration expect PFSense rule. So it configuration expect PFSense rule. So it told me to go do the job for it. Um okay told me to go do the job for it. Um okay told me to go do the job for it. Um okay and then the graph memory side found an and then the graph memory side found an and then the graph memory side found an open port exposed to WAN haroxy and open port exposed to WAN haroxy and open port exposed to WAN haroxy and openVPN which are the are the two we openVPN which are the are the two we openVPN which are the are the two we expected. Now this you can see the shape expected. Now this you can see the shape expected. Now this you can see the shape of this graph is entirely different from of this graph is entirely different from of this graph is entirely different from the previous one. And what it did is it the previous one. And what it did is it the previous one. And what it did is it it actually found the node for for my it actually found the node for for my it actually found the node for for my router the PFSense router and it was router the PFSense router and it was router the PFSense router and it was able to follow that directly to all of able to follow that directly to all of able to follow that directly to all of the results which related to it and then the results which related to it and then the results which related to it and then give us like a very precise answer. so now, so now we've seen our little boy so now, so now we've seen our little boy Crab D with his certified Neo Forj Crab D with his certified Neo Forj Crab D with his certified Neo Forj developer t-shirt is able to do a lot developer t-shirt is able to do a lot developer t-shirt is able to do a lot more. Right now he's able to follow that more. Right now he's able to follow that more. Right now he's able to follow that full chain, crack, eat, do the next full chain, crack, eat, do the next full chain, crack, eat, do the next thing. So, he's getting his he's getting thing. So, he's getting his he's getting thing. So, he's getting his he's getting his clams. He's helping me fix all the his clams. He's helping me fix all the his clams. He's helping me fix all the security holes in my network. Um, oh, by security holes in my network. Um, oh, by security holes in my network. Um, oh, by the way, I I patched all those security
-
the way, I I patched all those security the way, I I patched all those security holes after the demo. Um, so this was holes after the demo. Um, so this was holes after the demo. Um, so this was good for me too. It found a bunch of good for me too. It found a bunch of good for me too. It found a bunch of security holes in my home lab and then I security holes in my home lab and then I security holes in my home lab and then I I went and patched them later. And um, I went and patched them later. And um, I went and patched them later. And um, now we have an agent which actually can now we have an agent which actually can now we have an agent which actually can do interesting things. Now, if you can do interesting things. Now, if you can do interesting things. Now, if you can imagine like I have a three or four node imagine like I have a three or four node imagine like I have a three or four node home lab at home. If if you have a big home lab at home. If if you have a big home lab at home. If if you have a big enterprise which has a huge data center, enterprise which has a huge data center, enterprise which has a huge data center, if you're doing things in financial if you're doing things in financial if you're doing things in financial services where you have like a huge set services where you have like a huge set services where you have like a huge set of companies and customer records you're of companies and customer records you're of companies and customer records you're trying to do, if you're doing anything trying to do, if you're doing anything trying to do, if you're doing anything at at large scale where it doesn't fit at at large scale where it doesn't fit at at large scale where it doesn't fit into the 1 million context window of the into the 1 million context window of the into the 1 million context window of the modern models, you really need a better modern models, you really need a better modern models, you really need a better memory system than just throwing things memory system than just throwing things memory system than just throwing things in markdown files. in markdown files. in markdown files. our little boy Krabby knows his whole our little boy Krabby knows his whole our little boy Krabby knows his whole crew, all the Crustaceian friends and he's read the book. Um, so we just and he's read the book. Um, so we just finished my my co-authors and I Michael finished my my co-authors and I Michael finished my my co-authors and I Michael Hunger and Osus Barasa finished Graph Hunger and Osus Barasa finished Graph Hunger and Osus Barasa finished Graph Ragg the definitive guide. The full book Ragg the definitive guide. The full book Ragg the definitive guide. The full book is out on on early release. It'll be is out on on early release. It'll be is out on on early release. It'll be published um in a couple months once published um in a couple months once published um in a couple months once they finish the editorial process. But they finish the editorial process. But they finish the editorial process. But super excited about this. It's got super excited about this. It's got super excited about this. It's got information not only on graph rag but information not only on graph rag but information not only on graph rag but also on building memory on on different also on building memory on on different also on building memory on on different industry vertical use cases on agents.
-
industry vertical use cases on agents. industry vertical use cases on agents. So it's kind of the the whole umbrella So it's kind of the the whole umbrella So it's kind of the the whole umbrella if you're building on top of graph if you're building on top of graph if you're building on top of graph solutions how you need to build solutions how you need to build solutions how you need to build applications the technologies you need applications the technologies you need applications the technologies you need end to end. And then finally, a great free resource And then finally, a great free resource which everybody in this room can take which everybody in this room can take which everybody in this room can take advantage of is Neo Forj um's graph advantage of is Neo Forj um's graph advantage of is Neo Forj um's graph academy. So it's free online training um academy. So it's free online training um academy. So it's free online training um dev.ne.com-rag or the QR code below there. And um we or the QR code below there. And um we have courses on doing agent memory, have courses on doing agent memory, have courses on doing agent memory, doing context graphs and everything you doing context graphs and everything you doing context graphs and everything you need to get know to get started and to need to get know to get started and to need to get know to get started and to do some of the amazing stuff which I do some of the amazing stuff which I do some of the amazing stuff which I showed you on stage today. So thank you showed you on stage today. So thank you showed you on stage today. So thank you so much for coming to the the kickoff so much for coming to the the kickoff so much for coming to the the kickoff talk for the graph track. [applause] You're in the right place for all of the You're in the right place for all of the content from graph experts. Andreas content from graph experts. Andreas content from graph experts. Andreas Colliger, my colleague and I crafted a Colliger, my colleague and I crafted a Colliger, my colleague and I crafted a great set of speakers from industry great set of speakers from industry great set of speakers from industry experts, people who really know about experts, people who really know about experts, people who really know about graph technology. So hang out here, find graph technology. So hang out here, find graph technology. So hang out here, find out more and then you can see me in the out more and then you can see me in the out more and then you can see me in the Neo Forj booth. Thank you.
Summary
The main theme is the challenge of agent memory, using CrabD as an example of an agent with a persistent memory issue. The discussion touches on the limitations of current tools in enabling autonomous agents to retain context and learn from past interactions. The practical takeaway is the need for better memory structures and strategies to create more effective and helpful AI agents.