大模型开发必看:基于“职责分离“的上下文管理新思路,解决Agentic Coding场景长上下文问题

大模型—— 解析Codex CLI 本文深入解析了OpenAI Codex CLI作为代码智能体(Coding Agent)的工作原理和设计理念。文章指出代码智能体通过"模型+工具+上下文管理"的结合,已发展成可理解项目结构、自动检索代码、安全修改代码并调用本地工具的虚拟开发助手。Codex CLI采用会话初始化、回合循环、动态上下文管理和安全策略的工作流程,通过提案→执行→验证→迭代的闭环完成任务。其工具系统支持Shell、打Patch、MCP等多种工具调用,实现了自动化编程。文章认为Coding Agent代表了未来开 阅读详情

本文提出基于"职责分离"思想的上下文管理新思路,将工具调用解耦为"行为"和"影响"两部分,通过结构化、模块化、动态组装的上下文设计,替代传统直接将大量原始数据塞入上下文的做法。同时引入"行为-影响分离"、"记忆/遗忘机制"等策略,系统性缓解长上下文导致的注意力稀释、信息过载等问题,提升Agent在复杂编码任务中的稳定性与效率,具备跨任务复用潜力。

1、引⾔

本⽂主要是S1尝试进⾏模型为主的⾃动化编码过程中,遇到了⻓任务下上下⽂的爆炸以及短任务中注意⼒的分散问题,尝试了模型压缩、FIFO、多agent上下⽂隔离等各种策略后,在摸索过程中逐渐演变出的的⼀个设计思路,核⼼思想是⼯具的职责分离。

下⽂会基于语⾔模型的原理、特点以及在实践过程中遇到的问题,从⼯程中职责分离的⻆度出发,尝试⼀种新的上下⽂管理的思路,通过将⼯具分为⾏为和影响,通过结构化上下⽂的动态管理来尝试解决上下⽂中的各类问题,虽然是在coding场景下的尝试,但思路也许也可以被复⽤到其他类型的场景中。

2、什么是上下⽂

⼤型语⾔模型(LLM)本质上是⼀个基于已有 token 序列预测下⼀个 token 的概率系统。当接收到⼀段⽂本时,模型将其转换为 token 序列,通过神经⽹络计算后输出下⼀个 token 的概率分布,并将该 token 追加到序列末尾,循环往复,直⾄⽣成结束符。

在⼀次请求中,“我们”输⼊给模型的完整内容即为上下⽂(Context)。简单来说,上下⽂就是模型“看到”的、⽤于理解当前语义或预测下⼀个词的所有前置信息。

在⼀个典型的 Agent 应⽤中,上下⽂通常包含以下四类内容:

  1. ⽤户输⼊(User Input)
  2. ⼯具调⽤与返回(Tool Calls & Responses)
  3. 历史对话(Conversation History)
  4. ⼯具定义(包括 MCP 等元信息)

对⽤户⽽⾔,可控部分仅限于“⽤户输⼊”;⽽对 Agent 开发者来说,其余三部分才是可设计、可优化的核⼼——这正是上下⽂⼯程(Context Engineering) 的核⼼任务:在正确的时间,以正确的结构,向模型传递正确的信息,使其做出最恰当的响应或决策。

token的多次⽣成循环是发⽣在模型内部的,在这次请求中“我们”输⼊的完整内容就是上下文。简单来说,上下⽂就是模型“看到”的、⽤于帮助它预测下⼀个词或理解当前语义的前⾯的⼀段⽂字。

在⼀个典型的agent应⽤中,上下⽂由下⾯的部分组成:

  1. ⽤户输⼊
  2. ⼯具调⽤
  3. 历史对话
  4. ⼯具的定义(包括mcp)

。

对⽤户来说能够掌握的部分只有“⽤户输⼊”,对于agent的开发者来说则是除了“⽤户输⼊”以外的所有内容,上下⽂⼯程指的就是agent开发者在软件开发过程中对上下⽂中包含的内容的组装。

上下⽂⼯程关注的是:如何把正确的信息,在正确的时间,以正确的结构,传递给模型,使其能做出最恰当的响应或决策。

