What AI Coding Agents Are and Why They Matter for C++ Teams
AI coding agents are software tools built on large language models that can read enterprise codebases, edit files, run commands, and assist developers with tasks ranging from boilerplate generation to complex bug fixes while remaining under human supervision. For C++ development tools in large, performance-sensitive systems, these agents add a new layer of enterprise codebase automation rather than replacing engineers. ClickHouse’s experience shows a practical progression through three levels of AI-assisted coding: copying snippets from chat, using integrated agents inside the CLI or IDE, and experimenting with more autonomous agents in isolated environments. The second level has become the daily workhorse on their main C++ codebase, handling build edits, test runs, and commits. This shift moves AI coding agents from novelty to everyday infrastructure, making developer productivity gains a realistic target instead of a speculative promise.
From Skepticism to Daily Use on a Large Enterprise Codebase
ClickHouse’s path shows how perceptions of AI coding agents can flip as models and tools improve. Early in 2025, agents struggled with the complexity of their main C++ codebase and were limited to simpler JavaScript or Python tasks. Many engineers tried them once, saw poor results, and decided they were toys. That changed with the introduction of Claude Opus 4.5, which handled tightly specified C++ tasks, CI log investigation, and small feature work with reliable output. As confidence grew, the team shifted more of its day-to-day work into CLI and IDE agents, integrating them as first-class C++ development tools. This case underlines a key lesson for any enterprise codebase automation effort: model upgrades and tooling maturity can move the boundary between “not worth it” and “use the agent” fast, so one failed trial does not define long-term potential.
Where AI Coding Agents Deliver Measurable Productivity Gains
On ClickHouse’s production codebase, AI coding agents shine in repetitive, high-volume work where consistency matters more than creativity. They handle boilerplate changes in build systems, configuration edits across many files, infrastructure scripts, and Kubernetes manifests with fewer mistakes than tired humans. Merge conflict resolution is another strong win: agents propose merges and developers review, which improves code quality compared with rewriting everything manually. In code review pipelines, ClickHouse even built its own bot around existing tools, letting human reviewers focus on architecture while the agent flags resource leaks, race conditions, and corner cases. The most dramatic gains appear in testing: their CI runs 20 to 80 million tests across hundreds of commits and pull requests a day, and AI support enabled about 700 pull requests focused on flaky tests and CI infrastructure, cutting findings to a handful per 10 million test runs.
Using Agents Safely: Limits, Bugs, and Developer Judgment
AI coding agents can read logs, form hypotheses, and even fix elusive concurrency bugs, but they also produce plausible mistakes. On a large C++ codebase, this means developer productivity rises only when engineers treat agents as tools of thought rather than substitutes for thinking. ClickHouse’s team highlights that strong engineers become sharper with agents, while weaker engineers can scale up their errors. Bug investigation is a prime example: agents can propose several explanations for a failure, yet only an experienced SRE can decide which path to follow. In one case, Opus 4.6 eventually fixed a hard concurrency bug with a single-line change, but only after about an hour of guided reasoning and careful testing. The rule that emerges for enterprise codebase automation is clear: always validate with more tests, fuzzing, and randomized checks instead of trusting the model’s confidence.
Practical Lessons for Integrating AI Coding Agents into Workflows
ClickHouse’s year-long experiment offers a set of practical habits for teams adopting AI coding agents. Start with well-bounded tasks such as boilerplate, merge conflicts, and repetitive refactors, then gradually move to more complex features as trust and skill grow. Be specific in prompts: naming files, functions, and preferred approaches leads to better results and keeps engineers engaged with the design. Use the latest models and keep more than one provider available to withstand downtime. For developer experience, short guidance files like CLAUDE.md or AGENTS.md help, but long lists of do-nots tend to be ignored. The broader takeaway for organizations is that developer experience and tool adoption matter as much as raw model performance: teams that integrate agents tightly into their CLI, IDE, CI, and review workflows already see widening productivity gaps compared with those who ignore these tools.
