I’ve been testing out goose
an AI agent for writing code that runs on your machine instead of as an IDE co-pilot.
Writing features for my personal indexing service (a rust codebase), I learned:
- For small, additive, self-contained features, it works well. For example, spawning a long-running task that used to be blocking, adding a client-side PWA service-worker, and adding a test function.
- Sometimes I found that
goose
would replace a line rather than add it—when creating a new module it overwrote a line inlib.rs
which caused another module to no longer be linked and fail to compile. This also happened when adding a dependency. - One time it overwrote a file and truncated it and never finished outputting the rest.
- Responds well to guidance about correcting issues. For example, when implementing the server side implementation for push notifications it used a library incorrectly (probably an old version), but when I provided the readme example as context, it fixed it up.
- Typed languages are probably best for AI agents
Links to this note
-
Typed Languages Are Best for AI Agents
Typed languages should be the best fit for useful AI agents. Context is needed for practical LLM applications and type systems provide a ton of context. Compiling code provides a short loop that can help the agent.