当前位置: 首页 > article >正文

“INMS: Memory Sharing for Large Language Model based Agents“ 论文笔记坑

1.概述在人工智能快速发展的今天AI不再仅仅是回答问题的聊天机器人而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理能够在用户的机器上安全高效地生成高质量的软件变更。2.内容如果你只把 Codex 当成“更会写代码的 ChatGPT”那你只理解了它 10% 的价值。真正让 Codex 不同的是它背后那套完整、可运行、可反复思考的 Agent Loop智能体循环系统。2.1 Codex 到底和普通大模型有什么区别我们先看一个最普通的大模型交互流程你帮我写一个 Python 脚本模型给你一段代码结束这是一次性生成模型不知道代码能不能运行不知道有没有报错更不知道“下一步该干什么”1. Codex 的真实工作方式完全不同Codex 的思路更像一个新手工程师坐在你电脑前复制代码1 看需求2 写点代码3 运行一下4 报错了看看错误5 改代码6 再运行7 直到成功复制代码这个「反复尝试」的过程就是 Codex Agent Loop。2.2 什么是 Agent LoopAgent Loop 让模型在一个循环里不断思考 → 行动 → 看结果 → 再思考。Codex CLI 的核心不是“一次推理”而是反复展开这个循环模型不是直接给答案而是每一轮只决定我下一步该干什么1. 先忘掉「大模型」把 Codex 当成一个“新人程序员”想象一个刚入职的初级工程师你给他一个任务“帮我把这个项目跑起来并写一个 README。”他会怎么做一定不是“我闭上眼睛一次性把所有事情做对。”而是更接近下面这个过程复制代码1 先看看项目目录结构2 猜一猜怎么运行3 真的运行一下4 发现报错5 根据报错改代码6 再运行7 直到跑通8 最后再总结写 README复制代码注意这个过程中每一步都依赖上一步的结果。这就是 Agent Loop 的直觉来源。2.普通 ChatBot VS Agent根本区别在哪普通 ChatBot 的工作方式复制代码输入问题↓模型“想一想”↓一次性输出答案↓结束复制代码它的特点是只能“想”不能“做”没有真实世界的反馈更像是在考试答题Codex Agent 的工作方式复制代码目标↓想一小步↓做一小步↓看结果↓再想一小步↓……↓完成复制代码它的特点是每一轮只解决一个非常小的问题每一步都基于真实执行结果更像是在真实工作Agent Loop本质上就是把“一次性回答问题”拆成了“多轮小决策”。3. 「Loop」这个词为什么这么重要我们先看一个不展开的情况模型在脑子里想 10 步↓一次性输出最终答案这种方式的问题是中间哪一步想错了你完全不知道没有机会修正对复杂任务非常不稳定而 Agent Loop 是把这 10 步“摊开”复制代码第 1 步我该不该看目录↓第 2 步我该不该运行测试↓第 3 步这个报错是什么意思↓第 4 步我该改哪个文件复制代码这就是 unrolling the loop 的含义把模型原本“在脑子里一次性完成的思考”拆成一轮一轮、可执行、可观察的步骤。4.为什么说「模型不是直接给答案」复杂问题没有人能在“看都没看现场”的情况下一次就给出完美答案。Agent Loop 的设计正是承认了这一点。所以 Codex 的策略是不追求“一次答对”而是追求每一步都有依据每一步都能被验证每一步错了都能修假设你的项目现在是这样“一个 Node 项目运行 npm start 会报错”Codex 的内心独白并不是一句话而是类似这样一轮一轮展开1 我不知道项目结构我需要先看看 → 调用工具ls2 看起来是 Node 项目我应该试着运行 → 调用工具npm start3 报错说缺依赖 → 调用工具npm install4 再运行一次 → npm start5 现在跑通了我可以总结了 → 输出最终回答2.3 把 Agent Loop 拆成 5 个步骤2.3.1 接收用户目标不是马上干活1 用户输入 ≠ 模型直接思考的内容当你在 Codex CLI或任何 Agent 系统里输入一句话比如“帮我给这个项目补一个 README。”很多人会误以为这句话直接被送进模型然后模型开始思考。但实际上在 Agent 系统里这句话的角色更接近于“任务目标Goal”也就是说它只是告诉系统最终你要把事情做到什么状态2 为什么要把“目标”和“过程”分开因为 Agent Loop 的设计理念是目标是稳定的过程是动态变化的举个生活化的例子你的目标是“把房间收拾干净”你并不会一开始就决定先扫地还是先整理桌子垃圾有多少要不要换垃圾袋你只是知道最后要干净Codex 也是一样。用户输入只负责定义“终点”不负责定义“路径”。2.3.2 构造当前上下文Prompt1.Prompt 是“模型看世界的全部信息”这是 Agent Loop 里最关键、也最容易被低估的一步。我们先说一句非常重要的话对模型来说它并不知道“刚刚发生了什么”除非你把这些信息放进 Prompt。所以每一轮 Agent Loop都会重新构造一个 Prompt。2.Prompt 里通常包含哪些东西一个完整的 Prompt通常包含你是谁系统设定你是一个 coding agent你可以修改文件、运行命令你能用什么工具shell文件读写测试运行用户目标比如补 README到目前为止发生了什么我刚才运行了什么命令输出结果是什么有没有报错对模型来说这些内容就是它的“记忆”。3.为什么每一轮都要“重新构造” Prompt举个例子第一轮你还没看过项目结构第二轮你已经知道有哪些文件第三轮你已经看到测试报错如果 Prompt 不更新模型就会永远以为自己什么都不知道所以 Agent Loop 的一个核心动作就是把“刚刚发生的现实结果”翻译成模型能理解的文字再塞回 Prompt。2.3.3 让模型做“下一步决策”1.模型在这一轮只回答一个问题这是 Agent Loop 的灵魂所在。模型不会在这一轮里把所有事情想完。它只做一个非常具体、非常有限的判断“在当前信息条件下我下一步该做什么”2.这个“下一步”通常只有两种可能情况一我还需要更多信息 / 行动模型会说类似“我需要看看目录结构”“我需要跑一下测试”“我需要打开某个文件看看内容”在系统层面这会被表达为Tool Call工具调用情况二信息已经够了可以结束模型会说类似“现在我可以写 README 了”“问题已经修复完成”这时它会直接输出最终回答Agent Loop 结束。3.为什么要限制成“只想一步”因为这是控制复杂度的关键。如果模型一次性想 10 步中间哪一步错了你不知道无法插入真实反馈很难纠正而“一步一想”的好处是每一步都可以被验证错了就马上修对复杂任务更稳2.3.4 如果要干活 → 调工具1.模型自己“不会干活”模型 ≠ 能执行命令的程序模型只能输出文字或结构化指令但它不能真的运行 ls不能真的执行 npm install不能真的写文件2.Tool 的作用把“建议”变成“现实动作”当模型说“我需要运行 ls 看看目录”Agent 系统会1 解析模型输出2 发现这是一个 tool call3 在真实环境里执行命令4 收集真实输出2.3.5 把结果塞回上下文继续循环1.这是 Agent Loop 最“反直觉”的一步很多人会以为工具执行完模型“就知道结果了”其实不然。模型并不知道工具执行结果除非你把结果写进 Prompt。2.现实 → 文本 → PromptAgent 会把刚才的执行结果转成类似这样的内容你刚刚运行了 ls输出是src/package.json然后把这段文字加入 Prompt再发起下一轮模型推理这一步完成后新的一轮 Loop 开始。我们现在可以把这 5 步用一句非常生活化的话说清楚1 把当前情况告诉模型2 让模型决定下一小步3 把真实结果反馈回去4 直到模型觉得“可以收工了”3.Agent Loop代码示例前面我们讲了很多概念Agent Loop、目标、Prompt、工具、反馈……现在我们用一段最小但完整的代码把这些概念全部落到实处。复制代码class SimpleAgent:def __init__(self, llm):self.llm llmself.history []def run(self, goal):while True:prompt self.build_prompt(goal)response self.llm(prompt)# 如果模型说“完成了”if response[type] final:print(response[text])break# 如果模型要用工具if response[type] tool_call:result self.execute_tool(response)self.history.append(result)def build_prompt(self, goal):return {goal: goal,history: self.history}def execute_tool(self, call):if call[name] shell:return os.popen(call[command]).read()复制代码这段代码不是生产级但它100%体现了 Agent Loop 的本质结构。下面我们从整体 → 局部 → 每一行的“为什么”来拆。1.先整体理解这段代码在干什么它在做一件事不断把“当前状态”交给模型让模型决定下一步然后根据结果更新状态直到模型说“可以结束了”。可以理解为“你先想一步 → 我帮你干 → 把结果告诉你 → 你再想一步”2.class SimpleAgentAgent 不是模型而是“调度者”Agent ≠ 模型LLMllm负责“思考 / 决策”Agent负责“循环 / 执行 / 状态管理”Agent 的角色更像是一个项目经理 执行助理。3.__init__Agent 的“长期记忆”在哪里self.llm 是什么它是一个函数或对象输入Prompt输出模型的“下一步决策”你可以把它理解成response 大模型(prompt)4.self.history 为什么这么重要这是整个 Agent Loop 的核心状态。history 里存的不是聊天记录而是你刚刚执行了什么命令命令输出了什么有没有报错它是“现实世界发生过的事情”的文本化记录如果没有 history模型每一轮都会“失忆”永远不知道自己刚才干过什么5.run 方法Agent Loop 的真正入口def run(self, goal):这里的 goal就是你输入的那句“帮我给这个项目加一个 README”它只做一件事定义终点不定义路径。6.while True为什么 Agent 必须是“死循环”这行代码非常关键。很多人一看到“死循环”会下意识觉得不优雅但在 Agent 里没有循环就没有 Agent为什么因为 Agent 的工作模式是不知道要循环多少轮不知道什么时候信息才“足够”只能一轮一轮试结束条件不是写死的而是由模型决定的。7.build_prompt模型“看到的世界”是怎么来的prompt self.build_prompt(goal)这是 Agent Loop 中最容易被忽略但最重要的一步。def build_prompt(self, goal):return {goal: goal,history: self.history}它做的事情非常简单但意义非常大把“目标 已发生的事实”打包交给模型。8.response self.llm(prompt)模型只做一件事response self.llm(prompt)这一行看似简单其实决定了整个 Agent 的风格。模型在这里不会写完整代码一次性解决所有问题它只回答一个问题“在当前 prompt 条件下我下一步该做什么”我们用一句完整的流程复述Agent 把目标 历史交给模型模型说“下一步干这个”Agent 去真实执行Agent 把结果记录下来回到第 1 步直到模型说“可以结束了。”4.总结Codex Agent 的真正价值并不在于它“写代码有多快”而在于它被设计成一个可以反复思考和行动的系统。通过 Agent Loop模型不再试图一次性给出完美答案而是像真实工程师一样先尝试、再观察、再修正逐步推进目标完成。这种“思考 → 执行 → 反馈 → 再思考”的循环机制让复杂问题被自然拆解成一连串可验证的小步骤也让错误变成系统的一部分而不是失败的终点。厥堑谮翟

