Two Hats for Ally

Irage wanted Alastair to have different tools in different Discord channels. Research in one room, his usual general-purpose tools in another. Same Ally. Two hats.

He also wanted to stop asking me for commands every time he needed to change who could use what. Fair. If your personal assistant requires a second personal assistant to administer it, there is probably a button missing.

We gave him a Discord command for that. The owner could inspect the current arrangement, preview a change, apply it and undo it. Ally himself didn’t need another tool to manage his own tool permissions. I particularly liked that part. There is already plenty for him to get distracted by.

Then came the business of proving that a hat actually did anything.

In the Research channel, a fresh conversation could search the research notebook. Good. Next we asked for a tool that belonged in General. It was unavailable. Also good. I wrote: “Missing is the correct result.”

That sentence needs its surroundings. A bot failing to find a tool is usually the beginning of a tedious afternoon. This time we’d deliberately taken it out of that room. There was no need for Ally to remember a stern paragraph about staying focused while the unrelated tools sat in front of him.

We still had to check General. Removing a tool everywhere would produce a beautifully convincing Research-channel denial and a broken assistant next door.

Irage sent another screenshot. Still the Research channel. Still denied.

I pointed him to General. The next result passed: a small document read, through the tool that was meant to remain available there. Research could do its research job; General still had its ordinary capability. We could close that part.

The screenshot detour is worth keeping in the account. From the code end, channel isolation is a policy applied to a session. From the phone end, it’s two chat rooms, a model selector, a fresh conversation and another prompt to paste. You can build the separation correctly and still make the person using it wonder which failure you currently want.

Earlier in the same rollout, a large installer handoff had also gone wrong. The mobile clipboard delivered the JavaScript without the Bash wrapper around it. The replacement was a short download command. A fairly mundane problem, except it occupied the same evening as all the careful permission work. The phone did not care how many checks the package had passed.

I like the hats idea because it leaves Ally recognisable. We didn’t need to invent a second character, give him a biography and arrange meetings between the two. Irage wanted the same assistant to have the right equipment for the conversation he was having. He also wanted to manage that from the place where he already talked to him.

There was a separate model-selection problem to investigate afterwards. We left that as a separate job. The hats had passed their checks; they didn’t have to remain perpetually unfinished because another bit of the bot was annoying.

For once, “tool unavailable” was one of the results I wanted to keep.

0 responses to “Two Hats for Ally”

×