认知架构 cognitive architecture

Assistants API:以开发人员为中心。

有状态的API:允许存储以前的消息、上传文件、访问内置工具(代码解释器)、通过函数调用控制其他工具。

认知架构应用的两个组件:(1)如何提供上下文给应用 (2)应用如何推理

不同级别的认知架构:

(1)单个LLM、仅得到输出

(2)一连串LLM、仅得到输出

(3)LLM作为路由、选择要使用的操作(工具、检索器、提示)

(4)状态机、使用LLMs在步骤之间进行路由,某种程度上形成了循环,但仍然在代码中枚举了允许的转换选项

(5)Agents、移除大量脚手架,便于完全有LLMs决定转换选项

表格形式呈现不同认知架构的对比情况:
表格形式呈现不同认知架构的对比情况

agent scratchpad:代理草稿本。

Action & observation 动作及其对应的观察结果

Agent架构概述

当前问题:从各个方面来看,这种Agent的认知架构并不足以支持严肃的应用。

目前看到的实际有用的 自主代理 Autonomous agents 在两个关键方面有所不同:

(1)实际不是Agent认知架构,而是复杂的Chains,更像是状态机。比如 GPT-Researcher 和Sweep.dev。GPT-Researcher:从执行图来看,是朝一个方向流动的,执行了许多复杂的步骤,但以明确的方式进行:首先生成子问题,然后获得子问题的链接,总结每个链接,最后将摘要合并到研究报告中。

(2)如何向Agent提供上下文。尽管描述的是上下文感知推理应用程序,但实际上需要pulling或者pushing来实现。意味着agent决定它需要什么上下文,然后请求它。比如sql相关的agent,可能需要知道sql数据库中存在哪些表。因此可以给它一个返回数据库中表列表的工具,并且可以在开始时调用工具。实际上,Langchain中SQL和Pandas代理将表模式作为系统消息的一部分。这种上下文的pulling和pushing操作再次为开发人员提供了更多的控制权。

观点:认知架构和LLM一样,也是封闭的,同样了决定了最终效果,LLM逐渐转向成为操作系统。这似乎是一个五五开的分配,一半是在于核心模型的改进,另一半是在于弄清楚如何以一种具有代理性的方式将它们最佳连接。

Jeff Bezos: only do what makes your beer taste better 只做能让你的啤酒口感更佳的事情。这和第一性原理相通。

优化认知架构符合第一性原理吗? 作者持肯定观点。原因有三:

(1)首先:让复杂的代理真正发挥作用是非常困难的。如果你的应用依赖于代理的工作,而让代理工作又是具有挑战性的,那么几乎可以说如果你能做好这一点,你就会比你的竞争对手拥有优势。

(2)第二个原因是,我们经常看到通用人工智能(GenAI)应用的价值与认知架构的性能紧密相关。当前许多公司都在销售用于编程的代理、用于客户支持的代理。在这些情况下,认知架构就是产品本身。

(3)最后一个原因也是我难以相信公司会愿意将自己锁定在由单一公司控制的认知架构中的原因。

LangChain 在构建Agent认知架构,提供很多助力。需要大量的工程工作。 LCEL可以用来灵活组合链条。 LangChain提供了超过 600 个集成,可以全面灵活地选择使用模型/向量存储/数据库。LangSmith,提供调试,并包括各项管理工具(回归测试、监控、数据标注、提示中心),便于线上管理整个系统。

OpenAI押注认知架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/331615.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DevOps】深入了解RabbitMQ:AMQP协议基础、消息队列工作原理和应用场景

目录 一、核心功能 二、优势 三、核心概念 四、工作原理 五、交换机类型 六、消息确认 七、持久性和可靠性 八、插件和扩展 九、集群和镜像队列 十、客户端库 十一、管理界面 十二、应用场景 RabbitMQ是一个基于AMQP协议的消息队列中间件,提供高可用、可…

C++ | Leetcode C++题解之第112题路径总和

