Research
Current AI agents remain heavily dependent on human engineering. Humans still choose their tools, refine their prompts, structure their context, inspect their failures, and modify their workflows when they encounter new environments or unexpected problems. My research interests centre on replacing this repeated manual intervention with self-improving coding-agent systems that learn from experience and make persistent, verifiable changes to themselves and the software systems around them.
I am particularly interested in coding agents because code provides a general interface to the digital world. Through terminals and computational sandboxes, agents can inspect repositories, execute programs, interact with APIs, reproduce failures, run tests, conduct experiments, and construct new tools. Code execution therefore gives agents both a broad action space and a source of grounded experience. Instead of reasoning only from static text, an agent can form a hypothesis, act on an environment, observe the result, and revise its approach.
The capability of a coding agent, however, depends not only on its underlying model but also on its harness. The harness includes its prompts, tools, context-management strategies, memory, planning procedures, execution environment, subagents, permissions, and validation mechanisms. I want to study how these components should be designed, how their interactions shape behaviour, and how they can evolve rather than remain manually configured.
Every agent run generates valuable experience. Complete traces can preserve the context supplied to the agent, its plans, terminal commands, tool calls, errors, file changes, subagent interactions, feedback, costs, tests, and downstream outcomes. These traces should become an experience repository that meta-agents can analyse across individual sessions and large populations of agents. A meta-agent should be able to identify recurring failures, attribute them to the appropriate component, propose a targeted modification, evaluate the change against prior traces and regression tasks, and integrate successful improvements through versioned updates.
Experience should also extend beyond internal execution traces. Agents should be able to interact with deployed products as end users, discovering broken workflows, friction, and missing capabilities that conventional tests may not anticipate. Independent observer agents can examine executions, challenge unsupported completion claims, detect inefficiencies, monitor reliability, and proactively search for opportunities to improve shared processes. Agents thus become not only workers, but also users, reviewers, evaluators, operators, and developers of the systems they inhabit.
Supporting these capabilities requires persistent, asynchronous, and agent-native infrastructure. Agents should be able to pause and resume, respond to events, invoke one another, collaborate in shared sessions, and continue operating until their work has been verified. All relevant state, telemetry, evidence, and capabilities should be exposed through programmable and machine-readable interfaces because agents will increasingly produce, operate, and consume software directly.
These foundations could enable self-driving codebases and autonomous software factories. Humans would provide high-level objectives, requirements, constraints, and direction, while groups of agents manage planning, implementation, testing, review, deployment, monitoring, maintenance, and continued improvement. Autonomy must be paired with verifiability. An agent should not merely state that a feature works or a bug has been fixed; it should produce evidence such as reproducing tests, regression checks, static-analysis results, execution traces, deployment observations, user-level validation, or formal guarantees where feasible.
My longer-term goal is to extend this improvement loop to AI research. When a limitation cannot be addressed through a harness or software change, research agents should be able to study prior work, formulate hypotheses, design controlled experiments, execute them, interpret the results, and develop improved models or inference techniques. These advances can then strengthen the coding agents that maintain the surrounding software and conduct subsequent research.
I view this combination of coding-agent harness engineering, experience-driven self-improvement, agent-native infrastructure, verifiable software generation, and automated AI research as a promising path toward increasingly general digital intelligence. The unifying goal is to build systems that do not merely complete tasks, but learn from continued operation and participate in their own development.