最新资讯
dev.to 如何在专用 GPU 服务器上用 OpenAI 兼容 API 部署 LLM dev.to 审计 153 份 Claude Code 与 Codex 会话记录:User-Agent 与 URL 中的邮箱泄露 dev.to 你的 Agent Harness 应具备的 17 项能力 dev.to 离线 AI 记忆中 0.8 余弦阈值为何失效 dev.to Kimi K3.1 Pro 开放权重:自托管 2.8T 模型前的开发者清单 dev.to 如何通过工具调用引导模型以提升 Harness 质量 dev.to AI Agent 审计轨迹不等于对话记录 dev.to 精简 MCP server 工具数量:更少工具、更小影响面,双重收益 dev.to 为什么 git checkout 无法撤销 AI 编码 agent 的改动? wechat AI短剧门槛降降降!实测即梦短剧工作室:剧本分镜预演一条龙,伙伴计划长期护航 dev.to 让模型改写文档前,先量化事实保真度 dev.to 回放 153 个 Claude Code 与 Codex 会话,审计 Agent 的生产影响范围
多元动态
登录 注册
AI编码 pub.towardsai.net · @Khanna Bharat

Copilot 时代终结:为自主编码代理构建工程系统

原文 我的收藏

文章指出 AI 辅助开发正从自动补全转向任务自主完成,强调需要为自主代理设计工程系统,并提及 GitHub、OpenAI Codex 和 Claude Code 的进展。

AI推荐理由 讨论自主编码代理的工程化,引用 GitHub、OpenAI、Claude Code 等具体产品,对开发者有实际指导意义。

80

正文

Artificial Intelligence Ai Agents Software Engineering Context Engineering Developer Productivity The Copilot Era Is Ending: Engineering for Autonomous Coding Agents The uncomfortable transition from “suggest a line” to “complete a task” is already changing how software gets built. The missing piece is not a better prompt. It is an engineering system designed for autonomy. Khanna Bharat 8 min read · Just now -- Listen Share Press enter or click to view image in full size The most consequential change in AI-assisted development is easy to miss because it does not look like a new model release. It looks like this: a developer assigns a ticket, steps away, and returns to a branch with a plan, commits, test output, and a pull request ready for review. That is not autocomplete. GitHub’s cloud agent can research a repository, make a plan, change a branch, run tests and linters in an ephemeral environment, and optionally open a pull request. OpenAI’s Codex has similarly been built around isolated task environments, command execution, test evidence, and parallel work. Claude Code now supports specialized subagents, separate contexts, scoped permissions, and coordinated work across agents and sessions. These systems are not identical, and none removes the need for engineering review. But together they mark a clear shift: the unit of AI assistance is moving from the suggestion to the delegated outcome. Most teams are still managing that shift with the mental model they inherited from autocomplete. They call everything a copilot. They measure accepted suggestions. They assume a human will see every consequential edit. And they treat the agent’s ability to act as a convenience feature rather than a systems-design problem. That is the autonomy gap. The real transition is not Copilot vs. Agent It is tempting to draw a hard line between a copilot and an agent. In practice, autonomy is a spectrum. A copilot proposes a function and waits. An agent takes a bounded task, explores the repository, edits files, and attempts to validate its work. A coordinated agent system divides a larger task across specialists: one explores, one implements, one tests, one reviews. At the far end, an autonomous engineering system can execute routine work within explicit boundaries while people focus on outcomes, architecture, and exceptions. The important question is not, “Is this tool an agent?” Which decisions can this system make and execute without asking a human in the moment — and what evidence must it produce before we trust the result? That question exposes why the old copilot model is no longer enough. With autocomplete, the human is the control plane. The developer reads the suggestion, accepts or rejects it, runs the code, and owns the consequences. The tool’s failure mode is mostly local: an incorrect line, a bad import, an insecure pattern caught in review. With delegated work, the agent becomes part of the delivery system. It can read broadly, invoke tools, create commits, consume CI capacity, and generate an artifact that other people may merge. Its failures can also become systemic: a plausible but wrong change spread across several files; a passing test suite that tested the wrong thing; a “cleanup” that erased an intentional architectural boundary. The agent did not become reckless. The system around it remained immature. What is real today — and what is still a dangerous leap The sober version of this story is more useful than the hype. Real today: agents can take well-scoped coding tasks, inspect a repository, edit files, run configured commands, and produce a traceable artifact for review. They can work asynchronously. They can specialize. They can preserve the human’s attention for decisions that actually require judgment. Emerging today: systems in which several agents share work, pass findings between contexts, and use specialized instructions or restricted tools. This is valuable, especially for exploration, verification, and narrow implementation tasks. It is also operationally complex: more agents create more handoffs, more context boundaries, and more ways for an unsupported assumption to compound. Still a dangerous leap: treating a passing agent run as permission to let it alter production systems, modify privileged access, or decide on a security-sensitive design. A test result is evidence. It is not a transfer of accountability. That distinction should shape every architecture decision that follows. The failure is usually not “bad code.” It is missing control. When teams say they do not trust coding agents, they often mean one of three things. Each is an engineering problem, not a prompt-writing problem. 1. The agent cannot prove what it did An agent may say it fixed a bug. That statement is not enough. For a change to be reviewable, an engineer should be able to answer: What task was assigned? Which files and commands did the agent touch? What repository state did it start from? Which tests, linters, and security checks actually ran? What failed before it tried again? This is why terminal logs, diffs, commit history, and test artifacts matter. They turn an agent’s narrative into inspectable evidence. The artifact — rather than the chat transcript — should be the center of the workflow. 2. The agent has code context, but not decision context Repository search is not understanding. The context that matters in production is often scattered: an architectural decision record explaining why a pattern exists; a previous incident that made a seemingly harmless dependency unacceptable; a deployment constraint hidden in a runbook; an ownership boundary that must not be crossed. This is why project instructions and repository-local guidance are more than prompt decoration. They are a way to convert institutional memory into operating constraints. But prose alone is fragile. The highest-value rules should become executable checks: dependency policies, protected paths, required tests, schema restrictions, and release gates. An agent with incomplete context does not merely make mistakes. It can make mistakes with confidence and speed. 3. The organization has not decided who owns the blast radius An autonomous coding workflow forces an old question into the open: when a machine creates a change, who is accountable for merging, deploying, and operating it? The answer cannot be “the AI.” Accountability remains with the organization. That means teams need named owners for agent configuration, tool permissions, review policy, and incident response — just as they do for CI pipelines and production services. Get Khanna Bharat’s stories in your inbox Join Medium for free to get updates from this writer. Subscribe Subscribe Remember me for faster sign in The practical test is simple: if an agent-created pull request causes an incident, can the team reconstruct the decision path, disable the relevant capability, revert safely, and learn from the event? If not, the team has automation without governance. Press enter or click to view image in full size The production guardrail stack The answer is not to put a human approval dialog before every command. That recreates manual work with more latency. The answer is to replace routine approval with a layered control system. Start with audit and observability Every agent run should leave a durable trail: task, environment, permissions, tool calls, changed files, test outcomes, and final artifact. This enables review, debugging, evaluation, and rollback. It also gives teams a way to distinguish useful autonomy from activity that merely looks productive. Enforce policy before the action Some actions should be non-negotiable denials: reading production secrets, changing identity permissions, bypassing protected branches, opening public network access, or altering regulated data without a defined workflow. These are not suggestions buried in an agent prompt. They are controls enforced by tool permissions, sandbox boundaries, repository rules, and deployment policy. Give the agent bounded, current context An agent needs a reliable way to learn the project’s test command, architecture boundaries, dependency policy, and definition of done. Keep that context close to the codebase, version it, and make it specific. Then keep the task itself small enough that validation is meaningful. The more consequential the change, the more the task needs explicit scope: allowed directories, forbidden resources, required checks, and a clear stopping condition. “Improve authentication” is an invitation to guess. “Add a test for expired refresh tokens; do not modify the token issuer; run these commands” is a bounded engineering task. Separate specialists from authority Multi-agent systems are promising because specialization is useful. A read-only explorer can map the codebase. An implementer can make a patch. A reviewer can search for regressions. A verifier can run tests in a clean environment. But specialization should not create a chain of unaccountable decisions. The orchestrator needs a defined authority model: who may write, who may approve, who may access external tools, and what requires escalation. More agents do not create more trust. Better boundaries do. Keep human checkpoints for irreversible risk Human review should move upward — not disappear. People should spend less time approving routine file edits and more time evaluating requirements, threat models, architectural trade-offs, customer impact, and exceptions to policy. Authentication flows, payment behavior, privacy-sensitive data paths, public APIs, and production releases deserve deliberate human ownership even when an agent did most of the implementation work. A sensible adoption path The best way to fail with agents is to begin with a broad, ambiguous task and unrestricted access. The best way to learn is to earn autonomy gradually. Stage 1: Read-only intelligence. Use agents to map code, explain failures, draft plans, and identify test gaps. Measure whether their findings help engineers move faster. Stage 2: Bounded implementation. Let agents create changes in a branch or sandbox. Require tests, linters, and a human pull-request review. Begin collecting evidence on rework rate and review burden. Stage 3: Automated verification. Add repository instructions, protected paths, dependency checks, secret scanning, and quality gates. Make evidence required — not optional — before a change can advance. Stage 4: Controlled orchestration. Introduce specialized agents only where the handoffs are clear and independently verifiable. Start with exploration and review before using multi-agent execution for critical changes. Stage 5: Policy-bounded autonomy. Automate routine, reversible actions where the blast radius is low and rollback is proven. Escalate exceptions and high-risk changes to humans by design. This sequence matters. Teams that jump from a chatbot to autonomous deployment tend to discover governance through incidents. Teams that build the foundation first can safely raise the ceiling over time. Stop measuring acceptance rate Acceptance rate made sense when the interaction was a suggestion at the cursor. It is a poor measure of a delivery system. For agent-based work, track outcomes that expose both value and risk: Lead time for bounded tasks: from assignment to a reviewable artifact. First-pass validation rate: how often the agent’s initial change clears the required checks. Human rework rate: how much of an agent-authored change is substantially rewritten before merge. Review time and defect escape rate: whether the agent reduces review effort without moving failures downstream. Rollback and policy-violation rate: whether the system is staying within the autonomy it has earned. These metrics discourage the wrong optimization. A system that creates many pull requests is not necessarily useful. A system that creates small, well-evidenced, low-rework changes may be. The shift is not “human out” The most productive framing is not that agents will replace software engineers. It is that agentic systems are changing what engineering teams need to own. As execution becomes cheaper, judgment becomes more valuable: defining the right problem, establishing non-negotiable constraints, designing verification, understanding trade-offs, and deciding when a system has earned more autonomy. That is why the organizations that benefit most from coding agents will not be the ones with the longest prompts or the largest swarm. They will be the ones that turn their engineering standards into an operating system for delegated work. The next competitive advantage will not be “we use AI to write code.” Everyone will. It will be: we can delegate real work to agents without delegating away control.

来源报道 · 1 篇 · 以下链接均前往原始媒体

← 返回精选动态 原文

更多内容