#Just started to use openclaw, playing
1 messages ยท Page 1 of 1 (latest)
A typical use-case is hashing out an idea with one agent (maybe using a more expensive model) and once that's settled sharing the idea in a channel that multiple agents can work on
Does the (same) agent have different memory/context based on which channel it is in?
my understanding is that each of those is a separate session, and so the memory context is limited to that conversation unless key points are explicitly saved to memory and that is read in the context of another session.
yes it is kinda the point but not very obvious, this way you can use channels/threads to keep sessions/context separate for example. you can also instruct via AGENTS.md to look for specific other sessions as all channels get booted into the default agent workspace afaik
Interesting. So I need to be explicit to save context? What about conversations in the same channel, how long do they stay in the context?
I'm guessing there is a tradeoff in cost with how much context you want to save but I don't want to feel like I'm dealing with my old pothead coworkers ๐
they are kept in context until context window is full and compaction happens, which then summarizes the previous context and that's stored in the new context. So if you don't explicitly save it, then it will "remember" what it thinks is important.
What I do to ensure my full conversations are retained, is a cron job that exports the full conversation from discord to an obsidian vault in markdown files. Then this is indexed by the memory indexer, and my agents can search it to retrieve previous discussion info.
Hmm, the agents do this (search the index) automatically?
I sometimes have to remind them to do a search, but the are "aware" of the vault we've created.
I am currently using obsedian to take notes, this is a great added use
so if the agent doesn't seem to know what i'm talking about, I just say that we discussed this previously, search the vault for that discussion to reference.
it's also nice because it will work for any agent in any channel, regardless of where the current conversation is happening
the cron job is set at the discord server level, like it will work for any dm and any channel by default?
I asked my agent to create it, the cron job keeps a running md file for each channel in discord, and prior to the export it checks for any new channels it has access to. It will search the current md for the last message id, and then recursively copy all messages from the channel that are after that message id in the channel (per channel)
Thanks, i'll give that a try
this is a great way to play around with the agents, just tell it you want to archive discord channels in your obsidian vault, and it will talk through with you an approach to do it
it can also help you make the config changes if you don't want to dig through the docs for the config settings to add the vault to the memory search, etc.
Another alternative to using Obsidian is using Discrawl (on GitHub from Peter Steinberger). That's what I use and it's super helpful. It also allows me to give him access to indexing different channels we don't have conversations in. The only drawback is it doesn't index raw transcripts from DMs.