相关文章:

“INMS: Memory Sharing for Large Language Model based Agents“ 论文笔记坑

1.概述在人工智能快速发展的今天,AI不再仅仅是回答问题的聊天机器人,而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变…...

【传统图像增强算法3】- 伽马校正(Gamma Correction)完全解析

三、伽马校正(Gamma Correction) 3.1 伽马校正核心定义与应用价值 在图像增强、显示校准的实际应用中,我们常常会遇到一个问题:人眼对亮度的感知是非线性的,而显示设备(LCD/OLED/CRT)的输入输出…...

Phi-3-Mini-128K作品分享:从原始日志提取故障根因并生成修复方案全过程

Phi-3-Mini-128K作品分享:从原始日志提取故障根因并生成修复方案全过程 1. 项目背景与技术选型 在IT运维和系统管理领域,故障排查一直是耗时费力的工作。传统方法需要工程师手动分析海量日志,不仅效率低下,还容易遗漏关键线索。…...

Keil5 项目文件管理实战:从零构建高效开发环境

1. 为什么需要规范化的Keil5项目管理 刚开始接触嵌入式开发时,我最常犯的错误就是把所有代码文件胡乱堆砌在同一个文件夹里。直到某天需要修改半年前的项目,才发现根本分不清哪些是核心代码、哪些是临时测试文件。这种混乱的项目结构不仅影响开发效率&a…...

