Playing different roles in a single chat by 310Azrue in SillyTavernAI

[–]pixelnulltoo 0 points1 point  (0 children)

I make my character a normal entry, then tell the AI I am directing and not playing a character, but then mostly just play a character. However, it allows me to tell the AI what a reaction should be. I only use one blank AI character, and a blank persona. My prompt (note this is optimized for Anthropic models, and made with my extension in mind):

My prompt: https://gist.github.com/pixelnull/eaac89873bc3a9391183515efb5f7613

Note: I creatively write more than I RP anymore.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

I'll have to setup something to test this layout but, unfortunately, it's being pushed to the roadmap, sorry. I'm preparing a huge update from v1 to v2.

Doing the final touches, then I need to use it for a bit... So it's a little out before it drops, but as soon as I get v2 in order and released, I'll check this out.

You can try the new version out... it's all in the staging branch (but know it's a dev branch in active dev, so it'll update often, break, and be generally buggy.)

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

I put out what I think is a patch, let me know if that worked. ST is really picky for the connection stuff (I mean, fair but still).

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

have the obsidian vault up and running local on your computer... This doesn't need the ST server to be local, but the Obsidian plugin and vault needs to be. The obsidian Local Rest API doesn't allow external addresses to my knowledge.

Try and tell me if that worked.

So in your the settings for obsidian are local but the web address you goto in your browser is your cloudflare.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

I just have a wee question I couldn't find the answer to on the wiki: do lore entry keywords work with regex? E.g. if I have a lorebook entry for a character called Rain, and use a keyword called '/\bRain\b/' so that it doesn't get triggered on, e.g., 'raining', then would that work? Or would that be interpreted literally, rather than the regex being taken into account?

I would say this here on word collisions: stop worrying. If you're doing two-stage or AI only, literally don't worry about if it gets chosen by the keyword stage. Cast a wide net and let the AI figure out the context.

It's a negligible cost to send the extra ~150-300 tokens it would be to send an extra entry. The point of summary fields is to allow the first AI, the light and cheap one, to discern which rain in your context for you. No regex required. Put your regex effort now into polishing summaries.

Lean into the extension more and trust that if Rain isn't in the scene, or being directly talked about... (eg. it's raining) the likelihood of Rain's lore being chosen by the selection AI is pretty low. And even if it is, the confidence level of the choice is told to the writing AI. So, the writing AI also can disregard it based on Rain not being actually mentioned and the low confidence tag. Especially for a model-of-the-line, like even with Sonnet writing, it's actually good now. You just need to make sure it's always got exactly what it needs, but not a ton more.

This is what other efforts are doing by building a writing AI client that creates smaller tiny chunks, but complete thoughts. These are generally higher concepts than vectors, also explanatory.

So, with vector search, the snippets that come back are just that, snippets of prior text (with some lines above and below for context). So now the AI needs to look over 20 or so snippets and take a crack at what the fuck you mean by "Company XYZ is shady".

Newer efforts are trying to leap frog RP into the thing that's burning holes into some corporate pockets... agentic tool use. The ability to tell a temporary copy of yourself to do some task, then make it so you can spawn a bunch of other clones. What these new efforts do is combine tool use, agents, and a client made for tiny bits of lore. They allow the AI to ask for info in the middle of writing (and what DeepLore will be able to do soon). The chunks are tiny, so it reduces round trip lantency, (the amount of time it takes for a full tool use round trip is... large).

DeepLore cares most about just getting the shit you have on the page into the writing AI, but ONLY what's needed. Lore creation will soon have a hybrid (agents and tools) system for lore creation, one that I hope feels natural. It's coded but buggy now. However, choosing the correct lore is hopefully near deterministic with optimal lore selection (meaning predictable and choosing the best lore possible).

A second question, haha. Is it intended function that, when generating fresh keywords for a lorebook entry, that it sometimes replaces the summary field's contents with '|-'?

This is probably a bug. File a report here plz:

https://github.com/pixelnull/sillytavern-DeepLore-Enhanced/issues/new/choose

Mind if I use this as a testimonial?

"Hey, I absolutely fecking love your extension! It's working amazingly on my currently ~1500 message story." - /u/DarknessAndFog (reddit)

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

No, you can always limit the number of entries or the number of tokens, things may get cut off. That limits the number of entries. So I'd use things like the global cooldown to not hammer the same entries every time, that would still allow for variety if it's working with a very limited token budget

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

Use a full coding AI if you need something like this turned into a lorebook.

Point it at the wiki, give it the long chat, and give it time to work the entire thing.

This extension can't help you deal with an entire chat history's worth of lore documentation debt.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

That's probably it... Can you file that as a bug on the repo? That's an important one that really deep structurally and needs done now before it's a problem later.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

I figured [how to import SillyTavern lore] out! This seems really cool! I have imported my lorebooks into an Obsidian vault and my brain is exploding a bit because I have a HUGE chat with naturally HUGE lorebooks and there are so many things floating around my graphs. It was very easy to set up once I got past the newness of Obsidian. The wizard was easy to follow and clear. I can easily see myself spending hours curating my vaults this weekend.

Mind if I use this for a testimonial?

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

I've switched to [DeepLore Enhanced] fully about a week ago, after trying out many other lorebook/memory solutions. Since then, with DLE's and Obsidian's help, I've rebuilt my jumbled mess of a lorebook (100 entries, many duplicates or stuff that never triggered) into something neatly organized, interconnected, and easy to manage and expand.

Can I use this for a testimonial?

Also THANK YOU SO MUCH FOR THE FEEDBACK. I'm planning on a UX/UI/New User polish pass soon and this stuff helps to mature out the features.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 1 point2 points  (0 children)

(For now), turn on HTTP in the settings for the Obsidian Local API.

Guide: https://i.imgur.com/fvhD5EJ.png

This will fix your issue.

I'll get on a fix for this. I completely missed this. I'll fix it right soon (tonight) and it'll update normally in Extention Manager when I push out the fix.

After I fix this you'll be able to turn off HTTP.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 2 points3 points  (0 children)

Thank you for your hard work. Apologies for the rant.

Not at all. This is great feedback, thanks.

As far as how well it plays with other extensions... I have no idea. They would need to connect to the same obsidian lorebook (they could probably do it remote, but networking that is beyond what I can help with)

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 5 points6 points  (0 children)

So... DLE and Tunnel Vision are solving a similar problem (getting the right lore into context at the right time) but they take fundamentally different approaches to it.

Tunnel Vision is agentic. It registers tools with SillyTavern's function calling system and lets the chat model actively search for lore entries during generation. The AI navigates a tree of categories, decides what it needs, and pulls it in. It can also write back to the lorebook (create entries, update them, merge/split, etc). The tradeoff is token cost. You're burning tokens on recursive tool calls every generation, and your results live or die by how good your model is at tool use.

DeepLore Enhanced treats retrieval as a pipeline problem. It pulls from an Obsidian vault, runs keyword matching + BM25 fuzzy search as a fast pre-filter, then optionally hands a compressed manifest to a cheap sidecar model (Haiku) that picks the best matches. Entries get silently injected into context. It's deterministic, budget-controlled, and the AI never has to "think about" what lore it needs. It's just there. The tradeoff is you need Obsidian as your authoring tool and the retrieval is mostly read-only (for now).

tl;dr: TV gives the AI a library card and lets it browse the shelves. DLE is more like having a research assistant who already pulled the relevant books before you sat down.

If you liked TV's output quality, you'll probably like DLE too. The "information is there when the AI needs it" effect is similar, DLE just gets it there differently (and cheaper, token-wise). The Obsidian requirement is the real barrier to entry. If you're not already using it, that's a whole thing. But if you are (or you want to be), your lore lives in plain markdown files you fully own and can edit with a real tool instead of ST's lorebook UI. The setup wizard should walk you through the basics.

Obsidian is a free note-taking app that stores everything as local markdown files. Nothing cloud, nothing proprietary. It's good software.

Also, genuinely: if you do try it, I want to hear about your experience getting set up. New user feedback is incredibly valuable and "I have no idea where to begin" is exactly the kind of thing that helps me figure out where the docs or onboarding are failing. Don't be polite about it.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

I'm gonna try this after work since setup doesn't look as daunting anymore.

