T
traeai
登录
返回首页
freeCodeCamp.org

AI代理的崛起:软件如何学会行动

8.5Score
AI代理的崛起:软件如何学会行动

TL;DR · AI 摘要

AI代理正将软件从被动响应转变为自主目标执行,通过LLM、记忆与工具实现智能决策。

核心要点

  • AI代理利用LLM进行推理与任务规划,无需逐行编码。
  • 代理通过记忆维持上下文,动态调用API或命令工具。
  • 开发者只需设定目标,无需定义完整工作流。

结构提纲

按章节快速跳转。

  1. 传统软件是反应式的,而AI代理正推动软件从指令驱动转向目标驱动的主动行为。

  2. AI代理不依赖固定流程,而是根据目标自动规划路径,实现动态适应与自主决策。

  3. AI代理由推理(LLM)、记忆和工具三部分构成,共同支持其持续行动与上下文理解能力。

  4. 大语言模型的多步推理能力和成熟生态(如标准化API、可编程基础设施)是关键推动力。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • AI代理的崛起:软件如何学会行动
    • 核心特征
      • 目标驱动而非指令驱动
      • 自主规划与实时适应
    • 三大核心组件
      • 推理(基于LLM)
      • 记忆(上下文保持)
      • 工具集成(API/Shell/DB等)
    • 技术驱动力
      • LLM的多步推理能力
      • 标准化API与可编程基础设施

金句 / Highlights

值得收藏与分享的关键句。

  • Instead of specifying every step, you define an objective and provide access to tools. The agent decides how to achieve the objective, often adapting in real time.

    第 2 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Without memory, the agent behaves like a stateless function. With memory, it can track progress, recall past actions, and refine its approach.

    第 3 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • The shift enables goal-driven execution: developers define objectives, not workflows.

    第 4 段

    ⬇︎ 下载 PNG𝕏 分享到 X
#AI代理#大语言模型#软件设计#自主系统#GPT-4
打开原文
Image 1: AI代理的崛起:软件如何学会行动

软件始终是被动响应的。

你点击一个按钮,它就会作出反应。你调用一个 API,它就会返回数据。

即使是最复杂的系统,历史上也一直依赖明确的指令和严格定义的工作流程。而这一模式正在开始瓦解。

一种新型软件正在涌现,它们不仅会响应,还会主动行动。

这种转变并非表面现象。它从根本上改变了软件的设计方式、系统的运行方式,以及工作本身的执行方式。

开发者不再需要编码每一个工作流步骤,而是只需定义目标、约束条件和可用工具,然后让软件自行推导出执行路径。结果就是,软件的行为更像一个操作员,而非一个函数。

在本文中,你将了解 AI 代理究竟是什么,它们与传统软件系统有何不同,以及为何它们正逐渐成为现代软件设计的一次重大变革。

本文面向开发者、技术创始人、工程经理,以及任何正在构建包含 AI 组件的软件系统的人。

你不需要有构建 AI 代理的经验,但熟悉基础的 Python 语法和大语言模型(LLMs)会有所帮助。

我们将涵盖的内容:

从确定性系统到目标驱动的执行

传统软件系统是确定性的。给定相同的输入,它们总会产生相同的输出。

这种可预测性使它们可靠,但也正是这种特性限制了它们的灵活性。任何工作流程的变化都需要编写新代码、新增条件和分支。

AI 代理引入了一种不同的范式。它们是目标驱动的,而非指令驱动的。你无需指定每一步操作,只需定义目标,并提供对工具的访问权限。代理将自主决定如何达成目标,通常还能实时调整策略。

以一个简单的任务为例:汇总一组文档并发送邮件。在传统系统中,你需要编写一个流水线,加载文档、处理内容、格式化输出,最后发送邮件。每个步骤都必须显式编码。

而在代理系统中,流程可能看起来更像这样:

code
from openai import OpenAI

client = OpenAI()
goal = "汇总 /reports 目录下的所有文档,并向管理层团队发送一份简洁的简报"
tools = [
    "read_files",
    "summarize_text",
    "send_email"
]
response = client.responses.create(
    model="gpt-4.1",
    input=f"目标: {goal}。可用工具: {tools}"
)
print(response.output_text)

这个例子被简化了,但它捕捉到了核心转变:开发者定义意图和能力,代理负责决定具体执行方式。

AI 代理的核心组件

要理解代理如何工作,最好将其分解为几个组成部分。总体来看,大多数代理由推理、记忆和工具三部分构成。

推理由大型语言模型(LLM)负责。这使得代理能够理解目标、规划行动,并在失败时做出调整。它不只是生成文本,更是生成决策。

记忆让代理能够在多个步骤之间保持上下文。如果没有记忆,代理就像一个无状态函数;而有了记忆,它就能追踪进度、回忆过往行为,并不断优化策略。

工具是让代理真正有用的关键。工具可以是任何东西——从 API 到数据库查询,再到 shell 命令。代理无需了解工具内部如何工作,只需知道何时以及如何使用即可。

以下是一个代理循环中工具使用的最小示例:

code
def agent_loop(goal, tools):
    context = []
    
    while True:
        prompt = f"目标: {goal}\n上下文: {context}\n下一步应该做什么?"
        
        decision = model.generate(prompt)
        
        if decision == "DONE":
            break
        
        if decision.startswith("USE_TOOL"):
            tool_name, tool_input = parse_tool_call(decision)
            result = tools[tool_name](tool_input)
            context.append(result)
        else:
            context.append(decision)
    
    return context

