In an ideal world, yes. But I think we're finding that it's practically impossible to eliminate toxicity completely, and people are irrationally bothered by "the outgroup".
"I can tolerate anything except the outgroup" talks about how people more fiercely reject a group very similar to their own, yet slightly different, more than they reject groups that are actually very different.
It leads to stupid gatekeeping like "treat the male chess players better than the female ones" and small nudges will never overcome it.
If women feel put off by chess unless they have their own tournaments, then they can have their own tournaments. It literally hurts nobody.
If you want to have a chess game against women, I'm sure you can do so. They aren't stopping you from playing them.
They're just stopping you from playing in the tournament they created because others were toxic to them in the existing ones.
I feel like that's like saying amoeba have no intent and no motivation. Or plants.
And those cause quite a bit of damage.
AI has all the intent that we gave it, and we continue giving it. That's always been the fear. Not that it will randomly wipe out humanity.
The fear is that it will decide to do that, with a purpose. Whether we tell it to protect us and it goes too far, or it decides that it can't achieve the purpose we gave it because we'll interfere and it removes that interference...
The fear is that we will set it on that path and can't stop it.
I'm sure there have been some scifi books that have it just be random, but they're far, far less worrisome.
Was thinking the same. Air, water and fire have no intents and yet we get hurricanes, flash floods and wildfires.
Also, repeating a point from a similar thread: Software can have "intent" in the sense that it steers itself towards a predefined goal without having to be "alive" or "conscious" in any way. Some classic examples are thermostat control loops, navigation systems and chess engines.
It's not open source. It's more "source available", since it's published, but you legally can't do anything with it. Other than maybe build it yourself, for yourself, I guess.
I think "unhinged" is a ridiculous word for it. They aren't crazy.
"Outrageous" is better. This will work on a lot of people, and they really will email their managers, because they're sheep. But it won't actually change the managers' minds for the positive. If I got wind of a plot like this against my decision, it would absolutely convince me to stay the course.
If the employees want to complain, I'll listen. If they're encouraged to complain, forget it.
You're being downvoted, but I think you've hit the nail on the head.
So many people, especially managers, have decided they can just give the rules to the AI in English and let it make "decisions", and they think it'll do it correct every time.
"Engineering" a few years ago meant that code was written, was (mostly) deterministic, and could be debugged. Computer processing didn't mean relying on Human-like processes, it meant relying on hard-coded logic.
This is absolutely one of those "gets worse before it gets better" things, and will probably never go away fully now.
Programmers know not to tell ChatGPT to do a bunch of data processing. If they use it at all, they tell it to write code that will then do the processing. It's more efficient on tokens, and if it fails, you can fix the process, instead of wondering why it went wrong, like too much context, or the LLM model version changed and doesn't work the same now, or just randomness.
It's been like this since programming was "invented". Managers and business minds have, for decades, tried to remove the need for programmers. "If we provide a detailed enough spec, why do we need programmers?"
For example, COBOL's big shtick was that non-programmers could write code using a contrived English dialect, and things would work. Decades of no-code or low-code languages have come and gone. AI is just the hip new thing because it actually manages to produce results - just of dubious quality half the time.
And let’s be clear: when wielded by the unwashed masses, AI produces the same quality of systems as those low-code tools did. It still takes a human engineer to drive AI to produce a maintainable, cohesive, and reliable system. This may change at some point, but I don’t think we are there yet - even with the latest frontier models.
Arguably determinism has gone out of the window a while ago in most software engineering. These days, you can be as imprecise in nominally formal languages as you can be in skill files.
My low level conspiracy is the reverse snobbery about knowing things is mutually beneficial for cloud providers and AI labs that both want software engineers to be as hopeless and dependent as possible so they'll consume more services/tokens and will shout down anyone saying "hey we could probably write this"
There was an article a few years ago that expressed this sentiment quite eloquently:
> “The merchants of complexity will try to convince you that you can’t do anything yourself these days,” wrote David Heinemeier Hansson (DHH), the creator of Ruby on Rails. “You can’t do auth, you can’t do scale, you can’t run a database, you can’t connect a computer to the internet. You’re a helpless peon who should just buy their wares. No. Reject.” [1]
DHH also did a very inspiring talk about mastery and why he loved the Ruby language in the "DHH is right about everything" [2] video.
LLMs have great potential. So, it turned out, did uranium, just not as chewing gum or a hair pomade.
There are good ways to leverage LLMs, but there's a lot more load bearing wait on that word 'leverage'. Something needs to do the leveraging, and do it well.
I'm experimenting with my own harness at the moment, currently codenamed Murder because I call the individual contexts/agents 'crow's.
The fundamental unit of it is what I call 'intrusive harnessing', where the harness actively manipulates the token stream so that significant quantities of tokens are only ever exposed to Layer0 when it's useful for them to be present.
For example: the full instructions for shell-tool calling aren't in the system prompt diluting attention while the model is reasoning/discussing what kinds of cat picture you want to put in your app.
My approach is more like dev-branching, and it seems to be working way more effectively than compaction or simple aggressive sub-agenting.
As soon as the harness sees the model is inferring a shell tool call, I stop the inference, mutate the context so that the full set of instructions/examples/guidance for shell tool use are inserted. Once the model has inferred the tool call, I curate the output it gets back. I ask the model to evaluate the output - good or bad - and give it a chance to accept/retry, before allowing the tool-call and output into the original context.
Does it use more tokens? Yes, although we're only mutating at head, so in a long-horizon context, it leans heavily into cache, just not the way anthropic/openai want you to realize you can.
It sounds like compaction but it doesn't come with the nasty brainwash experience where you just need the agent to fix that one last thing, it compacts and the agent comes back a paranoid delusional mad max.
```
<|system|>You're an AI agent. You do agent things.
<|system|> ... there's a list-dir tool and a shell-call tool ...
<|system|> ... memories
...
<|user|>It doesn't look like it ran.
<|reason|>I should look and see if there are any errors in the log file.<|agent|>I'm going to read the log file to see if there are any errors.
<|tool-call tool=shell-tool
```
We stop there, and splice in the detailed instructions for the tool the model was about to predict. I'll use <|ALLCAPS|> to denote harness-generated pseudo turns.
```
... as before ...
<|agent|>I'm going to read the log file to see if there are any errors.
<|SYSTEM|>Shell Tool: ... shell-type=bash, zsh, fish, pwsh on this system. Preferred shell is ... Additional arguments ... Pagination ...
<|tool-call tool=shell-tool
```
the model finishes out the call. On windows, with a typical harness, this frequently goes like this:
```
<|tool-call tool=shell-tool|>Get-EventLog ... | head<|tool-call|>
'''tool-result
error: unknown command: head
'''
<|agent|>Ah, windows doesn't have head. Let me just read the whole log.
<|tool-call ...|>
'''tool-result
... 500k tokens ...
<|agent|>I see some windows log events but you didn't ask me a question. Daisy, daisy?
```
With Murder it goes like this:
Rev 1
```
... prefix as before ...
<|tool-call tool=shell-tool
```
Rev 2
```
... prefix as before ...
<|SYSTEM|> ... how to use shell tool; shell-related memories and rules ...
<|tool-call tool=shell-tool shell=pwsh fence-vs-escape=true|>
'''pwsh
Get-EventLog ... | head
'''
'''tool-result
error: unknown command: head
Your tool call terminated with an error, ...
... structured response required ... options
or annotation ,
... ...
<|reason|> windows doesn't have the head command. Let me try reading the whole log.
... replacement tool call ... ... model note ...
```
I take that feedback and loop it, so, Rev 3:
```
<|system|> ... how to use shell tool; shell-related memories and rules ...
<|agent|>
... prefix as before ...
<|SYSTEM|> ... as before ...
<|agent|>{prev_cmd} failed, because windows does not have a head command. Let me try reading the whole log.
<|tool-call ... no head ...|>
'''tool-result
... first few lines of result ...
'''
<|system|>Your tool call succeeded but generated 446,219 lines of output. Only the first 5 were listed.
... structured pagination / retry / rephrase options ...
```
It then repeats while the model figures out the right command, figures out which filters to use, but the harness effectively immediately guides the model to do an immediate [optionally self-adversarial] review of the command against the output until the model concludes that the result is useful by various criteria. That doesn't mean successful - sometimes what is superficially an error (no such file or directory) is the answer you were looking for.
Let's say it takes the model 3 more turns to figure out how to use event viewer, and finally it s.
Here's the win, the outer main context - the one we're going to keep growing as you work with the agent, looks like this:
```
<|system|>You're an AI agent. You do agent things.
<|system|> ... there's a list-dir tool and a shell-call tool ...
<|system|> ... memories
...
<|user|>It doesn't look like it ran.
<|reason|>I should look and see if there are any errors in the log file.<|agent|>I'm going to read the log file to see if there are any errors.
<|tool-call tool=shell-tool shell=pwsh|>Get-EventLog ... | ... | ...
'''tool-result (use ref-tool id=A401U8X593 for full transcript)
Event ID | Last Occurred
1010111 | 3 weeks ago
'''
```
We used a lot more tokens. How can that possibly be good?
It's happening at the end of the context, so the cache comes into play very effectively.
But if we'd let all that derp into the context, it would be a potential attention sink degrading the value/worth of every subsequent token.
The pattern of try-thing-fail-try-solution-fail-try-win appears to be an incredibly strong pattern for most agents.
Fundamentally: When you're 3 prompts down the line and there's the imprint of the model doing "somewindows command | head" in the context with the model litigating it and fixing it -- that meta-pattern will drive the model to predict more of these patterns. It's going to repeatedly eff-up the exact way it saw in its training material.
When I try to get Claude/Copilot to work on this codebase, they freak out. The hyperbole/marketing pitch the agents were trained on and is built into their inner prompts cannot seem abide the idea of stopping an LLM mid inference. They seem driven to perceive an LLM endpoint like a 911 call you can't just go quiet on.
I have a mechanism for non-parallel sub-agents ('maggots', their job is to curate a large body of work whose full text is irrelevant to the main context). Basically just a tool call, but every time Claude or GPT have been near it, they've broken it, forcing it back parallel so they can send the invoking model a notification that it's child has been spawned and the parent should call the 'check-result' or 'wait-result' tool when they're ready to receive the results.
One of my test architectures is running against a solo Unsloth Studio instance that can only load one model at a time. It really doesn't react well to having you load the coding model to start your sub-agent work and unload before the model has generated its first token... :)
Also exploring mechanisms that try to pre-emptively keep attention-draining distractions/anti-patterns out of the context, things like when a model edits a file, we take the cache hit of removing the stale versions it read to make the modifications, replacing them with a reference syntax that the model can access in a sort of sandboxed auto-fork of the context.
That's going a little slowly because I'm trying to strike a balance between working 'reasonably' with extant models, and providing a mechanism to SFT/lorafy a model to make best use of it.
This is a really neat idea. I'm not sure it's actually useful, but it's definitely neat.
And it made me think of the new kid in town: Jev. I wonder if Jev can do this well and quickly? Not that I'm willing to pay the tokens even to find out, but it's another neat thought.
Even as a native, I didn't know the difference until I looked it up right now, and I'm almost 50.
Short form, for those who wonder:
"That" is used for things that are important, and "which" is used for things that aren't. In the first sentence, they want the blue floppy disk in particular. In the second, they want the floppy disk, and it happens to be blue. The "which" is added to aid the listener, not to because the color blue is important.
If that's interesting, it's worth Googling for a more precise answer.
Question is if it’s reasonable for the father to guess letting the kid use the account would let the kid do this kind of charge. I would say no and put the blame on google.
As a parent, I would say yes. Anyone who has kids know they spend any money you give them access to. I daughter spent $100 on snacks in a week because it on her school swipe account. Kids are just like this. My kid has her own kids google account where all purchases have to be approved explicitly by me, the parent account. The dad could have done that, but he didn't. This is literally why kids accounts exist. There are many horror stories about kids spending their parents money going bad decades. Every parent has a story. There's no way the dad couldn't have considered this as a possibility. This is setting aside that he shouldn't have mixed his work cards with his personal accounts.
My mistake for calling it "copy", should have said fork maybe (?)
They are awful close to still require a reference to the original project imo. They are achieving the same output (identify birds and display them in a frame display all hosted in a raspberry pi) with that twist to how to generate the art.
Author here: I'll take any feedback and critisism. I haven't based any of my work directly on his project, but will be referencing it as a similar one in the readme, as well as e.g. https://github.com/veteranbv/inky-bird-frame.
From the link: "Half the point of this project is showing off some amazing public-domain natural-history illustrations. Over 800 cut-outs covering more than 400 species, every one taken from a real plate and hand-curated for this project (no art is AI-generated, though some has been retouched with AI)."
Idk what "retouched with AI" means. Does it mean they used a segmentation model to cut out the shapes, or were they shoved through an imagegen and completely recreated?
"I can tolerate anything except the outgroup" talks about how people more fiercely reject a group very similar to their own, yet slightly different, more than they reject groups that are actually very different.
It leads to stupid gatekeeping like "treat the male chess players better than the female ones" and small nudges will never overcome it.
If women feel put off by chess unless they have their own tournaments, then they can have their own tournaments. It literally hurts nobody.
If you want to have a chess game against women, I'm sure you can do so. They aren't stopping you from playing them.
They're just stopping you from playing in the tournament they created because others were toxic to them in the existing ones.
reply