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 工作起来,它还需要很多能力,例如:

如何调用工具?
如何连接企业系统?
如何保存长期记忆?
如何规划复杂流程?
如何管理整个执行过程?
这些问题,我们将在后面的章节中逐步介绍。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