9.1 从回答问题到完成任务还是先从两个简单的例子来入手。第一个例子用户输入请帮我写一封请假邮件。几秒钟后模型回复尊敬的领导由于XXXXX……整个过程到这里就结束了。模型完成了一次推理Inference生成了一段文本。这是一个典型的问答Question Answering场景。再来看第二个例子。用户输入请帮我分析本月进销存数据找出销量下降最大的产品生成统计图制作一份 PPT最后发送给销售经理。这还是一个问题吗显然不是。它是一个完整的工作任务。完成这个任务至少需要读取 Excel 文件分析销售数据绘制统计图制作 PPT发送邮件。所以到了这里,我们的诉求已经不仅仅是生成一段文字了而是需要完成一系列连续动作。这就是任务Task与问题Question最大的区别。9.2 问题只有一个答案而任务则包含很多步骤可以把两者放在一起比较。问题Question 任务Task一次提问 一个目标一次回答 多个步骤推理结束 持续执行输出文本 输出结果例如我们问模型,北京是中国的首都吗模型回答是。整个过程就结束了,但这个过程只有一次推理。但是如果我们跟模型说,帮我开发一个库存管理系统。我们肯定不希望模型直接用一句话回答,或者输出一堆内容在对话框中让你手动复制.(早期ChatBot期间确实很多人靠复制粘贴… 哈哈哈)我们实际上需要它需求分析↓数据库设计↓接口设计↓编写代码↓运行测试↓修复 Bug↓再次测试↓完成开发到此,其实这已经变成了一个需要持续执行的过程。9.3 LLM 为什么完成不了任务很多人会说“ChatGPT 不是也能写代码吗”这没问题。但是请注意,单纯的写代码和开发软件系统并不是同一件事情。例如,让 ChatGPT 写一个登录接口它很快就能完成。但是如果告诉它“帮我修改整个项目把所有 JWT 登录改成 OAuth2。”事情就完全不同了。因为它需要阅读整个项目找到所有相关代码修改代码编译项目运行测试根据测试结果继续修改。这些步骤之间存在着明确的依赖关系。完成前一步之后才能继续下一步。而 LLM 最大的问题就在这里它的每一次推理都是独立完成的。而且它不会主动开始第二步。也不会等待执行结果。更不会根据执行结果调整自己的计划。9.4 LLM 更像一位顾问而不是一位员工这里我们继续举一个生活中的例子。假设公司里有两个人。第一位是一位经验丰富的顾问。你问他“这个功能应该怎么设计”他会告诉你数据库应该这样设计接口应该这样定义页面应该这样实现。他说得非常专业。但是说完之后他就停下来了。因为他的工作已经结束了。第二位则是一位开发工程师。你告诉他“把这个功能开发出来。”他会开始工作阅读需求修改代码编译项目修复错误提交代码。直到整个任务完成。这两个人都很重要。但是他们承担的角色完全不同。然而 LLM 则更像前者。而现实世界往往更大量需要的是后者。9.5 完成任务需要哪些能力我们把整个任务过程拆开我们会发现一个真正能够完成工作的 AI至少需要具备下面几种能力。第一步,它必须能够理解用户目标。例如帮我统计最近一个月的销售数据。它需要知道最终目标不是回答一句话而是生成统计结果。第二步它必须能够制定计划。例如读取数据↓统计分析↓绘制图表↓生成报告没有整个计划就很难完成复杂任务。第三步它必须能够执行操作。例如打开 Excel查询数据库调用浏览器执行 Python发送邮件。这些都不是语言生成能够直接完成的。执行完成之后它还需要观察结果。例如Python 是否运行成功数据库是否返回数据网页是否打开成功如果失败了怎么办它必须重新调整下一步行动。最后一步它还需要记住当前任务进行到了哪里。否则每执行一步都必须重新开始。于是一个完整的任务流程就变成了理解目标↓制定计划↓执行操作↓获取结果↓继续执行↓……↓任务完成所以到了这里,我们就会发现,这已经不再是一次推理而是一个持续运行的过程。9.6 Agent 的真正含义现在我们终于可以回答最开始的问题了。什么是 Agent(智能体)很多文章会说,智能体等于LLM加工具的结合体.虽然这句话不能算错。但它并没有说明 Agent(智能体) 最重要的特点。更准确地说Agent 是一个基于LLM能够围绕某一个目标持续工作的 AI 系统。这里有两个关键词。第一个是目标Goal用户告诉它想要完成什么。第二个是持续Continuous它不会回答一句话就结束。而是不断的思考-行动-观察-调整-直到目标完成。因此Agent 与聊天机器人的最大区别并不是它拥有更多工具而是它拥有完成任务的能力。9.7 Agent 只是开始而不是终点到这里你可能会觉得既然 Agent 能够完成任务是不是已经解决所有问题了答案仍然是否定的。因为 Agent 本身仍然只是一个概念。真正要让 Agent 工作起来它还需要很多能力例如如何调用工具如何连接企业系统如何保存长期记忆如何规划复杂流程如何管理整个执行过程这些问题我们将在后面的章节中逐步介绍。