▐上下⽂⼯程的核⼼⼯作
活动说明
上下⽂设计(Context Design)规划上下⽂应包含哪些元素(如系统提示、对话历史⼯具输出记忆⽚段等)。
上下⽂组装(Context Assembly)在运⾏时动态拼接过滤排序相关信息,形成最终输⼊。
上下⽂压缩(Context Compression)在有限 token 窗⼝内,通过摘要、选择性保留、向量检索等⽅式精简冗余信息。
上下⽂缓存与管理(Context Management)维护短期对话状态和⻓期记忆,⽀持跨轮次⼀致性。
上下⽂评估与优化(Context Optimization)通过 A/B 测试、⼈⼯评估或⾃动指标,迭代改进上下⽂结构。

3、上下⽂的影响:为何“⻓了反⽽变笨”?

模型本质上是⼀个么得感情的计算机器,⽤户输⼊是模型被动感知环境的⽅式,⽽⼯具则是模型主动感知和影响环境的⼿段。基于语⾔模型的原理,我们知道模型的输出取决于输⼊和模型的固有参数,对应⽤层开发来说模型的固有参数⽆法调整,能控制的只有输⼊内容。同时我们知道模型的参数维度是固定的,因此模型能感知到的特征是有限的,当⽤户的输⼊过多时能明显感觉到模型似乎在“变笨”。

这种现象通常被称为“上下⽂⻓度增加导致性能下降”或“⻓上下⽂退化”(long-context degradation),是当前⼤语⾔模型(LLM)在处理超⻓输⼊时常⻅的⼀种局限性。具体表现为:

注意⼒稀释

随着输⼊⽂本变⻓,模型的注意⼒机制需要在更多 token 之间分配注意⼒权重。关键信息可能被⼤量⽆关或冗余内容“稀释”,导致模型难以聚焦于真正重要的部分,从⽽影响推理、问答或摘要等任务的准确性。

位置编码失效或失真

⼤多数模型使⽤位置编码(如 RoPE、ALiBi 或绝对位置嵌⼊)来感知 token 的顺序。当输⼊远超训练时的最⼤上下⽂⻓度(例如训练时最⼤为 4K,但推理时输⼊ 32K tokens),位置编码可能⽆法准确表示远距离 token 的相对关系,造成时序混乱,进⽽影响理解。

信息过载与噪声⼲扰

输⼊内容越多,越可能包含重复、⽭盾或⽆关的信息。模型缺乏有效的信息筛选机制,容易被噪声⼲扰,甚⾄“迷失”在冗⻓⽂本中,导致输出变得模糊、不相关或逻辑混乱——看起来像是“变笨了”。

训练-推理不匹配

模型在训练阶段很少⻅到极⻓的上下⽂样本,因此对⻓⽂本的泛化能⼒有限。即使通过外推技术(如 YaRN、NTK-aware scaling)扩展上下⽂窗⼝,其在⻓上下⽂下的表现仍可能显著弱于短上下⽂。

计算资源限制带来的近似处理

为应对⻓上下⽂带来的计算开销(如注意⼒复杂度为 O(n²)),⼀些系统会采⽤滑动窗⼝、稀疏注意⼒或缓存截断等策略,这些近似⽅法可能⽆意中丢弃关键信息,进⼀步降低模型表。

4、⼯具的上下⽂

LLM 本质是 token 预测器,仅能输出⽂本。要使其成为⽣产⼒⼯具,需通过⼯具调⽤机制扩展其能⼒:模型输出结构化指令 → 程序解析并执⾏ API → 将结果作为新上下⽂返回。

。

若将 LLM ⽐作⼤脑,⼯具就是眼睛、⼿、脚;若⽐作⼈类,⼯具就是电脑、书本。所有输⼊——⽤户指令、⼯具定义、调⽤记录、系统提示——本质上都是上下⽂的⼀部分。

在单轮 Agent 场景中,上下⽂膨胀主要来⾃:

  • ⼯具调⽤返回⼤量数据(如读取整个⽂件)
  • ⽤户上传⻓⽂档

开发者虽⽆法控制⽤户输⼊,但可优化⼯具的上下⽂表达⽅式。⼯具上下⽂分为两类:

  • 静态定义:⼯具功能描述(编码时确定)

  • 动态交互:调⽤参数与返回结果(运⾏时⽣成)

本⽂并不讨论⼯具定义的⽅式,⽽是直接讨论会导致上下⽂快速增⻓的动态交互部分。

▐⼯具实现的思路和问题

在coding场景中,最经典的⼯具就是read_file和write_file,即⽂件读写⼯具。

