Getting the best out of AI without endangering the community

At this year’s State of Julia talk at JuliaCon, a significant part of the time was dedicated to talking about the effect and usage of agents to write PR to the julialang repository.

This came as a surprise to me. I know about LLMs, I know that things are evolving fast, but since my institute doesn’t have access to frontier models and doesn’t incentivize the use of agents, some of the statements that Keno made were dazzling. Namely

  • Around 80% of the PR to the julialang repo were authored by agents in the last few weeks.
  • A personal usage of roughly $45 000 worth of Anthropic tokens over the last 3 months (without actually paying for them individually, and recognizing that this is a rather arbitrary metric of usage).
  • The expectation that every contributor would have their PR reviewed by an agent before submitting it (as part of a standard workflow, just like you would run tests).

As a consequence, a conversion was started to share worries about the effect of AI on the Julia community. Several people (including me) added their own, which started a (in my view) interesting discussion about whether there is an incompatibility between an extensive use of agents and the building of a strong community, and what to do about it.

This post is a summary of what I got from this discussion.

The first observation is that not everyone in the community is able or willing to use agents, for different reasons:

  1. The lack of funding. Using a frontier model is simply not free, and some people simply cannot afford it.
  2. Model unavailability. The models are US based, can be pulled from some user (as happened with Anthropic earlier this year).
  3. The lack of enthusiasm. Coding in Julia is joyful (to quote Simon Peyton Jones in his keynote talk), using agents may not be.
  4. Ethical considerations. The usage of AI is neither ethically nor environmentally neutral.

One question naturally arises: how should we accommodate the agentless member of the Julia community?

Pooling resources and betting on a democratization of the technology

Points 1 and 2 above are practical. Some people simply don’t have access, but by democratizing access, this problem would be solved.

Some discussions followed on how agents could be made available from the PRs themselves and how Anthropic and OpenAI have programs to get access to their frontier agents for free.

Efficient open-source agents that are run locally would also alleviate some of the problems. We, as a community, however, have little way to impact this.

Accommodating AI-skeptics

The bread analogy

The following analogy was brought, which proved to be popular and (I believe) enlightening in the discussion:

Not using AI and writing code by yourself is like baking bread at home, while using agents is akin to using a professional oven and industrial tools.

Your homemade bread undeniably brings you joy in the making, but it is terribly inefficient compared to the industry standard. At the same time, the fact that there is a bread factory two streets down doesn’t prevent you from enjoying making your own bread, so the two are not necessarily in opposition.

This is undeniable, but the concern of the AI-skeptics lies elsewhere, and it can be summarized as follow:

You used to have a small bread production, and started exchanging it with other small producer, and made friends along the way. But now the production have changed, your friends can produce as much bread as they want instantaneously. They have no longer need for mine, and, as a consequence, we don’t interact as much as we used to.

In other words, there is a social human factor in our participation in the Julia community that goes beyond what is practically possible. Currently, AI-skeptics may feel that they are losing an important aspect of their engagement (joy of coding, interaction with other humans), and consequently may currently go through mixed feelings, going from sadness to dismay, to feeling rejected from the community.

What is the goal of Julia?

Before going further, it may be good to discuss what Julia is about.

Julia has a the technical goal, which could be described as being the best possible open source language for technical computations, both in academia and in the industry.

If that was the only goal of the Julia community, then it seems like the use of agents would be unambiguously positive. Contributors get more productive with AI, those who refuse to use it are sidelined, but the overall effect is positive, so it is acceptable.

Productivity is, however, not the only goal of the Julia project: having a healthy and inclusive community is also important. Expanding the community and making it diverse and welcoming are examples of effort that have been taken to go in this direction.

As far as I could see, no one ultimately defended either of the two most radical solutions: forgetting about the community entirely and pursuing productivity at all costs, or banning AI entirely.

Nonetheless, there were few practical propositions to address the possible tension between the two goals, besides

  • Monitoring the phenomenon
  • Communicating clearly and transparently about it
  • Organizing a “Fun, handmade, unimportant packages” minisymposium at the next JuliaCon

Furthermore, it was noticed that the two goals are interdependent: if the community erodes due to poor handling of the agents, then the project may become unsustainable. So even if priority is given to language development, it may still require taking into account the human factor to achieve it optimally.

At this point, it may still be unclear why the community may erode in the first place. The main reason (I believe) is a feeling of being left out or not belonging, which may lead some contributors to disengage. It is, however, enlightening to look at some concrete examples that were raised during the discussion.

Case studies

Everything is done by Keno

This is a hypothetical scenario brought to the extreme (I even make it more radical here compared to the discussion, because I love being overdramatic):

Keno (arbitrarily chosen as one AI-poweruser), thanks to an army of agents, becomes so productive that the other contributors feel like their contribution is not meaningful. What they do in one month, Keno does in one hour. Of course, in practice, their contribution would still be extra work going into the system, having a net positive effect. But they feel irrelevant, so they disengage. To compensate, Keno brings in even more agents.

This even propagates to the package ecosystem: when Keno sees issues in a package, he sends his hordes of agents after them. They all get solved. Soon the maintainers give him write access to every repo. It is the most reasonable thing to do, as they cannot keep up with the PR and he really does improve the packages.

In the end, the ecosystem is better, better than it could ever have been otherwise. But the community is formed of only a single human, Keno.

It is, of course, an exaggeration, but it reveals a legitimate concern: the decisions may become increasingly concentrated into the hands of the AI-powerusers. Not because they want to grab power, just because it is the most reasonable thing to do to improve productivity.

Conversely, as it goes, the community becomes more fragile, as the bus factor decreases.

The disappearance of the entry points to the community

A more grounded scenario is one that already happened: the traffic on the help sites has dropped. Since agents can answer questions, we are seeing fewer on slack, discourse and stackoverflow. Thus, new users never get in contact with the rest of the community and potentially never become part of it.

On the other hand, the entry level for contribution for an AI-entusiast is way lower than for an AI-skeptic. So the entry points may not have disappeared, but simply shifted to PR directly.

To my knowledge, no proper monitoring of this exists.

The past paradigm shifts

Finally, I believe that it would be useful to refer to history. Significant changes have brought opportunity and frustration in the past, and we may be able to learn from them.

A typical example was the appearance of compilers. Nobody now would accept a PR that is written in assembly directly without having gone through a compiler. The usage of AI may follow a similar path, with the old guard reticent to adopting the new technology going through the same cycle of resistance as our predecessors.

I have not had time to research this subject, but I would be glad to not repeat mistakes of the past.

What I left out

This is my best attempt at summarizing a rather long and intense discussion, and I hope it will bring a continued dialogue that will ultimately result in practical actions that will reinforce the community.

I voluntarily left out the details of the ethical problems with the use of AI, and the question of whether it is the right language to bet on for the coming AI age. They are both very important, but I believe that they go beyond the question that I would like to keep central here: our community.

Note that I had a talk at Juliacon that focused on this topic as well “The Agentic AI Maintenance Bots of the SciML Organization”, whose main focus to give a quantitive review of how AI has been used in SciML and whether this has led to “slop”.

Slides link below:

It seems like the perspective of the Community on this particular topic is slowly changing direction.