这个循环正是代理“行动”的地方:观察、决策、执行、更新认知。

为什么现在才出现 AI 代理?

自主软件的概念并不新鲜。真正改变的是底层模型的能力。

如今的大语言模型已经能够进行多步推理、解析非结构化输入,并生成可驱动真实系统的结构化输出。

同样重要的是围绕这些模型的生态系统。API 更加标准化,基础设施更易编程,数据也更加可访问。这使得暴露工具并让它们与真实系统交互变得更加容易,从而帮助构建当今最优秀的 AI 代理

此外,还有经济驱动力。即使在高度数字化的企业中,许多工作流仍然依赖人工操作。这些流程往往涉及跨系统协调、数据解读,以及在不确定性下的决策——而这正是代理擅长的领域。

自主性的幻象与现实

人们很容易将 AI 代理描述为完全自主的。但实际上,大多数并非如此。它们在开发者设定的约束范围内运行,依赖于仅开放特定动作的工具,通常还受到监控、速率限制,并在每一步进行评估。

让它们与众不同的,并不是完全自主,而是部分自主。它们可以在一个有限的环境中自主决定如何执行。

这种区别非常重要,因为它影响着系统的整体设计方式。你构建的不是一个始终表现可预测的系统,而是一个探索解决方案空间并最终收敛到某种结果的系统。

这带来了新的挑战:智能体可能会采取低效的路径,可能误解目标,也可能以难以调试的方式失败——因为失败并非单一错误,而是多个决策链条的结果。

实用型智能体的设计

构建一个智能体很容易,但要让其可靠运行则更具挑战性。关键在于控制。

一种方法是限制智能体的动作空间。与其给予其无限制的访问权限,不如定义一组有限且接口清晰的工具。这种方法能减少歧义,使行为更加可预测。

另一种方法是引入中间检查点。不要让智能体自由运行,而是在关键步骤中验证其决策。你可以通过规则、辅助模型甚至人工审核来实现这一点。

以下是一个添加验证层的例子:

code
def safe_execute(tool, input_data):
    if not validate_input(tool, input_data):
        return "输入无效"
    
    result = tool(input_data)
    
    if not validate_output(tool, result):
        return "输出无效"
    
    return result

这一模式在生产系统中至关重要。它将一个不受约束的智能体转变为一个受控系统,既能适应变化,又在安全边界内运行。

多智能体系统与协作

随着智能体能力的提升,单个智能体往往已不足以应对复杂任务。复杂的任务可以被分解为多个智能体,每个负责特定功能。

例如,一个智能体负责数据获取,另一个负责分析,第三个负责通信。这些智能体可以通过传递结构化消息进行协作。

code
class Message:
    def __init__(self, sender, receiver, content):
        self.sender = sender
        self.receiver = receiver
        self.content = content

def send_message(agent, message):
    return agent.process(message)
message = Message("retriever", "analyst", "从API获取的数据")
response = send_message(analyst_agent, message)

这种架构开始呈现出分布式系统的特征,只不过用的是智能体而非服务。协作成为核心关注点。你需要定义通信协议,处理故障,并确保各智能体之间的一致性。

AI智能体已创造价值的领域

尽管存在炒作,但在一些具体领域,智能体已经展现出实际价值。内部工具开发就是其中之一。自动化重复性工作流程、生成报告、跨系统协调任务,都非常适合使用智能体。

客户服务是另一个典型场景。智能体能够处理需要访问多个系统的复杂查询,而不仅仅是返回预设回复。

安全与合规流程也十分契合。这些流程通常涉及信号监控、数据关联,并根据非确定性规则采取行动。

这些应用场景的共同点是:它们都处于结构化的环境之中,目标明确,结果可衡量。当问题空间有边界时,即使执行路径不确定,智能体也能表现最佳。

软件设计范式的转变

AI智能体的兴起不仅仅意味着增加新功能,更意味着软件抽象层级的根本性改变。

不再编写直接实现行为的代码,而是设计能够“激发”行为的系统。你定义目标,暴露能力,设定约束。真正的执行过程变得动态化。

这要求全新的思维方式。调试不再只是追踪代码,而是理解决策路径;测试也不再仅限于输入输出对,而是评估系统在多种场景下的行为表现。

可观测性变得至关重要。你不仅需要记录系统做了什么,还要理解它为什么这么做。这包括提示词、中间决策以及与工具的交互记录。

未来展望

AI智能体仍处于相对早期阶段。当前一代虽然强大,但并不完美。可靠性是主要挑战之一,成本问题也尤为突出,尤其是在每个任务都需要多次模型调用的情况下。

但方向已经非常清晰:软件正从静态执行转向动态行动。用户与系统之间的界限日益模糊。人们不再需要逐条指令软件如何操作,而是越来越多地定义期望结果,让系统自行推导出实现路径。

这并不会消除工程师的需求,而是改变了工程师的工作内容。重点从实现逻辑转向设计能够推理、行动和适应的系统。

AI智能体的兴起标志着一次重大转型。软件不再仅仅是工具,正在逐渐成为参与者。

_加入我的_**应用AI通讯**__,学习如何构建并交付真实的AI系统。包含实战项目、可投入生产的代码以及直接问答。你也可以_**在LinkedIn上联系我**__。_

  • * *
  • * *

免费学习编程。freeCodeCamp的开源课程已帮助超过4万名学习者找到开发者工作。立即开始

AI 可能会生成不准确的信息,请核实重要内容