在提供read_file⼯具时,最简单的⽅式就是直接读取并返回完整的⽂件内容,为⽅便起⻅我们叫这个⼯具read_full_file。

需要注意的是部分⽼项⽬或不规范项⽬中可能会存在编码不⼀致的问题,例如utf8和gbk混⽤的情况,如果未使⽤准确的编码读取⽂件内容可能导致注释、⾮英⽂常量⽆法被模型识别导致⽆法正确理解“业务含义”(代码逻辑之外的信息)。在java项⽬中推荐这两个库 juniversalchardet 和 cpdetector 来通过部分字节推测⽂件编码以避免此类问题。

当然最佳实践是通过改造来完成项⽬编码的统⼀,最佳实践是统⼀使⽤utf-8编码。

String readFullFile(String path){
//这里去读取文件内容,然后return出去
}

⚠注意:⼯具的返回值也是上下⽂或者说提示词的⼀部分

read_full_file有⼀个显⽽易⻅的问题:

  • “完整的⽂件可能很⼤”导致上下⽂快速膨胀。

此外还有⼀些和模型的特点相关的问题:

  • 在找不到路径时需要明确告知模型 “xx路径不存在”,⽽不能告知模型“”,否则模型可能会陷⼊⼯具调⽤的⽆限循环(qwen系列⽐较明显)。
  • 模型输⼊的path不⼀定准确,可能输⼊的是类的限定名、⽂件名;或是缺失部分路径、缺失⽂件后缀等。

对于path不准确的问题,可以基于⼀个简单的思路来进⾏处理,即先搜索在读,通过关键词匹配对path进⾏搜索,如果能定位到唯⼀的⽂件则读取此⽂件,否则明确告知模型现在有多个相似的⽂件,需要模型重新再⽣成⼀次⼯具调⽤。

在read⼯具和write⼯具混⽤的情况下,read_full_file还会出现⼀个新的问题:

我们先不关注write⼯具的具体实现,只需要知道write后⽂件内容肯定发⽣了变化

  • 同⼀份⽂件内容在编辑后已经失效了,需要重新读取⽂件内容,⽽历史⼯具调⽤的respone和新的response存在⼤量重复,如果是多次编辑则会导致上下⽂快速膨胀。

这是因为我们将⽂件内容放在⼯具调⽤的返回值中,发送给模型的消息类似于下⾯的格式:

tool_call:read_full_file filePath
tool_response:filePath.content //第一次读取
tool_call:write_file filePath xxxx
tool_response: 更新成功
tool_call: read_full_file filePath
tool_response:filePath.content //第二次读取

为什么模型需要读取多次或者说为什么我们希望模型读取多次?

在使⽤ai coding⼯具时,我们有时会看到模型输出“让我看看是否已经完成了所有变更”,因为模型在进⾏write时能够感知到的只是进⾏了这个⾏为,⽽并没有看到这个⾏为的“影响”。

在coding场景中,“影响”指的是修改后代码的内容。

为了解决read_full_file ⼯具的⻓上下⽂问题,可以引⼊按块读取⼯具read_block_file,即模型在调⽤⼯具时可以选择读取的⾏的数量,在理想情况下,模型可以只读取部分内容:

String readBlockFile(String path,int startLine,int lineCount){
//这里去读取文件内容,然后return出去
}

但这个⼯具同样也存在其他问题

  • 模型并不知道需要的内容在哪,可能还是会多次调⽤块读取⼯具最后把整个⽂件都读取,这反⽽导致了和模型的更多次交互(增加了成本)。
  • 模型读取块的时候可能忽略了后续代码的影响,导致思路错误。

输⼊的token也是会计费的,⽤块⼯具读取完整的⽂件内容⽐直接读取完整的⽂件内容会增加多次重复上下⽂的调⽤,导致成本的上升。

在最坏情况下(需要的逻辑在⽂件末尾)⽐read_full_file花费更多的成本,且上下⽂更多(因为还有⼯具调⽤),并且和write⼯具联合使⽤时的问题仍然存在。

为了解决write⼯具联合使⽤时的问题,我试图引⼊“按需卸载”的策略,即在发现write⼯具后判断⽂件内容已经变更时就去掉历史调⽤中的read⼯具的返回值,于是我将⼯具划分为两个类型,即读和写,当读写在操作同⼀个实体(这⾥指⽂件)时,如果有写操作则卸载掉上次的读操作,但这导致模型的幻觉现象变得更加严重,深⼊分析了模型的输出后,我发现并不能实时卸载,应该延迟⼀段“时间”(⼀些读写操作)后再卸载,否则模型很难感知到上次的⾏为,容易出现重复操作。简单来说就是保持最近的⼏次操作,例如50次。

