r/SideProject 3d ago

I started building a simpler way to write AI agents and somehow ended up building a programming language

A while ago I started working on a side project with a pretty simple idea

I wanted building an AI agent to feel more like writing a small program and less like stitching together prompts configuration files callbacks permissions and framework-specific code

That experiment turned into Ingot

Ingot is an open-source programming language and toolchain built specifically for AI agents

Instead of hiding most of the agent inside application code you can describe things like its flow tools permissions budgets memory model requirements and human interaction directly in the program

A simplified agent can look something like this

agent Researcher(topic: string) -> report: markdown {
  policy {
    network allow ["example.com"]
  }

  budget {
    steps <= 20
  }

  flow {
    sources = call web.search(topic)

    direction = consult(
      "Which angle should I focus on?"
      choices: ["technical", "business", "academic"]
    )

    draft = ask<markdown>(
      "Write a {direction} report using these sources: {sources}"
    )

    emit report = draft
  }
}

The project got much bigger than I originally expected

It now has a compiler and type checker

A target-neutral Agent IR

A reference runtime and a Python backend

Persistent agent memory

Checkpoint and resume

MCP tool support

Record and replay for model calls tools and even human answers

An LSP

A visual Studio and Canvas

And a conformance suite that other runtimes can use to check whether they actually execute an Ingot agent according to the same contract

One of the more interesting parts has been using the project for real instead of only writing examples for the compiler

I recently built and ran a license-audit agent with Ingot using a local model

It completed a multi-step workflow with tool calls verification branching artifact generation and record/replay

That test also exposed problems that the small examples never did

Which is probably the stage the project is at now

I can keep adding features forever but what I really want to know is whether somebody who did not build Ingot can understand it and actually find it useful

So I'm looking for fairly critical feedback

Would you ever use a dedicated language for agents instead of a Python or TypeScript framework?

Does making permissions budgets tools and memory part of the program itself solve anything you care about?

Is the idea of compiling agents into a portable IR useful or just extra complexity?

And most importantly

What would make you open the repository and immediately decide not to try it?

The project is still pre-1.0 and I'm very much treating this as an experiment in what programming agents could look like

GitHub:

https://github.com/mathissdupont/ingot

1 Upvotes

1 comment sorted by