Tool calling + recursion seems to be the answer. Two tools are for manipulating the logical call stack - call/return. The trick is to not permit use of any meaningful tools at the root of recursion, but to always make their descriptions available. For instance, the root can't QueryWidgets or ExecuteShell, but any descendant of it can.
These constraints result in token-hungry activity being confined to child scopes that are fully isolated from their parents. The only way to communicate between stack frames is by way of the arguments to call() and return(). Theoretically, recursive dispatch gives us exponential scaling of effective context size as we descend into the call graph. It also helps to isolate bad trips and potentially learn from them.
I think a basic overview of game theory should also discuss Pareto optimality to some extent. You can have 100% of participants operating in a locally-ideal way while still creating problems in aggregate.
The Tragedy of the Commons has long been discredited by the noble winning game theorist Elinor Ostrom and her research of numerous case studies on the commons, and how people coordinate for collective resilence and prosperity (through rules and by auditing and retaliating against abusers and selfish exploiters)
The infamous "tragedy of the commons" rational resource optimization game is often cited as justification for machiavellian exploitation, but humans being social creatures are subject to reputations, and have sophisticated methods of communication, cooperation, reputation, trust, accountability, auditing, and retaliation capabilities. [1] [2]
Elinor Ostrom's "Rules, games, and common-pool resources" and Robert Axelrod's work "The Evolution of Cooperation" both explain game theory in the context of human scale realities. Of particular interest to the hacker community would be Ostrom's Common Pool Resource principles, which are totally applicable to the way we form communities anywhere. Decenteralized or in any form.
At the core of game theory and human civilization is communication and trust. The abuse of mass media to manipulate populations knows the power of communication and cultural narratives, and we're in a new enclosure [3] [4] of the commons and as media communication networks are being used to exploit through "hypernormalization" and "accelerationism" [5][6][7][8]
For a better applicable human scale game theory primer, check out Bruce Schneier's (yes, the same legendary cryptographer Bruce), "Liars and Outliers"
[7] on the hyperreal news and the use of crisis to manipulate populations and normalize a polycrisis - "Hypernormalization" by Adam Curtis https://thoughtmaybe.com/hypernormalisation/
> At the core of game theory and human civilization is communication and trust.
No and no. Game theory is game theory. When Nash says: "Optimal move for non-cooperative participants" there is no communication and no trust. And it is still game theory. The Wikipedia page on the Nash equilibrium mentions game theory 42 times.
I'm not saying what you're mentioning ain't also game theory.
But you're putting an ideological/political motive to freaking maths to then reframe what "game theory" means in your own view of the world.
As a side note I'll point that humans do play games: from toddler to grown up adults. Game theory also applies to something called "games": be it poker or chess or Go or whatever.
Not everything has to be seen through the lens of exploitation / evil capitalism / gentle communism (collective resilience) / etc.
OK, the OP you replied to conflated game theory and human behavior.
But the GP they were responding to incorrectly conflated game theory and Tragedy of the Commons (which is human behavior).
And my side note is that humans playing games don't follow game theory, because they aren't the actors presumed by that math field. When I play a child in a game, I want them to win a few and lose a few. When I play in Vegas for money, I only want to win (but even playing there proves I'm not rational...).
(My side-side note: this isn't limited to humans. My previous dog met a puppy on a walk, and invited him to play Tug of War. Dexter let the puppy win 5 out of 10 matches...!)
The problem here is game theory is actually a huge set of different games/formulas based on cooperative and non-cooperative games.
The base tragedy of the commons is what happens in a winner take all non-cooperative game. Humans over time figured out that this behavior generally sucks and leads to less than optimal outcomes for most of the entities in the game. The tragedy of the commons is then overcome by forming a cooperative game (think tit-for-tat) where defectors are punished.
The problem then arises again, not at an individual level but at things like state/nation level where two non-cooperative entities, even though they individually don't want to incorrectly use a resource, will incorrectly use said resource to prevent the other entity from having it.
bob1029 wrote that "You can have 100% of participants operating in a locally-ideal way while still creating problems in aggregate", and the tragedy of the commons is exactly an instance of this. SaltyBackendGuy is right.
CC-PP is disproven directly from Elinor Ostrom's research studies in her book "Governing the Commons".
Elinor literally won a Nobel Prize for disproving the tragedy of the commons.
> It was long unanimously held among economists that natural resources that were collectively used by their users would be over-exploited and destroyed in the long-term. Elinor Ostrom disproved this idea by conducting field studies on how people in small, local communities manage shared natural resources, such as pastures, fishing waters, and forests. She showed that when natural resources are jointly used by their users, in time, rules are established for how these are to be cared for and used in a way that is both economically and ecologically sustainable.
> Ostrom showed that many real-world “commons dilemmas” are not fixed one-shot prisoner’s dilemmas but repeated interactions where people can communicate, build trust, and design rules, impose retaliation to rule breakers, and redefine the rules of the underlying game structure as time goes on.
Game theory is made up of political ideologies, and very often applied to justify politcal ideologies the most obvious being when game theory is cited to justify economic ideologies through synthetic policies like bail outs or stock buy backs.
> But you're putting an ideological/political motive to freaking maths to then reframe what "game theory" means in your own view of the world.
Figures don't lie but liars figure.
"The contemporary era constantly proclaims itself as post-ideological, but this denial of ideology only provides the ultimate proof that we are more than ever embedded in ideology. Ideology is always a field of struggle - among other things, the struggle for appropriating past traditions." - Žižek
“At every period of history, people have believed things that were just ridiculous, and believed them so strongly that you risked ostracism or even violence by saying otherwise. If our own time were any different, that would be remarkable. As far as I can tell it isn't.” ― Paul Graham
I think think this must be why so many advanced level texts are couches in "introduction to..." language. Maybe it's a concession to not being able to cover every topic!
Because my own introduction was through combinatorial game theory, I always get excited to see some hackenbush diagrams and rarely do when the subject is mentioned.
Pareto optimal is definitely a core concept in game theory. It says that no other vector beats it in every dimension (or at least as good in all but one, and better in at least one).
I wish more business / product people understood this concept. When a product has been refined enough to approach Pareto optimality (at least on the dimensions the product is easily measured), it's all too common for people to chase improvements to one metric at a time, and when that runs out, switch to another metric. This results in going in circles (make metric A go up-up-up, forcing metric B down-down-down, then make B go up-up-up while forcing A to go down-down-down - it's worse than this because multiple dimensions go up/down together, making it harder to spot). Sometimes these cycles are over a period of quarters or years, making it even harder to spot because cycles are slower than employee attrition.
This is not independent of Goodhart's Law[1]. I've seen entire product orgs, on a very mature product (i.e., nearing the Pareto frontier for the metrics that are tracked), assign one metric per PM and tie PM comp to their individual metric improving. Then PMs wheel and deal away good features because "don't ship your thing that hurts my metric and I won't ship my thing that hurts yours" - and that's completely rational given the incentives. Of course the best wheelers-and-dealers get the money/promotions. So the games escalate ("you didn't deal last time, so it's going to cost you more this time"). Eventually negative politics explode and it's all just a reality TV show. Meanwhile engineers who don't have an inside view of what's going on are left wondering why PMs appear to be acting insane with ship/no-ship decisions.
If more people understood Pareto optimality and Goodhart's Law, even at a surface level, I think being "data driven" would be a much better thing.
[1] Goodhart's Law: when a measure becomes a target, it ceases to be a good measure
Cybernetics has devolved into KPI metrics with accelerationism as a treat.
Apparently documents from Google's antitrust case revealed the search algorithm was adjusted to give worse results in order to force the KPI for AdSense to drive quarterly earnings reports.
> “I care more about revenue that the average person but think we can all agree that for all of our teams trying to live in high cost areas another $[redacted] in stock price loss will not be great for morale, not to mention the huge impact on our sales team.
> “I don’t want the message to be ‘we’re doing this thing because the Ads team needs revenue.’ That’s a very negative message.
> But my question to you is – based on above – what do we think is the best decision for Google overall?
> …Are there other ranking tweaks we can push out quickly?” - Dischler
Anil Sabharwal, the Chrome executive:
> “1…we were able to get launch approval to rollout two changes (entity suggest and tail suggest) that increase queries by [redacted]% and [redacted]% respectively.
> 2. We are going to immediately start experiments to improve search ranking in the omnibox (more search results and nudging search to the top).”
For the last decade I've been doing my CI/CD as simple .NET console apps that run wherever. I don't see why we switch to these wildly different technologies when the tools we are already using can do the job.
Being able to run your entire "pipeline" locally with breakpoints is much more productive than whatever the hell goes on in GH Actions these days.
I can do that with github actions too? For tests, I can either run them locally (with a debugger if I want), or in github actions. Smaller checks go in a pre-commit config that github action also runs.
Setting up my github actions (or gitlab) checks in a way that can easily run locally can be a bit of extra work, but it's not difficult.
The only GitHub identifier Ive ever bothered to store explicitly (I.e., in its own dedicated column) is an immutable URL key like issue/pr # or commit hash. I've stored comment ids but I've never thought about it. They just get sucked up with the rest of the JSON blob.
Not everything has to be forced through some normalizing layer. You can maintain coarse rows at the grain of each issue/PR and keep everything else in the blob. JSON is super fast. Unless you're making crosscutting queries along comment dimensions, I don't think this would ever show up on a profiler.
Parallel tool calls do not work for my scenario. I can't ask a copy of my agent a question about something until a dependent call has resolved.
Tool use that changes the mode of the environment is a good example where you cannot go parallel. I've built a recursive agent that can run a Unity editor and I can't just blindly run whatever it wants in parallel or combos like SwitchScene -> GetSceneOverview won't interleave correctly. You'll wind up with 15 calls that loop over every scene and then you grab the overview from the last scene you switched to 15 times.
There are ways to hack around it a bit, but at some level the underlying narrative does need to be serialized or you'll be wasting an incredible amount of resources.
Depth-first search doesn't guarantee the best solution, but on average it's guaranteed to find a solution faster than breadth-first search. It's worth waiting for those dependent calls and going super deep if you want some reasonable answer quickly.
The rooftop solar game in Texas is strongly into scam territory. Most homes I see with panels on the roof are two story homes where you have a negligible amount of area to work with relative to interior space. There was a point where you'd have to deal with a door-to-door salesman approximately every 48h for an entire summer.
The most realistic residential installation I've seen was firmly on the ground at a ~2 acre property. The panels were much larger and heavier (i.e., capable) than what you'd typically find on a roof. It's much easier to build and maintain a solar array when you don't need a ladder/crane to move things around.
I think that it's great that we want to participate in making things better, but not every situation makes sense. When you factor in all of the downstream consequences of sub-optimal, fly-by-night installs, it starts to look like a net negative on the environment. I'm not trying to claim that all rooftop solar projects are bad, but most of the residential ones I've seen make absolutely zero economic sense.
Large scale wind and solar projects are the best way forward. You get so much more bang for buck. I'd consider investing in these projects or their upstream suppliers and owners if you want to get involved financially in making the environment a better place.
For homes, solar car ports and pergulas look attractive if you are land constrained. No holes in your roof, and it is Texas, so more shade is always appreciated.
Find a solar coop if you can to avoid the sales pain. They will assemble a group of homeowners and bid the entire group install out to achieve cost efficiency. Ground installs are cheaper and easier, imho, whenever possible (but depends on land availability and favorable solar insolation).
In many cases the best solution would be to retrofit the existing facilities and leverage the transmission infrastructure that is already in place. Retrofit doesn't necessarily mean we continue to burn coal, but it might. Without the aid of a time machine, continuing to burn coal (or even restarting a plant) for a limited period of time may have less incremental impact than other options.
I understand the urge to tear these facilities down, but if we actually care about the environment a more nuanced path is probably ideal.
These constraints result in token-hungry activity being confined to child scopes that are fully isolated from their parents. The only way to communicate between stack frames is by way of the arguments to call() and return(). Theoretically, recursive dispatch gives us exponential scaling of effective context size as we descend into the call graph. It also helps to isolate bad trips and potentially learn from them.
reply