在aone copilot中使⽤了类似的思路,⼤约只会保留最近250次的操作内容,可以右键打开 devtools来查看交互的对话内容。

但是这个思路只能解决read、write⽂件的⻓上下⽂问题,难以推⼴到grep、getDependency等⼯具上,并且在⼯程上实现不够优雅。

暂且记下这些问题,回过头来先看write⼯具,write⼯具⾄少需要2种

  1. 块替换
  2. 完整覆写
String replace(String path,String search,String replace){
//找到search块并替换为replace
}
String write(String path,String content){
//直接覆盖path的内容,如果不存在则创建一个文件
}

write⼯具的主要问题是⼯具调⽤内容较多,相⽐read⼯具,write只需要确保内部替换逻辑是准确的,且在出现问题时能够准确反馈问题可以让模型重新推理即可,但在实际测试中和模型及框架有关的两个点需要注意:

  1. 模型⼏乎不会产出\r符号,因此如果项⽬是在windows下操作的需要注意\r符号。
  2. 模型在输出\t时容易多⼀次转义,例如参数需要为\t,但模型输出\t(这应该是通过json格式约束模型输出⼯具调⽤导致的问题)。

write⼯具中也有path参数,因此也需要类似read⼯具的路径推测能⼒来降低模型进⾏⼯具调⽤失败的概率。

其他的读⼯具都可以参考read_file的问题,即信息过期、冗余等问题。

  1. 完整读 的缺陷:

    上下⽂爆炸:⼤⽂件直接塞⼊上下⽂。

    路径模糊:模型可能传⼊类名、缺后缀等,需⽀持模糊匹配。

    内容过期:write 后未刷新 read 内容,导致历史响应冗余。

  2. 部分读 的局限:

    模型不知关键代码位置,可能多次调⽤,反⽽增加成本。

    与 write 联⽤时仍存在重复内容问题。

    最坏情况下(需读末尾)⽐全读更耗 token。

  3. “按需卸载”策略的陷阱:

    早期尝试在 write 后⽴即移除旧 read 响应,结果加剧幻觉——模型因缺乏⾏为反馈⽽重复操作。实践表明,应延迟卸载(例如保留最近 50–250 次操作),让模型充分感知⾏为影响。

5、⼯具的⾏为和影响

回过头来思考⼈在coding场景下的⾏为,当⼈在进⾏编码时,⼀直在观察ide中打开的代码⽂件,通过键盘对代码⽂件进⾏编辑(光标位置),当需要切换编辑的位置时,将光标移动到新的位置,随后开始⼀段新的输⼊。

通过拟态来优化⼯具的设计思路,当⼈在进⾏编码时⼀直在观察的是IDE的界⾯,同时通过⿏标键盘在和这个界⾯中的元素进⾏交互,屏幕是有限的,所以我们观察到的内容也是有限的,这和我们期望的agent的上下⽂是“固定”的⾮常类似。

当模型试图进⾏⼀次⼯具调⽤时,本质上是为了“观察”或“影响”环境,也可以说是为了“读”和 “写”环境,这是模型主导的“⾏为”,环境则是agent的具体业务需要的信息,例如在coding场景中可以把代码⽂件、⽂档等视为“环境”。当⼯具调⽤结束时,将⼯具返回的内容组装到上下⽂中就实现了让模型观察环境或是了解造成的影响。

在现有思路下⼯具包含了两个职责

  1. ⾏为
  2. 影响的反馈

以read_file为例,实际上这个⼯具的⽬的是“获取⽂件内容”并发送给模型,⾏为是获取指定⽂件的内容,影响是在上下⽂中增加⽂本的内容,最终发送给模型,使得模型看起来像是阅读了代码似的。

⽽当⼈在阅读⽂件时,实际上是进⾏了⼀次“打开⽂件”的⾏为,然后造成了IDE现在显示我们“打开⽂件”的内容,所以我们(语⾔模型)可以通过“看”屏幕来阅读⽂件内容。

