Social media cannot "threaten democracy". Democracy means that we transfer power to those who get the most votes.
There's nothing more anti-democratic than deciding that some votes don't count because the people casting them heard words you didn't like.
The kind of person to whom the concept of feed ranking threatening democracy is even a logical thought believes the role of the public is to rubber stamp policies a small group decides are best. If the public hears unapproved words, it might have unapproved thoughts, vote for unapproved parties, and set unapproved policy. Can't have that.
That trivial definition sees limited use in the real world. Few countries that are popularly considered democratic have direct democracy. Most weigh votes geographically or use some sort of representative model.
Most established definitions of democracy goes something like, heavily simplified:
1. Free media
2. Independent judicial system
3. Peaceful system for the transfer of power
The most popular model for implementing (3) is free and open elections, which has yielded pretty good results in the past century where it has been practiced.
Considering social media pretty much is media for most, it is a heavily concentrated power, and if there can any suspicions of being in cahoots with established political power and thus non-free, surely that is a threat to democracy almost by definition.
Let's be real here: It has been conclusively shown again and again that social media does influence elections. That much should be obvious without too much in the way of academic rigor.
Of course social media influences elections. Direct or indirect, the principle of democracy is the same: the electorate hears a diversity of perspectives and votes according to the ones found most convincing.
How can you say you believe in democracy when you want to control what people hear so they don't vote the wrong way? In a democracy there is no such thing as voting the wrong way.
Who are you to decide which perspectives get heard? You can object to algorithmic feed ranking only because it might make people vote wrong --- but as we established, the concept of "voting wrong" in a legitimate democracy doesn't even type check. In a legitimate democracy, it's the voting that decides what's right and wrong!
You write as though the selection of information by algorithmic feeds is a politically neutral act, which comes about by free actions of the people. But this is demonstrably not the case. Selecting hard for misinformation which enrages (because it increases engagement) means that social media are pushing populations further and further to the right. And this serves the interest of the literal handful of billionaires who control those sites. This is the unhealthy concentration of power the OP writes about, and it is a threat to democracy as we've known it.
By that logic, the New York Times also threatens democracy. Of course, it doesn't, and that's because no amount of opinion, injected in whatever manner and however biased, can override the role of free individuals in evaluating everything they've heard and voting their conscience.
You don't get to decide a priori certain electoral outcomes are bad and work backwards to banning information flows to preclude those outcomes.
You're mixing up two things though. One is what the agent does "locally", wherever that might be (for me it's inside a VM), and second is what code you actually share or as you call "send".
Just because you don't want to gate every change in #1, doesn't mean you're just throwing shit via #2, I'm still reviewing my code as much as before, if not more now, before I consider it ready to be reviewed by others.
But I'm seemingly also one of the few developers who seem to take responsibility of the code I produce, even if AI happens to have coded it.
There's a huge psychological difference between 1) letting the agent write whatever then editing it for commit, and 2) approving the edits. There shouldn't be, but there is.
Who has time for that? This is how I run codex: `codex --sandbox danger-full-access --dangerously-bypass-approvals-and-sandbox --search exec "$PROMPT"`, having to approve each change would effectively destroy the entire point of using an agent, at least for me.
Edit: obviously inside something so it doesn't have access to the rest of my system, but enough access to be useful.
I wouldn't even think of letting an agent work in that made. Even the best of them produce garbage code unless I keep them on a tight leash. And no, not a skill issue.
What I don't have time to do is debug obvious slop.
I ended up running codex with all the "danger" flags, but in a throw-away VM with copy-on-write access to code folders.
Built-in approval thing sounds like a good idea, but in practice it's unusable. Typical session for me was like:
About to run "sed -n '1,100p' example.cpp", approve?
About to run "sed -n '100,200p' example.cpp", approve?
About to run "sed -n '200,300p' example.cpp", approve?
Could very well be a skill issue, but that was mighty annoying, and with no obvious fix (options "don't ask again for ...." were not helping).
One decent approach (which Codex implements, and some others) is to run these commands in a real-only sandbox without approval and let the model ask your approval when it wants to run outside the sandbox. An even better approach is just doing abstract interpretation over shell command proposals.
You want something like codex -a read-only -s on-failure (from memory: look up the exact flags)
That's another thing entirely, I still review and manually decide the exact design and architecture of the code, with more care now than before. Doesn't mean I want the UI of the agent to need manual approval of each small change it does.
Cool. I agree (consistent with your GOTO analogy) that imposing structure on the model (or a human) can constrain the search space and lead to better choosing given a fixed decision budget.
> deterministic primitives
Are agent-map and LLM-map the only two options you've given the model for recursive invocations? No higher-level, er, reduction operators to augment the map primitives?
Hi, I'm the other author on this paper. You've asked a good question. I had originally planned on writing an agentic_reduce operator to complement the agentic_map operator, but the more I thought about it, the more I realized I couldn't come up with a use case for it that wasn't contrived. Instead, having the main agent write scripts that perform aggregations on the result of an agentic_map or llm_map call made a lot more sense.
It's quite possible that's wrong. If so, I would write llm_reduce like this: it would spawn a sub-task for every pair of elements in the list, which would call an LLM with a prompt telling it how to combine the two elements into one. The output type of the reduce operation would need to be the same as the input type, just like in normal map/reduce. This allows for a tree of operations to be performed, where the reduction is run log(n) times, resulting in a single value.
That value should probably be loaded into the LCM database by default, rather than putting it directly into the model's context, to protect the invariant that the model should be able to string together arbitrarily long sequences of maps and reduces without filling up its own context.
I don't think this would be hard to write. It would reuse the same database and parallelism machinery that llm_map and agentic_map use.
Cool! It'll be interesting to follow your work. I've been thinking, as well, about quorum and voting systems that might benefit from some structure. The primitives you've described are great for the "do N things one time each" case, but sometimes I (and the AI) want "do one thing N times: pick the best somehow". (I mean, you can express that with map/reduc over small integers or something, but still: different flavor.) You can even bring public choice theory into it.
I think this principle applies only if you lack feedbacks. Yes, when you go through multiple layers of open loop control, you're going to get less precise at each layer. It's less clear that the situation is as dire if each level has metrics and can self-adjust to optimize its performance.
But these are inherently subjective things, what the "right idea" is, or the "right implementation" is all up in our head that we can try to verbalize, but I don't think you can come up with an objective score for it, ask 100 programmers you'll get 100 different answers what "clean design" is.
And that's why my whole schtick when it comes to agent design is that agents need to learn online, continuously, and in adapter space via some PEFT mechanism (I like soft prompts and prefix tuning), because it's really hard to ascend gradients in discrete domains like tokens.
> The model knows damn well when it's written ugly code. You can just ask it.
That's not been my experience at all, what model and prompt would you use for that? Every single one I've tried is oblivious to if a design makes sense or not unless explicitly prompted for it with constraints, future ideas and so on.
The problem is that the model doesn't know what you mean by "bad code" a priori. If you list specific issues you care about (e.g. separation of concerns, don't repeat yourself, single responsibility, prefer pure functions, etc) it's pretty good at picking them out. Humans have this problem as well, we're just more opinionated.
Yes, that's exactly what I mentioned earlier, if you describe the implementation, you can get something you can work with long-term. But if you just describe an idea, and let the LLM do both the design of the implementation and the implementation itself, eventually it seems to fall over itself and changes takes longer and longer time.
> Because apparel is specifically the consumer industry where enormous quantities of unsold product are intentionally destroyed to then be replaced in the market by newly made equivalent articles
If that's so bad, why is doing so the cheapest option? What makes you think you know better than the market what's wasteful?
> What makes you think that what's cost effective...involves optimally conserving resources
The words "cost" and "effective "perhaps?
> Polluting
Pollution is an economic externality. If I buy a shift and throw it out unworn, I've wasted only my own resources. (I'm paying for the landfill of course.)
You could argue that my wasting that shirt hurt you because I could have instead spent those resources on productive activity that benefits you, and therefore I had a duty to keep it -- but that's just communism with extra steps.
I am of the opinion that markets and prices, not EU regulators, should tell us where scarcity is. We're bad at optimizing manually for the same reason we're bad at guessing where program hotspots are. The market is a profiler.
Do you honestly believe this? Where did you study economics? This regulation is not about scarcity. It is about over abundance.
Overproduction is a failure mode in capitalist systems. The market can’t correct for this because negative externalities do not feed back into supply or demand.
Actors in a capitalist system have an incentive to maximize profit. How is it profit-maximizing to pay to produce an item and throw it away unsold?
> negative externalities do not feed back into supply or demand.
What is the unaccounted externality? Clothing makers pay for material inputs and labor inputs. They pay for transportation. If they discard goods, they pay for more transportation and for the landfill. What specific externality is unaccounted?
And you presume to know better than they do what to do with that energy? Do you think you have a general right to override people's resource allocation decisions when you believe they're being wasteful?
1. In this case, not using the energy at all would have been better.
2. The legislature of a sovereign polity would have, and be able to delegate, that right. If and when the legislature should make use of that right is a political question.
If disposing of my own shirt in a landfill I pay for is an "externality[y]" justifying state intervention, then every domain of life is subject to top down control. I don't want to live in a society in which resources are allocation in general by edict instead of the market.
Look it's not that hard. Is <problem> (in this case, pollution) a problem that needs solving? If the answer is yes, then it needs to be regulated even if you personally don't like laws. Sorry!
But why are you lying? It's not about you, no one is stopping you to go and throw everything you own in a landfill, this is about the companies that act environmental in their marketing, but then go ahead and destroy new and unused products.
They are GUIs --- just minecraft GUIs. One day, we will rediscover why GUI toolkits exist. The only real advantage TUIs have over GUIs is easy remoting, TBH. Maybe that's enough for people. Otherwise? They're just hair shirts.
I've use Claude to make myself a number of little tools and weird apps that only I would want lately. They need to be cross-platform between Linux and Mac and sometimes Windows. The best approaches I've found are Tauri (+Svelte for making layout easier) for lightweight GUIs but for anything more complex I prefer a TUI. The Ratatui framework works very well. A TUI feels like a "real" app as opposed to a glorified webpage. For actually serious software I'd want a native GUI on each platform.
There are so many options for what you describe. E.g. the whole point of Tcl/Tk is to allow easy creation of small little tools and apps. And you can use Tk with Python as well.
A TUI app feels like a native terminal app like I have used for my entire computing life, in DOS and then Linux. Electron apps feel like web apps no matter how good they are. I stopped using 1Password when it became an Electron app and became super janky. Discord, Slack, VS Code, the Signal desktop app, all suck UI-wise compared to actual native Mac apps, which even with Liquid Ass, are still better than using web technology for desktop apps. I know that lowest common denominator cross platform apps make economic sense to develop, whatever. They still suck to use.
No. Good TUI apps are predictable and fast, like good native GUI apps. They follow set patterns. Familiarity and following standard conventions is not just "nostalgia" -- maybe a little is in there -- but it makes apps more usable. And, for cross-platform apps, it's a cross-platform standard. I'd rather have a TUI app following TUI conventions than a cross-platform app that is just a freeform mish-mash. Like, this week I've been making a TUI replacement for Plexamp which has great features but its Mac app is just like a scrolling webpage. If I am going to have a GUI app that is more than a tiny toy or utility I want it to follow each platform's native conventions and use its native GUI components or to not even bother. I will grant that Electron has made strides in terms of properly integrating into each host OS (using the full Mac menu bar, the correct keyboard shortcuts, accessibility features and so on) so the situation is not as bad as it once was. And also, plenty of people use and have used terminal editors and other tools by choice, for years, and not just because they are connecting to remote servers. A keyboard-first interface can be quite fast and they are more natural in TUIs.
You want nc (usually with -v) or socat. telnet is muscle memory for a lot of people (myself included sometimes) but it's a strictly inferior choice these days for poking arbitrary plaintext services.
There's nothing more anti-democratic than deciding that some votes don't count because the people casting them heard words you didn't like.
The kind of person to whom the concept of feed ranking threatening democracy is even a logical thought believes the role of the public is to rubber stamp policies a small group decides are best. If the public hears unapproved words, it might have unapproved thoughts, vote for unapproved parties, and set unapproved policy. Can't have that.
reply