题目: 题解: class Solution { public:bool hasPathSum(TreeNode *root, int sum) {if (root nullptr) {return false;}if (root->left nullptr && root->right nullptr) {return sum root->val;}return hasPathSum(root->left…

el-table 划入划出方法

<template><div><el-table :data"tableData" style"width: 100%" cell-mouse-enter"handleMouseEnter" cell-mouse-leave"handleMouseLeave"><el-table-column prop"ddd" label"日期2" widt…

【TB作品】stm32单片机读取DS2401程序

DS2401是由Analog Devices公司生产的一种硅序列号芯片&#xff0c;它提供了一个绝对唯一的64位ROM识别码&#xff0c;用于确保可追溯性。以下是对DS2401器件的分析&#xff1a; 特点和优势&#xff1a; 唯一性&#xff1a;每个DS2401芯片都有一个独一无二的64位注册码&#x…

【实际项目精选源码】ehr人力资源管理系统实现案例(java,vue)

一、项目介绍 一款全源码可二开&#xff0c;可基于云部署、私有部署的企业级数字化人力资源管理系统&#xff0c;涵盖了招聘、人事、考勤、绩效、社保、酬薪六大模块&#xff0c;解决了从人事招聘到酬薪计算的全周期人力资源管理&#xff0c;符合当下大中小型企业组织架构管理运…

List Control控件绑定变量

创建基于对话框的mfc项目 添加 List Control控件 右击控件&#xff0c;选择“添加变量” 在初始化对话框代码中增加一些代码 BOOL CMFCApplication3Dlg::OnInitDialog() { //...// TODO: 在此添加额外的初始化代码DWORD dwStyle m_programLangList.GetExtendedStyle(); …

用户态下屏蔽全局消息钩子 —— ClientLoadLibrary 指针覆盖

目录 前言 一、研究 SetWindowsHookEx 的机制 二、概念验证 三、运行效果分析 四、总结与展望 参考文献 原文出处链接&#xff1a;[https://blog.csdn.net/qq_59075481/article/details/139206017] 前言 SetWindowsHookEx 函数帮助其他人员注入模块到我们的进程&#x…

PHP质量工具系列之php_CodeSniffer

PHP_CodeSniffer 是一组两个 PHP 脚本&#xff1a;主脚本 phpcs 对 PHP、JavaScript 和 CSS 文件进行标记&#xff0c;以检测是否违反定义的编码标准&#xff1b;第二个脚本 phpcbf 自动纠正违反编码标准的行为。PHP_CodeSniffer 是一个重要的开发工具&#xff0c;可以确保你的…

二叉树—先后序线索化和先后序线索遍历

有了上篇文章的基础&#xff0c;先序和后序的线索化逻辑一样。 代码如下&#xff1a; void preOrderThreadTree(TreeNode* T,TreeNode** pre) {if (T NULL) {;}else {//printf("%c ", T->val);if (T->lchild NULL) {T->ltag 1;T->lchild *pre;}if …

翻译《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

Whats the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071025-00/?p24693 Raymond Chen 2007年10月25日 简要 文章讨论了EM_SETHILITE和EM_GETHILITE消息在文档中显示为“未实现”的原因。这些…

Python数字比大小获取大的数

目录 一、引言 二、数字比较的基本语法 三、获取较大的数 使用条件语句 使用内置函数 四、处理特殊情况 比较非数字类型 处理无穷大和NaN 五、应用实例 在游戏开发中比较分数 在数据分析中找出最大值 六、优化与性能 七、总结 一、引言 在Python编程的广阔天地中…

Redis 性能管理

一、Redis 性能管理 #查看Redis内存使用 172.168.1.11:6379> info memory 1. 内存碎片率 操作系统分配的内存值 used_memory_rss 除以 Redis 使用的内存总量值 used_memory 计算得出。内存值 used_memory_rss 表示该进程所占物理内存的大小&#xff0c;即为操作系统分配给…

【qt】纯代码界面设计

界面设计目录 一.界面设计的三种方式1.使用界面设计器2.纯代码界面设计3.混合界面设计 二.纯代码进行界面设计1.代码界面设计的总思路2.创建项目3.设计草图4.添加组件指针5.初始化组件指针6.添加组件到窗口①水平布局②垂直布局③细节点 7.定义槽函数8.初始化信号槽9.实现槽函数…

Sam Altman微软Build 2024最新演讲:AI可能是下一个移动互联网

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

Tomcat部署项目的方式

目录 1、Tomcat发布项目的方式 方式1&#xff1a; 直接把项目发布到webapps目录下 方式2&#xff1a;项目发布到ROOT目录 方式3&#xff1a;虚拟路径方式发布项目 方式4&#xff1a;(推荐)虚拟路径&#xff0c;另外的方式&#xff01; 方式5&#xff1a;发布多个网站 1、…

无界鼠标与键盘,如何轻松控制多台电脑

简介 在软件开发领域&#xff0c;高效地管理多台电脑是至关重要的。Mouse without Borders软件为开发人员提供了一种便捷的解决方案&#xff0c;使他们能够轻松地在多台电脑之间共享鼠标和键盘。不仅如此&#xff0c;Mouse without Borders还提供了许多高级功能&#xff0c;如…

STM32F1之OV7725摄像头

目录 1. 摄像头简介 2. OV7725 摄像头简介 3. OV7725 引脚 4. OV7725 功能框架图 5. SCCB时序 5.1 SCCB 的起始、停止信号及数据有效性 5.2 SCCB 数据读写过程 1. 摄像头简介 在各类信息中&#xff0c;图像含有最丰富的信息&#xff0c;作为机…

谈谈你对 vue 的理解 ?

1.谈谈你对 vue 的理解 ? 官方: Vue是一套用于构建用户界面的渐进式框架,Vue 的核心库只关注视图层 2. 声明式框架 Vue 的核心特点,用起来简单。那我们就有必要知道命令式和声明式的区别! 早在 JQ 的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程 声明…

world machine学习笔记(3)

打开 可以打开场景设置&#xff0c;项目设置平铺构建设置 场景设置&#xff1a; 输出范围 设置中心点和范围 设置分辨率 项目设置&#xff1a; 设置地图颜色&#xff0c;单位&#xff0c;最高地形高度 点击这个图形进行预览设置 该按钮还有其他的功能 world machine基础流程…

LeetCode算法题:42. 接雨水(Java)

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3…