基于这个思路,我在system prompt中增加了⼀个固定存在但内容“实时”更新的块,这个块存储模型看到的事实,同时不再有读⽂件的⼯具,⽽是变成了open_file和close_file两个操作,当模型调⽤open_file⼯具时,是进⾏了⼀次“⾏为”,⽽⼯具的影响是“⾏为的结果”以及“IDE中显示⽂件内容”。

实时更新是指每次发送给模型前进⾏更新

String openFile(String path){
//如果成功在ide中记录path被打开,返回已经成功打开文件
//如果失败原因是什么
}

每次组装发送给模型的内容时,重新⽣成IDE的内容,IDE中包括“⽂件内容”。

参考这个思路,我们可以将“⽬录”、“搜索”、“引⽤关系”、“变更清单”、“TODOLIST”等⼯具都视为IDE中的模块,并提供“⾏为⼯具”来调整这些块的内容。

同时甚⾄可以将这些块的展示/隐藏也全权交给模型决策,即由模型⾃主管理。

例如

  1. 我们现在打开的⽂件较多,可以在上下⽂中增加“警告信息”,让模型将不重要的⽂件进⾏关闭。
  2. 打开的某个⽂件较⼤,让模型聚焦到某个块
  3. 打开的⽬录已经使⽤完毕了(搜索过程),模型⾃主的关闭⽬录
  4. 打开的⽂件已经不需要再使⽤了,模型⾃主的关闭此⽂件
  5. 等等

但⼈和模型还是有本质上的区别,抛开逻辑能⼒的差异,最重要的是“记忆”,⼈可以“记住”刚刚打开的⽂件,即使现在关闭了,⼤概也能记得内容并基于“记忆”中的内容来对当前打开的⽂件进⾏操作,⽽LM模型我们知道它是没有记忆的,之所以有“记忆”的假象,只是因为在上下⽂中包含了完整的信息。

为了解决这个问题,我们可以给ide⼀个专⻔的“记忆”模块。

6、记忆和遗忘

说到记忆,我们的根本⽬的是让模型“记住”那些“需要”的信息,并且基于这些信息给出准确的“判断”,最佳⽅式是把所有的“⾏为”和“影响”都放在上下⽂中,只要模型⾜够“聪明”就⼀定能做出最准确的判断,但我们知道语⾔模型的上下⽂是有限的,且基于语⾔模型的原理我们知道上下⽂中的内容不能过多,否则会导致模型“性能”下降。

当⼈在阅读了⽂件后,可以直接关闭或切换到其他⽂件进⾏后续⼯作,这是因为⼈记住了⽂件中的“关键”内容⽽⾮记住了完整的⽂件内容。

我们则需要⼿动在上下⽂中增加“关键信息”以便让模型“记住”关键信息,在上下⽂充⾜的情况下,⾸选保留完整的⽂件内容,随着模型的逐步深⼊,上下⽂也开始捉襟⻅肘了,此时在系统提示词的引导下,模型会开始试图关闭或⼯程上主动出发关闭⽂件时,需要对即将关闭的⽂件进⾏⼀次关键信息提取,然后将关键信息记录到⼀个较⼩的备忘录中,以实现让模型仍然记得刚刚关闭的⽂件中的关键信息,我们仍然可以借助⼀个subagent来进⾏关键信息提取,⽽如何判断⽂件的关键信息则由主agent给出,当主agent打开⼀个⽂件时,需要同时给出此操作的⽬的,让subagent基于“⽬的”进⾏关键信息提取。

随着探索的继续深⼊,备忘录的⼤⼩也到达了上限,我们需要从上下⽂中真正的删除内容,最佳⽅式仍然是让模型⾃主管理哪些部分需要被移除,哪些部分需要保留,但也可以使⽤简单的先进先出或者策略。

同时因为⾏为和影响的分离,我们可以针对每个部分的特点来单独设计压缩、裁剪、合并等⾏为,更加⾼效的利⽤上下⽂来释放模型的能⼒。

▐事实和⾏为

在“记忆”中有⼀部分⾮常特殊的内容,即⼯具调⽤的记录,这是告知模型“已经做过”的内 容。但有些模型的训练过程中会专⻔对⼯具调⽤进⾏训练(⽀持functioncalling的模型),因⽽导致了⼀些特殊的规则,例如:

  1. function call 和function response需要成对出现
  2. unction call 和function response需要使⽤特殊格式传递给模型

例如下⾯⼀个询问天⽓的简单示例

