从应用程序到代理:新软件范式
Source: Dev.to
请提供您希望翻译的正文内容(除代码块和 URL 之外的文本),我将按照要求保持原有的 Markdown 格式并将其翻译成简体中文。
应用时代:人类驱动每一步
传统应用是被动的。它们等待用户:
- 点击按钮
- 填写表单
- 触发工作流
- 请求报告
即使是先进的 SaaS 平台也大多表现为复杂的仪表盘。它们提供:
- 工具
- 界面
- 数据可视化
但行动的责任仍然属于人工操作员。系统帮助执行任务,却很少主动推动进展。
代理改变交互方向
代理颠倒了动态。它们不再等待指令,而是可以:
- 观察上下文
- 解释目标
- 规划行动
- 执行任务
- 根据反馈进行适应
换句话说,代理为软件系统引入了主动性。这并不意味着自主机器取代人类;而是指软件能够积极参与实现目标。
什么使代理与应用程序不同
差异细微却强大。
- 应用程序回答:“当用户点击此时,我应该做什么?”
- 代理回答:“在给定此目标和上下文的情况下,接下来应该发生什么?”
这需要五项能力:
感知
代理监控信号和上下文。
推理
它们解释信息,而不仅仅是处理输入。
规划
它们确定可能的行动。
执行
它们执行任务或协调系统。
学习
它们通过反馈进行改进。
传统软件很少同时具备这五项;基于代理的系统则具备。
为什么这种转变现在发生
三项技术的融合使得代理成为可能:
- 大型语言模型 – 它们使机器能够理解和生成自然语言。
- API 与数字基础设施 – 几乎所有服务现在都可以通过编程方式触发。
- 云计算和编排工具 – 它们使代理能够持续运行并具备规模化能力。
当这些要素相互连接时,软件就获得了从执行引擎转变为决策参与者的能力。
代理并不取代应用程序;它们位于其之上
应用程序仍然存在;它们成为代理使用的工具。将代理视为与现有软件交互的操作员:
- 调用 API
- 更新系统
- 检索数据
- 触发工作流
- 协调跨平台任务
应用程序仍是基础设施;代理则成为该基础设施的编排者。
软件变更的界面
在应用时代,界面是可视化的。用户通过以下方式进行交互:
- 菜单
- 表单
- 仪表盘
- 按钮
在代理时代,界面转向:
- 自然语言交互
- 基于目标的指令
- 对话式工作流
- 在人工监督下的自主执行
用户越来越多地传达意图,而不是具体的操作步骤。
开发者角色的演变
开发者构建应用时主要设计:
- 数据模型
- API
- UI 组件
- 后端逻辑
开发者构建代理系统时还必须设计:
- 决策边界
- 安全约束
- 上下文管理
- 评估框架
- 人工覆盖机制
这带来了新的职责:
- 行为设计
- 风险管理
- 运营治理
复杂性从代码语法转向系统行为。
最大的挑战:控制与信任
基于代理的系统会带来风险。由于它们会主动行动,开发者必须回答以下问题:
- 代理何时应自主行动?
- 何时必须请求批准?
- 我们如何审计它的决策?
- 当它失败时会怎样?
- 我们如何防止有害的自动化?
代理系统的未来不仅取决于智能,还取决于控制架构。
第一波已经可见
我们已经看到了一些早期例子:
- 编码副驾驶(coding copilots)提出并执行更改
- AI 助手管理电子邮件或日程安排
- 自动化研究代理收集信息
- 工作流机器人在各工具之间协调任务
这些仍然很原始,但它们暗示了一个软件变得协作而非被动的世界。
Source: …
长期愿景
在下一阶段的计算中,用户将越来越多地通过目标与系统交互。人们不再需要在数十种工具之间切换,而是会说:
- “准备一份我们的销售业绩摘要。”
- “优化我们的营销活动。”
- “调查此系统故障。”
- “研究该市场的竞争对手。”
代理将协调各类应用程序来实现这些结果。重心从界面转向意图解释。
真正的收获
从应用程序到代理的演进代表了软件的根本性变革。
- 应用程序 执行指令。
- 代理 追求结果。
这并不会消除传统开发,而是对其进行扩展。开发者将构建能够:
- 对目标进行推理
- 协调多个工具
- 适应上下文
- 与人类协作
软件的未来不仅仅是编写代码,而是设计能够在追求现实世界目标时负责任行动的智能系统。这标志着一种新软件范式的开始。