GinoGino

什么是认知架构?[译]

4 分钟阅读人工智能

本文是 LangChain 博客上关于智能体 (AI Agent) 的系列文章的第二篇,探讨了 LLM 应用中的认知架构概念,从纯代码到自主智能体,详细阐述了六个不同的自主程度。通过对比不同认知架构的特点和应用场景,帮助开发者选择最适合自己项目的架构方案。

更新说明: "认知架构"一词在神经科学和计算认知科学领域有着深厚的历史渊源。维基百科将其定义为"关于人类思维结构的理论及其计算实现"。这一学术定义比本文的解释更为全面和深入。本文应被视为作者基于过去一年构建 LLM 驱动应用的经验,与该研究领域的一次理论映射尝试。

在过去半年中,我经常使用"认知架构"这个术语,未来还会更频繁地使用它。这个词最初来自 Flo Crivello,在此特别感谢他提出了这个精准的术语。那么,这个概念究竟想表达什么?

简而言之,认知架构指的是_系统的思考方式_ —— 也就是说,从接收用户输入到执行操作或生成响应的过程中,代码、提示(prompts)和 LLM 调用之间的协作流程。

我选择"认知"一词,是因为具备代理能力的系统需要依靠 LLM 来推理下一步行动。而使用"架构"一词,则是因为这些智能体的设计仍然需要严谨的工程思维,类似于传统的系统架构。

认知架构的六个层次

以下这张来自我的 TED 演讲的图示,展示了 LLM 应用中不同层次的自主程度,也反映了不同类型的认知架构:

LLM 应用的自主程度层次

  1. 纯代码实现:完全硬编码的方案,严格来说还不能称为认知架构。

  2. 单次 LLM 调用:在调用前后可能有简单的数据处理,但核心仍是单一的 LLM 调用。典型如基础聊天机器人。

  3. LLM 调用链:将复杂任务分解为多个步骤,或服务于不同目的。例如高级 RAG(检索增强生成)系统:先用 LLM 生成搜索查询,再用另一次调用生成最终答案。

  4. 路由架构:引入 LLM 作为决策者,由其决定执行哪些操作。这增加了系统的灵活性和不确定性。

  5. 状态机架构:结合了 LLM 的路由能力和循环机制。理论上系统可以无限循环调用 LLM,具有更高的不确定性。

  6. 自主智能体:最高级的自治水平。突破了状态机的限制,系统能够自主决定可执行的步骤和指令,可以通过动态更新提示、工具或系统代码来实现。

如何选择合适的认知架构

选择认知架构时,没有绝对的"最佳方案" —— 不同架构适合不同的应用场景。就像调整提示词一样,你可能需要反复试验不同的认知架构。这正是我们开发 LangChainLangGraph 的初衷。

过去一年,我们的重点是构建底层的、高度可控的编排框架(LCEL 和 LangGraph)。这与早期 LangChain 主打"开箱即用"的策略有所不同。早期的方案虽然便于快速入门,但在定制化方面存在局限。随着领域的快速发展,我们意识到灵活性的重要性。

我为 LangChain 和 LangGraph 在过去一年的进步感到自豪。如果你之前只使用过 LangChain 的高级接口,建议深入了解其底层组件。这些组件提供了更大的灵活性,让你能够真正掌控应用的认知架构。

原文地址:What is a "cognitive architecture"?


LangChain 智能体系列文章: