Improving JuMP for AI agents

Attention JuMP users!

In the last release we spent some time improving JuMP for use by AI agents. Error messages are now clearer and include an actionable next step, which helps agents debug issues. (This also helps regular users!) We added an AGENTS.md file, and we added learning intentions to the tutorials so that you can skim whether a tutorial is relevant before reading the entire thing.

Before we go further, we have some questions for the community.

  • How do you use AI with JuMP?
  • Do you see common places where agents get stuck?
  • Do you use custom skills?
  • Do you have suggestions for how we could improve AI integration with JuMP?

Let us know by commenting below, DM me privately, or open a GitHub issue.

So far so good for AI with JuMP (via InfiniteOpt)

Debugging slow convergence hasn’t been very successful. The default verbosity is perhaps not very AI-friendly, and certainly not token-efficient, so I instruct the agent to use set_silent unless it has a reason to do otherwise. I wonder if some other kind of summary would be better to help the AI diagnose convergence issues.

I guess this is hard because it is solver-dependent.

Relatedly: I have been on a rant at some solver developers recently. I don’t think their logs are helpful, and this is more evidence. The way solvers present logs has been largely guided by what solver developers like to see, not what is helpful to users. There’s also a strong push for backwards compatibility because many people have written scripts to parse log files and they don’t want to break them.

I think if we presented simpler logs in a more readable format, more people might actually pay attention to them instead of just turning them off.

  • How do you use AI with JuMP?
  • Mainly as an auto-complete-on-steroids, that’s where my productivity is improved for real. My experience with vibe coding is quite poor honestly (except for generating tests).
  • Do you see common places where agents get stuck?
  • When it gets too mathematical. It seems to perform poorly when it comes to understanding the underlying optimization model (the quadratic model, the frigging \frac{1}{2} term in front of the Hessian, the sparsity pattern, the prediction equations of the linear optimal control problem, etc.)
  • Do you use custom skills?
  • No. I find skills to be too messy in terms of traceability, especially when there is a stack of them (“why this guardrail is suddenly activated?!?”)
  • Do you have suggestions for how we could improve AI integration with JuMP?
  • No. Except maybe a request: please do not use it too much for the implementation of new features in JuMP.jl. You are doing an incredible job since the beginning, please keep this marvellous pace (a human maintainer, the best kind :partying_face:).

Thanks @odow for all your work in the maintenance of JuMP.jl and MathOptInterface.jl :slight_smile: !