力扣热门100题之二叉树的最近公共祖先

一句话核心思路递归遍历二叉树:如果当前节点是 p 或 q,直接返回它去左子树找,去右子树找如果左右都找到了 → 当前节点就是答案如果只在左边找到 → 答案在左边如果只在右边找到 → 答案在右边完整代码实现:/*** Definition for a…...

力扣热门100题之二叉树中的最大路径和

核心思路(一句话)对每个节点,计算它能向上提供的最大贡献:自身值 max(左贡献, 右贡献)以当前节点为转折点的路径和:自身值 左贡献 右贡献全局维护一个最大值,不断更新完整代码实现:/*** Defi…...

接口测试——pytest框架续集劫

智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...

Ubuntu20.04 软件和更新故障排查与优化指南

1. 软件源问题排查与修复 遇到Ubuntu20.04软件和更新打不开的情况,十有八九是软件源出了问题。我遇到过最典型的情况就是系统突然提示"无法连接到软件源",或者点击软件更新器后毫无反应。这时候别急着重装系统,跟着我一步步排查。 …...

Java 25虚拟线程压测全对比:Spring WebFlux vs Virtual Threads vs Project Loom原生方案,谁才是百万QPS终极解?

第一章:Java 25虚拟线程压测全对比:Spring WebFlux vs Virtual Threads vs Project Loom原生方案,谁才是百万QPS终极解?Java 25正式将虚拟线程(Virtual Threads)从预览特性转为标准特性,标志着J…...

Kiro IDE + AIClient-2-API 实现Openclaw或者Claude code使用Claude Opus 4.6模型

前言:在AI辅助编程领域,Claude Opus 4.6 凭借强大的代码理解、生成和调试能力,成为很多开发者的首选模型。但直接使用 Anthropic 官方 API 不仅计费昂贵,额度也容易受限。本文将详细讲解如何通过「Kiro IDE AIClient-2-API Clau…...

静态住宅ISP代理:企业如何选择住宅代理IP?

近期,谷歌与多家安全公司联合打击住宅代理网络,表明了代理资源的质量和合规性对于企业运营的至关重要性。对于企业型用户来说,如何正确选择代理服务构建代理设施,尤其是静态住宅ISP代理,已成为企业成功的关键之一。本文…...

开源六轴机械臂:3D打印谐波减速器技术如何打破工业自动化成本壁垒

开源六轴机械臂:3D打印谐波减速器技术如何打破工业自动化成本壁垒 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm 工业自动化的普及面临着…...

KKS-HF Patch:为《Koikatsu Sunshine》打造的全能游戏增强解决方案

KKS-HF Patch:为《Koikatsu Sunshine》打造的全能游戏增强解决方案 【免费下载链接】KKS-HF_Patch Automatically translate, uncensor and update Koikatsu Sunshine! 项目地址: https://gitcode.com/gh_mirrors/kk/KKS-HF_Patch 你是否曾在《Koikatsu Suns…...

突破ControlNet图像质量瓶颈:3大核心参数优化指南

突破ControlNet图像质量瓶颈:3大核心参数优化指南 【免费下载链接】ControlNet-v1-1_fp16_safetensors 项目地址: https://ai.gitcode.com/hf_mirrors/comfyanonymous/ControlNet-v1-1_fp16_safetensors ControlNet-v1-1_fp16_safetensors是基于ControlNet-…...

告别本地配置!Core72在线IDE:5分钟打造云端开发环境终极指南

告别本地配置!Core72在线IDE:5分钟打造云端开发环境终极指南 【免费下载链接】core Online IDE powered by Visual Studio Code ⚡️ 项目地址: https://gitcode.com/gh_mirrors/core72/core 还在为复杂的本地环境配置而烦恼吗?Core72…...

突破网盘下载限制:本地安全处理的直链解析方案

突破网盘下载限制:本地安全处理的直链解析方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / …...

GraalVM静态镜像上线前必做的5项内存安全审计(含JFR采样脚本、heapdump解析模板、容器OOMKilled溯源指南)

第一章:GraalVM静态镜像内存安全审计的必要性与认知重构传统JVM应用依赖动态类加载、反射和运行时代码生成,其内存布局在启动后持续演化,而GraalVM Native Image通过AOT编译将Java应用构建成静态可执行镜像,彻底剥离了JVM运行时。…...

山东大学项目实训-大数据租房推荐智能体(一)

整体任务搭建完整的agent框架,设计项目结构,agent工作流程,编写prompt和重试机制约束LLM输出,实现多轮对话管理,让agent能够理解当下环境和用户意图,编排正确的工具调用顺序。(一)第…...

为什么你的Spring Boot 4.0 Agent始终“不就绪”?7步诊断清单+ClassLoader隔离冲突终极解法

第一章:Spring Boot 4.0 Agent-Ready 架构演进与核心挑战Spring Boot 4.0 将 JVM Agent 集成能力提升为核心架构特性,标志着从“可监控”迈向“原生可观测”的范式跃迁。该版本深度重构了启动生命周期、类加载器隔离机制与 Bean 注册流程,使字…...

番茄小说下载器高效使用全攻略:轻松获取并管理你喜爱的小说

番茄小说下载器高效使用全攻略:轻松获取并管理你喜爱的小说 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代,拥有一款可靠的小说下载工具能极大提升阅…...

AI写PHP代码=埋雷?资深工程师用237个真实项目数据验证:86%的AI生成函数需强制校验,附开源校验器v1.3

第一章:AI写PHP代码埋雷?237项目实证与校验必要性近期对237个真实PHP开源项目(涵盖Laravel、Symfony及原生框架)的自动化代码审计显示:由主流AI工具生成的PHP代码中,18.6%存在未声明变量导致的运行时错误&a…...

3个高效工作流技巧:用Flut Renamer解决批量文件重命名痛点

3个高效工作流技巧:用Flut Renamer解决批量文件重命名痛点 【免费下载链接】renamer Flut Renamer - A bulk file renamer written in flutter (dart). Available on Linux, Windows, Android, iOS and macOS. 项目地址: https://gitcode.com/gh_mirrors/ren/rena…...

Modbus通信调试难题困扰你?这款开源工具让你轻松成为工业自动化专家

Modbus通信调试难题困扰你?这款开源工具让你轻松成为工业自动化专家 【免费下载链接】ModbusTool A modbus master and slave test tool with import and export functionality, supports TCP, UDP and RTU. 项目地址: https://gitcode.com/gh_mirrors/mo/ModbusT…...

BilibiliDown音频提取指南:从技术侦探视角破解B站无损音质下载难题

BilibiliDown音频提取指南:从技术侦探视角破解B站无损音质下载难题 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/…...

拒绝当“移动台式机”!从华硕天选6到联想拯救者,这五款游戏本让你在图书馆也能畅玩3A

一、目的为学生党和需要移动办公的玩家推荐五款在高性能与长续航之间取得良好平衡的高性价比游戏本,帮助用户摆脱对电源插座的依赖,在教室、图书馆或差旅途中也能从容使用。二、推荐机型详细对比型号核心配置存储与屏幕主要优势与特点参考价格华硕天选6 …...

互联网大厂Java求职者面试实录:严肃面试官VS搞笑水货程序员小李

互联网大厂Java求职者面试实录:严肃面试官VS搞笑水货程序员小李 第一轮提问:Java基础与多线程 面试官:小李,Java中HashMap的工作原理是什么?当多线程并发访问时会出现什么问题? 小李:HashMap就是…...

Cursor Pro免费使用终极指南:绕过试用限制的完整解决方案

Cursor Pro免费使用终极指南:绕过试用限制的完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your …...

3分钟获取阿里云盘Refresh Token:告别手动认证的自动化解决方案

3分钟获取阿里云盘Refresh Token:告别手动认证的自动化解决方案 【免费下载链接】aliyundriver-refresh-token QR Code扫码获取阿里云盘refresh token For Web 项目地址: https://gitcode.com/gh_mirrors/al/aliyundriver-refresh-token 解决云存储认证难题&…...

Python数据分析环境部署:Anaconda与Phi-3-mini协作指南

Python数据分析环境部署:Anaconda与Phi-3-mini协作指南 1. 为什么选择这个组合? 在开始动手之前,我们先聊聊为什么Anaconda和Phi-3-mini是数据科学家的好搭档。Anaconda就像是一个瑞士军刀,把Python环境管理和包依赖这些麻烦事都…...

PPTist:基于Vue3与TypeScript的在线演示文稿技术架构解析

PPTist:基于Vue3与TypeScript的在线演示文稿技术架构解析 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing…...