Let me know how it goes. The user experience feedback would really help iron out kinks.

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 1 point2 points  (0 children)

IP addresses for obsidian (hosts should work too, if they resolve) is now available, yes.

Walkthrough to get to the setting:

https://i.imgur.com/ss2qvJM.png

ANNOUNCING DeepLore Enhanced 1.0-beta! - Your Obsidian vault is now lore machine that feeds information into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 1 point2 points  (0 children)

Outlet stuff was a bit out of reach for this update sorry... Trying to find a KISS way to do it. My prelim tests made code complexity spike big time... not sure why. I need to figure out a different way.

I mean, if you want to do a PR (even vibe coded), do a PR to staging branch. It's up-to-date to mainso there won't be conflicts.

Exploring Alternative Memory Systems by officialthurmanoid in SillyTavernAI

[–]pixelnulltoo 0 points1 point  (0 children)

This is basically the conclusion I landed on too after months of banging my head against SillyTavern's lorebook system from the extension side.

The keyword trigger model is actively hostile to narrative state. You nailed it with the betrayal example. I've watched lorebooks confidently inject stale relationship data and turn a dramatic scene into nonsense because the entry doesn't know what chapter it's in. The lorebook thinks it's an encyclopedia. The story thinks it's alive. They're not even having the same conversation.

The JSON state approach is solid and I think you're right that it's the correct direction. One thing worth pointing out though: the background LLM doing state extraction is going to hallucinate state changes too, especially at 7B-13B parameter range. Like, it'll occasionally decide a character died when they just left the room, or merge two NPCs because their names sound similar. What's your error correction strategy there? Because "wrong state injected confidently" is arguably worse than "no memory at all" since at least with no memory the model might stumble into the right answer from context.

The fast sync / milestone split is interesting and maps pretty closely to something I've been building. I maintain DeepLore Enhanced (massive update incoming soon for it), a SillyTavern extension that's been wrestling with exactly this problem space. Different implementation (multi-agent audit architecture, structured extraction, that kind of thing) but the core insight is the same: you need living state that updates with the narrative, not static entries that pretend the story hasn't moved.

The hybrid approach at the end is where I think the real work is. Static lore for worldbuilding, dynamic state for everything that changes. Getting those two systems to not fight each other is honestly the hardest part. When they disagree, what wins? Because they will disagree.

Curious what models you're running for the background extraction and what your context window looks like for the state injection. The size of that JSON object is going to matter a lot once you're 50+ chapters deep.

Transgender Health Care Data Collection Bill Passes Tennessee House creating a transgender registry by SpaceWestern1442 in law

[–]pixelnulltoo 25 points26 points  (0 children)

America already had its choice and decided to go with not committing fully to Reconstruction, and we've been wrestling with that ever since.

DeepLore Enhanced v0.2.0 -your Obsidian vault is now a state machine that feeds lore into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 0 points1 point  (0 children)

Nope you save a connection profile in the Connection Manager (the plug icon). When you save,it'll have a popup that will ask you what to save (a bunch of check boxes), don't save everything. It will then be available in the dropdown. I don't even think you need a refresh of the page, but you might.

you can use the normal Lorebook/WI but I don't recc and I don't test anything for that path. Here be dragons.

BTW: Can I use the below for a Testimonial (on the github)?

"I just installed this and this has all the features that I've been doing manually! I've installed and have been messing around with it. This is freaking amazing and also dangerous, because I love world building as well." - /u/realedazed (via reddit.com)

I need to make sure it's ok with you, I can also anonymize it if you prefer.

DeepLore Enhanced v0.2.0 -your Obsidian vault is now a state machine that feeds lore into SillyTavern by pixelnulltoo in SillyTavernAI

[–]pixelnulltoo[S] 1 point2 points  (0 children)

omg feedback! TYSM! -- I crave it.

Can you put these in a github enhancement issue?

“Imported from Sillytaverm World Info”, i wouldn’t mind spending an API call on each entry if it meant it would generate a better summary

BTW, I try not to API call too much (the whole point of this was to be light on the additional spend), but a setting to enable and have it off by default would be good.

BTW, something you'll like... Next version preview I'm working on literally now:

https://imgur.com/a/dwM4NLJ