人工智能

AI Agent 如何改变软件架构

当模型可以调用工具、读取记忆并自己决定下一步,软件就不再只是一串预先写好的分支。

AI Agent 如何改变软件架构

过去大多数软件的控制流是人写死的。用户点一个按钮,程序走进某个函数,再返回一个结果。Agent 把其中一段控制流交给模型:它先看目标,再决定要不要搜索、写代码、查数据库,或者停下来。

什么是 AI Agent

一个 Agent 不是更长的提示词。它是一个循环。模型提出下一步动作,运行时执行这个动作,再把结果送回模型,直到它认为任务完成,或者到达你设定的边界。

边界比模型更重要。没有步数、权限和检查,循环只会把一次错误放大成一串错误。

它和聊天机器人有什么不同

聊天机器人通常回答一次。Agent 会连续行动。前者的失败是说错,后者的失败可能是做错:删掉文件、发出请求、把错误写进记忆。

聊天机器人Agent
控制流一次回答多步循环
工具通常没有搜索、代码、数据库
主要风险说错做错

一个最小架构

模型

模型负责选择下一步。它不应该直接碰到生产系统,而应该返回一个结构化动作。

工具

工具是你明确允许的能力。每个工具都要有名字、参数和失败时的返回值。

记忆

记忆保存已经发生的事。它不是无限的聊天记录,而是下一轮决策需要的摘要。

def run_agent(goal, tools, memory):
    steps = []
    while len(steps) < 8:
        action = model.decide(goal, memory.read(), tools.schema())
        if action.type == "finish":
            return action.answer
        result = tools.call(action.name, action.args)
        memory.write({"action": action, "result": result})
        steps.append(action)
    return memory.summary()

把 RAG 放回正确的位置

检索可以成为 Agent 的一个工具,也可以发生在循环开始之前。两种做法都合理,但不要把检索说成训练。

说明

RAG 不会训练模型。它只是在回答之前,把检索到的材料放进上下文。

模型不会因为被放进一个循环就变得可靠。可靠来自你允许它做的事,以及你如何检查结果。

工程上先守住的边界

先限制步数、工具权限和可写范围。让每次动作都可以记录、重放和撤销。能由普通程序完成的判断,就不要交给模型。

结论

Agent 改变的是控制流的位置,不是软件工程的责任。架构仍然要回答:谁可以行动,行动如何被看见,失败时停在哪里。

本页目录
Frank Chen

Frank Chen

人工智能 / Android / 产品

写人工智能、Android 与产品设计。关心系统如何被理解,而不只是如何被演示。

讨论

2 条评论

  1. Lin

    把失败定义成做错而不是说错,这个区分很有用。

    1. Frank Chen

      下一步会用一个只读搜索工具来写这个例子,先不给写权限。

留下评论

评论会在审核后公开。姓名和邮箱为必填。