user:今天天气怎么样
assistant:function_call getDate
agent:function_response 2025-12-22
assistant:function_call getWether 2025-12-22
agent:function_response 晴天
assistant:今天是2025-12-22,天气睛

在⼀些instruct模型中,如果不使⽤这种形式,模型可能会出现⽆限循环调⽤⽅法。

因此在agent应⽤中,需要将“记忆”划分为两部分:事实记忆和⾏为记忆。

⾏为记忆使⽤function call/response 的形式在上下⽂中体现,⽽事实记忆则通过诸如打开的⽂件内容、操作过的⽂件列表、diff内容、备忘录、todo等形式。

通过上述⽅式组织上下⽂可以使得上下⽂保持在⼀定⼤⼩内,既能够充分利⽤上下⽂窗⼝,也可以避免上下⽂快速膨胀导致的性能快速下降。

▐传播和继承

按照上述思路,上下⽂被划分成⼀些固定的块,例如diff、路径、备忘录、todo等,我们可以通过xml将这些块进⾏区分,组织成⼀个结构化的上下⽂。

<ide>
<open_file>文件路径</open_file>
<todo>待办</todo>
<note_book>备忘录</note_book>
</ide>

⚠在使⽤chat和模型进⾏交互时,需要将ide内容放⼊system prompt,否则容易被模型遗忘。

在上⽂的思路下模型的⾏为和影响被拆分,且每个部分也被⾃然的拆分,因此我们可以针对每个任务的特点来组装上下⽂信息,充分利⽤有限的上下⽂。⽽“影响”天然就是上⼀次⼯作的结果和过程的直观展现,新的⼯作可以基于上⼀轮的“影响”继续进⾏。

在⾯向multi agent或是sub agent时,“影响”被继承,并转向另⼀个维度的⼯作,例如deep search收集知识的过程中可以被“评估者”直接评估知识是否收集完全、代码⽣成时则可以直接利⽤deep search收集的知识进⾏⼯作。在多轮对话中“⾏为”和“影响”均可以被继承,模型可以⽆缝的接受⽤户新的输⼊后开始新的⼯作。

结语

在我看来上下⽂⼯程是⼀个复杂且不断发展的⼤模型下的⼯程产物,本质上是由于语⾔模型能⼒的不⾜⽽出现的⼀种⼯程上的妥协,随着语⾔模型能⼒的增强,或许在未来的某⼀天我们可以直接依赖模型的能⼒⽽不再需要复杂的上下⽂⼯程,但是以⼯程应⽤的视⻆来看,资源的⾼效利⽤、性能的极致优化永远是⼯程师的追求。

最后

近期科技圈传来重磅消息:行业巨头英特尔宣布大规模裁员2万人,传统技术岗位持续萎缩的同时,另一番景象却在AI领域上演——AI相关技术岗正开启“疯狂扩招”模式!据行业招聘数据显示,具备3-5年大模型相关经验的开发者,在大厂就能拿到50K×20薪的高薪待遇,薪资差距肉眼可见!

图片

业内资深HR预判:不出1年,“具备AI项目实战经验”将正式成为技术岗投递的硬性门槛。在行业迭代加速的当下,“温水煮青蛙”式的等待只会让自己逐渐被淘汰,与其被动应对,不如主动出击,抢先掌握AI大模型核心原理+落地应用技术+项目实操经验,借行业风口实现职业翻盘!

深知技术人入门大模型时容易走弯路,我特意整理了一套全网最全最细的大模型零基础学习礼包,涵盖入门思维导图、经典书籍手册、从入门到进阶的实战视频、可直接运行的项目源码等核心内容。这份资料无需付费,免费分享给所有想入局AI大模型的朋友!

图片

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

部分资料展示

1、 AI大模型学习路线图

img

2、 全套AI大模型应用开发视频教程

从入门到进阶这里都有,跟着老师学习事半功倍。

在这里插入图片描述

3、 大模型学习书籍&文档

在这里插入图片描述

4、 AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

img

5、大模型大厂面试真题

整理了百度、阿里、字节等企业近三年的AI大模型岗位面试题,涵盖基础理论、技术实操、项目经验等维度,每道题都配有详细解析和答题思路,帮你针对性提升面试竞争力。

img

在这里插入图片描述

6、大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

img

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

  • 👇👇扫码免费领取全部内容👇👇

    在这里插入图片描述

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

相关推荐

Agentic Coding - 从Vibe Coding到超级个体的进化之路

本文是对北京大学DeepSeek内部研讨系列《Agentic Coding - 从Vibe Coding到超级个体的进化之路》的总结及摘要,梳理了AI编程的核心演进逻辑,解析全球主流AI编程工具的特点与适用场景,探讨工具选型的核心思路,并展望Agentic Coding时代的未来趋势与挑战。

般若 1161

大模型 ai coding 比较

我主要用途是 ai coding,从各种渠道获取到了很多 不同的大模型排序 最多的是 opus 4.6 > k2.5 > glm5 > sonnet4.5 > m2.5但是我 希望从自身实践的角度 进行测试,我把所有的平台都办了月卡我在这个基础上 添加了deepseek v3确实opus 4.6 更适合 ai codingglm5 可能是真的因为 资源不够,感觉降智,速度也慢,前两天 他们 发通知,寻求资源,目前可能不推荐我从测试目标 :模型独立完成指定功能代码的能力测试目标 :模型排查和修复代码问题的能力

qq_25497867的博客 1921

开漏输出(漏极开路输出与集电极开路输出)和推挽输出怎么判断

判断一个引脚是还是。

weixin_56838517的博客 1055

【Vibe Coding解惑】AI 编程中的上下文窗口问题

AI 编程中的上下文窗口问题

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 762

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6907

Transformer模型详解(图解最完整版)

Transformer由论文提出,现在是谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。在本文中,我们将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。Transformer 与 RNN 不同,可以比较好地并行训练。

2501_91695094的博客 2701

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 221

【时时三省】tessy 集成测试 总论

序论不积跬步无以至千里,不积小流无以成江海。正文。

时时三省的博客 1148

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 315

(论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)

论文及源码见个人主页:https://download.youkuaiyun.com/download/qq_45874683/84118637?spm=1001.2014.3001.5503 (论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)4D-CRNN 目录 目录: 运行过程: 1. 运行1D文件(没有什么bug): 2. 再运行3D文件(没有出现bug): 3. 最后运行main文件(出现了两个bug)(前提需要配置好tensorflow的框架): 第一个bug是..

qq_45874683的博客 6364

YOLO26训练教程,训练自己的数据集教学,从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 。实现0到1的完整教学过程。快速入门必看

本文详细介绍了YOLO26目标检测模型的配置与使用流程:1)下载YOLOv11源码并创建Python3.10虚拟环境;2)安装PyTorch2.5.1及相关依赖库;3)准备数据集并修改配置文件;4)编写训练脚本设置参数(640x640分辨率、500轮次);5)验证模型效果;6)使用训练好的模型进行推理测试;7)生成可视化热力图。整个过程涵盖了从环境搭建到模型应用的全流程,并提供了清华镜像源加速下载。

Ai缝合怪、助力小伙伴高效发论文 5284

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 590

华为OD机试真题新系统-空间占用计算(Py/Java/C/C++/Js/Go)

华为OD机试新系统机试真题 【空间占用计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【空间占用计算】。

qq_45776114的博客 3441

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 21

PCL 三维重建 基于B样条曲线的曲面重建算法

本文将介绍如何使用B样条曲线进行三维点云数据的曲面重建。B样条曲线和曲面是一种强大的数学工具,在计算机图形学、CAD设计等领域中广泛应用。通过对点云数据进行曲面拟合和优化,最终得到精确的曲面模型。本示例展示了如何利用PCL中的B样条曲线拟合算法进行三维曲面重建,并对重建结果进行可视化。

纵马踏花向自由 658

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 750

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 371

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 410

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 171

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 85

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 218

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 178

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 353

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 400

考拉兹猜想 - 7

本文通过引入虚数单位重构Collatz猜想的迭代逻辑,指出偶数减半与奇数“乘3加1”的过程在虚数坐标下等价于归结操作。关键在于:乘3加1使奇数跃升至偶数,随后持续减半,而虚数单位代表“无限减1”,实现无限向有限的转化。无论初始值如何,减半始终主导,最终归结为4-2-1循环。该视角消解了正向思维中的速度竞争疑虑,证明归结是必然结果。

杨铸人的博客 43

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 182
上一篇: 收藏!未来3年最值得入局的AI岗位|小白&程序员必看,大模型入门躺赢指南
下一篇: 【必读收藏】大模型Agent全解析:组成、痛点与开源框架指南
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值