码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Agent 记忆系统难在取舍


    Agent 记忆的难点不是存储,而是判断什么值得写、什么时候合并、召回多少,以及团队资产如何治理。
    合集 - 老六的AI笔记本(148)
    1.告别“失忆”的组织:构建企业级 AI 记忆基质的工程思考05-142.脚本的下一站:让自然语言直接成为可执行入口05-133.告别“轮流发言”:为什么说“交互模型”才是 AI 对话的未来?05-134.当用户觉得 Agent 变笨时,真正退化的往往不是模型05-135.AI 不是天然站在进步主义的对立面05-136.做 Agent,先把 Prompt Cache 当成系统架构来设计!05-137.逃离地球!AI数据中心的太空狂想曲05-148.疯狂五月:AI 化身最强“神探”,重塑网络安全攻防战05-149.深度拆解 Agent 引擎:从 Prompt 到 Harness Engineering,揭秘 AI 操作系统的工程本质05-1510.AI 编程提效反思:构建健壮软件,为什么更需要“消化”的时间?05-1511.软件工程师的终结?当 AI 代理让开发门槛降为零,硬核开发者的底牌是什么05-1512.TencentDB Agent Memory 架构拆解:告别 Agent 失忆,构建四层可追溯记忆与上下文治理系统05-1813.狼来了?如果我们正处于AI泡沫中会怎样?05-1814.Hermes Agent /goal 长任务运行时架构拆解:状态持久化、Judge 闭环与自主续航05-1915.DeepSeek-V4-Flash 让 LLM Steering 重回主舞台:本地大模型时代的模型操控工程实战05-1916.Agent Runtime 九个关键设计:状态外化、上下文压缩与多智能体协同05-2017.2026 年我作为资深工程师如何使用 LLM Agent:从副驾到主驾的真实工作流转变05-2018.OpenClaw Dreaming 记忆流水线底层架构:状态分层、证据留痕与检索回流05-2119.AI 基建账单:8000 亿 capex 砸下去,云厂商到底回了多少本05-2120.Agent Harness Runtime 架构深度解析:工具循环、状态外置与长程任务调度05-2221.当AI 算力进入锁仓时代,AI 就不再只是软件生意!05-2222.为什么 AI Coding 难进生产环境?深入了解 Everything-Claude-Code !05-2523.AI 正在抬高手机价格:HBM 抢产能,消费电子为什么越来越贵?05-2524.平台智能化到了分水岭:为什么配置代码化才是 AI Coding 的下一代接口05-2625.技术沟通为什么总在返工?你写的是文档,产品听到的却不是同一种语言05-2626.Claude Code 如何压缩上下文:Microcompact、Prompt Cache 与 cache_edits 工程拆解05-2727.前端别再乱接管浏览器了! 自定义滚动、密码框、日期控件,这些为什么总把体验做坏?05-2728.Agent Harness 架构真相:Prompt Cache 如何决定 Skill、MCP 与 SubAgent 设计05-2829.AI 智能体正在放大低质量代码:为什么大组织会先被反噬?05-2830.RAG 负责召回,LLM Wiki 负责沉淀:团队知识系统为什么不能只做检索05-2931.AI 已经进流程了,但人不能从责任链上消失:招聘、授信与公共服务里的治理底线05-2932.Dynamic Workflows 深度解析:Claude Code 为什么把多 Agent 编排写进可执行代码06-0133.Codex Context Compaction 真相:Agent 为什么压缩后还能接着干活?06-0234.AI 代理安全架构:沙箱、虚拟机和出口控制,才是 Agent 时代真正的保险丝06-0235.业务 Agent 搭建指南:别急着重造 Agent,用知识、工具与评测跑通闭环06-0336.Claude Opus 4.8 Agent 交付力拆解:为什么它更像工程负责人?06-0337.CodeGraph 代码图谱实战:AI Agent 为什么不该再从 grep 开始?06-0438.AI 搜索正在改写 Web 入口:为什么搜索框不再把人送到网页06-0439.Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文06-0540.AI 没有 ROI?企业真正暴露的,是 Token 成本失控!06-0541.AI Coding 如何影响交付链路重构:写代码更快了,为什么人反而觉得更累了?06-0842.AI 编程争论变味了:为什么反 AI 情绪开始走向怀旧化06-0843.Agent 工具链工程化: Skill 负责编排判断,CLI 稳定交付的执行边界06-0944.LLM 编程提速之后,为什么你反而更难想清楚问题?06-0945.Harness Engineering:Agent 真正能交付,靠的不是更强模型,而是上下文、执行协议和验收闸门06-1046.AI Skill 市场的安全账:为什么说 Skill Registry 本质上是新的供应链入口06-1047.AI Native 竞争力:真正稀缺的不是会用 AI,而是把事往前推的人06-1148.AI 生成 PR 正在刷爆开源项目:GitHub 贡献信号为什么失灵了?06-1149.Google AX 控制面拆解:分布式 Agent 如何把断点恢复、审计策略和执行调度收进同一条链路06-1250.LLM 写代码的新风险:不是写错,而是差一点就好06-1251.Agent Workflow Runtime 架构拆解:把 Agent Loop 从提示词搬进代码,长任务才真正稳了06-1552.LLM 写代码为什么不能盲信:AI 编程进入生产前,必须过人类的门06-1553.GEPA 架构拆解:让 Prompt 和 Skill 优化不靠玄学06-1654.UI Output Protocol 架构拆解:Markdown、HTML 和 UI DSL 如何分工06-1755.Hermes Agent Skill Runtime 架构拆解:让 AI Agent 不再从零开始06-1856.Loop Runtime 架构拆解:别再手动催 Agent,先把工程闭环跑起来06-2157.AI 支付大战开打:微信支付宝争夺下一代交易入口06-2158.AI Native 架构:有限上下文、确定性边界与质量闸门06-2259.Claude 网络安全实测:AI 攻防能力正在从聊天走向执行06-2260.Agent Coding Governance:上下文地图、运行时护栏与自进化 Loop 如何重塑 AI 编程交付06-2361.OpenAI 护城河收窄:大模型竞争正在从能力领先转向入口、成本与工作流06-2362.LLM 记忆系统:从 Markdown 知识库到 Self-Governing Repo06-2463.AI 短剧“买脸”上热搜:500 元肖像授权背后的生成式内容生意06-2464.AI 生产力陷阱:你变快了,但团队为什么更慢了?06-2565.Agent Skill 状态机工程:Mode-Step 网格如何拆开工作流边界06-2666.Yog's Law:创作者别为曝光倒贴钱06-2667.Multi-Agent 执行闭环:AI Coding 真正进生产,要靠模型分工和工程护栏06-2968.Claude 蒸馏争议升级:Anthropic 指控阿里,模型输出边界被撕开06-2969.SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent06-3070.AI 数据中心的真成本:GPU 之外,电网、水和噪音才是硬账06-3071.Agent Loop 架构拆解:让 AI Agent 自己跑完验收闭环07-0172.AI 账号实名化来了:提示词、代码和日志都会绑定真实身份07-0173.AI Coding 不只靠 Prompt:Agent 工程闭环如何接入 DevOps07-0274.Seedance 2.5:AI 视频生成进入全像素时代07-0275.AI 研发共生架构:别再问 AI 会不会替代程序员啦!07-0376.AI 简历正在制造匿名感:别让求职材料抹掉你这个人07-0377.Agent 工程化新底座:用 CLI 契约层打通 HTTP 接口与业务能力07-0678.豆包、千问下线智能体:平台 Agent 正在告别开放广场07-0679.团队落地 Agent 工程化 Loop 的一些必看小技巧!07-0780.Meta 外售 AI 算力:泡沫争论终于进入硬件账本07-0781.Agent 评测系统架构:从指标分层到 GT/Judge 闭环的工程化落地07-0882.AI 手机进入 Agent 时代:Siri、Gemini、豆包都在争夺下一代移动入口07-0883.Agent Runtime 架构拆解:Prompt 如何变成可校验的执行链路07-0984.Claude Code 被禁争议背后:Coding Agent 正在进入企业安全审计时代07-0985.Hermes Skill Runtime 架构拆解:三层加载如何压住 Agent 上下文成本07-1086.开源大模型风险升级:DeepSeek 之后,模型供应链会被监管吗?07-1087.Agent Tool Interface 架构拆解:为什么好工具比强模型更决定成败07-1388.AI 编程正在变天:从“写代码”走向“管系统”07-1389.Hermes 上下文压缩架构:长任务 Agent 不失忆的几个关键设计07-1490.AI 搜索摘要正在吃掉开放网页:Google 答案层背后的内容生态危机07-1491.Agent Memory 架构拆解:别再把向量库当唯一记忆系统07-1592.Meta AI 管理实验翻车:指标化正在伤害工程组织07-1593.Agent 从上手到精通:打造有记忆的个人智能体07-1694.Figma AI 设计工作流变了:画布正在吃进代码、动效和团队协作07-1695.企业 Agent 为什么难落地:组织、数据和流程才是真卡点07-1796.Agent 长程任务架构设计指南:上下文管理、错误纠偏、目标约束与框架选型07-2097.GPT-5.6 更聪明之外:模型竞争开始算成本账07-2098.SAG 知识库检索机制:Event-Entity 索引、SQL 动态超边与多跳 RAG 召回链路07-2199.Big Tech 反垄断换战场:州政府和海外监管正在接力07-21100.代码不是 AI 编程的最终资产,AI Coding 真正该存的是 Checkpoint07-22101.AI 陪伴智能体降温:豆包、千问之后,角色 Agent 正在进入合规深水区07-22102.Agent 评测别把「调优 Loop」 跑成「刷题 Loop」07-23103.GLM-5.2 低价冲击:企业开始认真给 Token 算账07-23104.Claude Tool Search 深度拆解:延迟加载、工具引用和与 Codex 对比07-24105.Vibe Coding 不是终点:AI 编程教育真正该补的是打开黑盒的能力07-24106.Agent 可消费知识库建设:从文档资产、业务路由到可信上下文基础设施07-28107.Coding Agent 的组织风险:局部正确,团队失语07-28108.AI Agent、架构决策记录与工程上下文治理:团队如何把隐性约束留在仓库里。07-29109.为什么 Google Agent Teams 会重写软件交付07-29110.Agentic Engineering 组织级研发闭环的工程化拆解07-30111.AI 转型为什么失败:李开复把问题指向管理层07-30112.Agent OS 视角:别再把 Graph、Loop 和 Harness 当成并列概念08-03113.Skill 评测体系:从格式检查到真实任务验证的五层证据链08-04114.Agent 自进化为什么难:约束系统比自我反思更重要08-05115.Brainstorming 与 grill-me 在 AI 产品设计和工程决策中的分工边界08-06116.Agent Runtime 如何用 Session、Memory、User Profile 和 Skill 实现外部学习08-07117.Loop Engineering 与 Graph Engineering 的关系:单任务循环如何进入多节点协作图08-10118.MCP 无状态化升级解析:会话移除、MRTR、请求头路由与云原生 Agent Server08-11119.Opus 5 系统提示词拆解:模型能力、运行时工具、记忆规则和可靠 Agent 设计08-12120.AX Tree:Agent 操作电脑时,真正需要的不是截图,而是界面语义08-13121.别只给 AI 产品接模型:Agent 能做成事,靠的是策略和 Harness08-14122.DeepSeek Harness :Agent 自我改进之前,先让 Harness 可观察、可组合、可回滚08-17123.DeepSeek Harness 为什么能热换模型:插件依赖、事件日志与回滚机制08-18124.Agent Team 真正缺的不是更多 Agent,而是同步协议08-19125.Prime Agent 把 Coding Agent 从工具调用推向可恢复工作流08-20126.MoE 的关键不是专家多,而是路由稳08-21127.强模型时代,提示词要从步骤清单改成任务契约08-24128.DeepSeek Harness:从固定内核到可塑运行时08-25129.长程 Agent 任务不跑偏,靠的不是多开几个会话08-26130.DeepSeek Harness 不是银弹:一切皆插件背后的工程账08-27131.Agent 运行时不是聊天流,而是给 LLM 补操作系统08-28132.DeepSeek Harness 的价值不在 Loop,而在运行时组合08-31133.OpenSpace:Agent 真正该进化的是 Skill 层09-01134.好的 AI 办公应用,不是聊天框,而是能跑完流程09-02135.当 LoRA 变成 Agent 工具:模型会不会开始管理自己的长期记忆09-03136.长任务 Coding Agent 的关键不是写代码,而是交付链路09-04137.DeepSeek Harness 的 Agent 运行时设计09-07138.LLM 强化学习为什么能落地09-08139.RAG Hybrid 到底混合了什么09-09140.Claude Code 为什么用随机动词缓解等待焦虑09-10141.“你是专家”这句 Prompt 该删了吗09-11142.数字分身 Agent 的工程内核09-14
    143.Agent 记忆系统难在取舍09-15
    144.Agent 边界不能只写在提示词里09-16145.大模型迎合评测?我们最终要测什么?09-17146.Codex 记忆机制的两条路09-18147.Agent 记忆系统的分层设计09-22148.给 Agent 看的 Install 文档应该怎么写09-23
    收起

    Agent 记忆的难点不是存储,而是判断什么值得写、什么时候合并、召回多少,以及团队资产如何治理。

    ​阅读时间​:约 7 分钟

    很多 Agent Memory 方案看起来都差不多:分层记忆、向量召回、长期画像、少用 token。

    真正拉开差距的地方,不在这些名词,而在边界条件。

    拆这类系统,最好先问四个问题:

    • 同一条信息要不要写
    • 新旧事实冲突时保留谁
    • 召回超时是等,还是放弃
    • 团队管理员能不能看个人记忆

    TencentDB Agent Memory 值得拆,是因为它把这些判断写进了代码和 prompt。


    inline-01.png

    图:Agent 记忆工程取舍

    记忆系统先要敢丢东西

    这套系统最重要的原则可以概括成四个字:宁缺毋滥。

    原始对话不会直接变成高层记忆。每轮对话先落到 L0,再由异步流水线逐层提炼。
    mermaid-01.png

    L0 不是单一存储。它会写 SQLite 表、向量表和按天分片的 JSONL。

    这看着冗余,但用途不同:

    存储 作用
    SQLite 表 结构化查询,保留 team_id/user_id/agent_id/task_id
    向量表 语义召回
    JSONL 数据库异常时可回捞原话

    从最底层就埋下 team_id、user_id、agent_id、task_id,说明它一开始就不是个人单机备忘录。后面的团队资产治理,靠这些字段才能成立。


    L0 到 L3 是一条异步提炼链

    L1 抽取不会每轮都跑。默认每 5 轮触发一次,或者会话空闲 600 秒后触发。

    配置里还有一个冷启动优化:enableWarmup 会按 1、2、4、5 轮提前触发,让第一条记忆更早出现。

    关键配置大致如下:

    pipeline: {
      everyNConversations: 5,
      enableWarmup: true,
      l1IdleTimeoutSeconds: 600,
      l2DelayAfterL1Seconds: 10,
      l2MinIntervalSeconds: 900,
      l2MaxIntervalSeconds: 3600,
      sessionActiveWindowHours: 24,
    }
    

    这个节奏说明一件事:记忆不能影响对话主链路。写入和聚合放到异步流程里,用户先拿到回答,系统随后整理记忆。

    L1 的抽取 prompt 同时做两件事:

    • 判断情境是否切换
    • 提取结构化记忆

    记忆只分三类:

    类型 内容 例子
    persona 用户稳定属性、偏好、技能、价值观 用户偏好简洁回答
    episodic 客观发生过的事件、决定、计划 用户在某天决定推进某项目
    instruction 长期行为规则、格式和语气要求 回复时先给结论

    它刻意排除了“没有客观事件支撑的情绪表达”。这是个很实用的限制。用户随口抱怨一句,不应该被系统永久写成稳定偏好。

    还有一个特殊值:priority = -1。它留给极严格的全局命令。正常优先级是 0~100,负数反而代表最高约束,说明后续排序或过滤会为这类规则走特殊分支。


    去重和聚合交给 LLM 判决

    很多记忆系统用向量相似度阈值去重。TencentDB Agent Memory 没这么做。

    它先召回 Top-5 候选,再让 LLM 判断动作:

    动作 含义
    store 新信息,直接新增
    skip 旧记忆更好,新记忆没有增量
    update 同一事实,新记忆更具体、更新或纠错
    merge 多条记忆互补,合成一条

    这比纯阈值更接近人类整理笔记的方式。向量只能判断“像不像”,LLM 可以判断“是不是同一事实”“谁更新”“能不能合并”。

    代价也明确:每次抽取后要多一次 LLM 判决。结果也不是完全可复现。同样两条记忆,不同运行可能得到不同合并结果。

    L2 聚合更大胆。它不给聚类算法,而是给 LLM 一个目录的读写权限,让它维护场景文档。

    关键约束是 maxScenes = 15。场景文件接近上限时,LLM 必须先合并相似场景,再处理新记忆。

    这个上限很关键。没有容量约束,记忆只会越堆越多;有了上限,系统被迫持续归纳。

    删除也不是让 LLM 真删文件。LLM 只能写 [DELETED] 标记,由工程侧清理。这个设计把“语义判断”交给模型,把“危险操作”留给代码。


    召回侧把预算写进代码

    召回链路走混合检索:关键词一路,向量一路。

    关键词路线使用 SQLite FTS5 的 BM25。中文先做分词,再拼成 OR 查询。

    向量路线使用 sqlite-vec 做余弦相似度。两路并行,各取 maxResults * 3 个候选。

    融合使用 RRF:

    export const RRF_K = 60;
    
    export function rrfMerge(
      lists: T[][],
      getId: (item: T) => string,
      k: number = RRF_K,
    ): ArrayrrfScore: number }> {
      const map = new Map<string, { item: T; rrfScore: number }>();
    
      for (const list of lists) {
        for (let rank = 0; rank < list.length; rank++) {
          const item = list[rank];
          const id = getId(item);
          const score = 1 / (k + rank + 1);
          const existing = map.get(id);
          if (existing) existing.rrfScore += score;
          else map.set(id, { item, rrfScore: score });
        }
      }
    
      return [...map.values()]
        .sort((a, b) => b.rrfScore - a.rrfScore)
        .map(({ item, rrfScore }) => ({ ...item, rrfScore }));
    }
    

    RRF 的好处是不用比较原始分数。BM25 分数和余弦相似度不是一个量纲,直接相加需要调权重。RRF 只看排名,天然适合合并异构检索结果。

    召回注入也做了预算控制。

    稳定内容放在 system prompt 末尾,例如 persona、场景导航和工具指南。每轮变化的 L1 相关记忆放在 user prompt 前面。

    这个位置选择会影响账单。如果每轮都把变化内容塞进 system prompt,prompt cache 会不断失效。把稳定内容和动态内容拆开,能保住缓存命中率。

    召回还有 5 秒超时保护。超时后返回空注入,让主流程继续。

    这条判断很重要:记忆是增强功能,不该拖垮对话主链路。宁可无记忆回答,也不能让用户等一个不确定的后台依赖。


    上下文压缩才是省 token 的主战场

    很多文章会把节省 token 归功于长期记忆召回。真正每天发生的压力,是上下文窗口快满。

    系统里有三档阈值:

    mildOffloadRatio: 0.5,
    aggressiveCompressRatio: 0.85,
    emergencyCompressRatio: 0.95,
    mmdMaxTokenRatio: 0.2,
    

    含义如下:

    档位 触发比例 处理动作
    Mild 50% 替换非当前任务的工具结果
    Aggressive 85% 删除更早消息,用状态图回填
    Emergency 95% 紧急压缩到目标比例

    Mild 档只扫描最近 70% 的消息,并优先处理最可替换的前 40%。这说明系统不做简单 FIFO,而是先移走对当前决策价值较低的内容。

    Aggressive 档更像手术:从最老消息开始删除,每轮削掉约 40% 的消息 token,同时通过 L1.5 判断任务边界,避免把同一任务切断。

    被删掉的内容不会彻底消失。系统会用一张 Mermaid 状态图回填,告诉模型“任务走到哪一步”。

    可以把这个机制理解成:

    删除几十条工具调用原文
      -> 保留关键状态和证据
      -> 用一张状态图回填当前进展
    

    mmdMaxTokenRatio = 0.2 是必要的刹车。压缩产物最多占 20% token,避免“用压缩摘要把上下文再次塞满”。


    团队记忆的核心是治理

    个人记忆只要能搜回来就行。团队记忆需要回答更多问题:

    • 这份记忆属于谁
    • 哪个 Agent 可以用
    • 团队成员能不能看
    • 历史版本能不能回滚
    • 同一份知识如何挂给不同任务

    这就是治理。

    系统把记忆资产登记成有 Owner、版本、可见性和装配关系的资源,再按权限决定 Agent 能不能读取。

    private 语义最值得看:只有 owner 可以访问,团队 admin 也不能直接读。

    这个选择很产品化。Chat Memory 里会有用户偏好、工作习惯和私下表达。如果管理员也能看,很多人不会愿意打开这个功能。

    可见性可以粗略分成三类:

    可见性 语义
    private 个人隐私资产,只有 owner 可见
    team 团队共享,成员可读,owner/admin 可管理
    restricted 严格白名单,按 ACL 授权

    权限判定顺序也经过优化:先判断资源和 owner,再看成员、visibility、角色默认权限和 ACL。高频路径尽量不查 ACL,减少每次装配记忆的额外成本。


    接入层比算法层更重

    这个项目有一个很现实的比例:接入层代码量远大于知识引擎。

    原因不难理解。做 Agent Memory,算法只是其中一部分;真正麻烦的是怎么接入不同客户端。

    早期插件模式要适配每个 Agent 框架的生命周期。换一个闭源客户端,就可能接不进去。

    v2.x 换成代理模式:拦截 Anthropic、OpenAI 或其他兼容协议,把请求转发给上游,同时在旁路解析消息、工具调用和 usage,流结束后异步写入 L0。

    流式响应的关键是 SSE 边界处理。网络 chunk 不保证刚好按 \n\n 切开,所以代理必须保留未完成的缓冲区,等下一个 chunk 拼完整再解析。

    会话识别也靠一组 header 兜底,例如:

    x-conversation-id
    x-session-id
    x-claude-code-session-id
    x-thread-id
    

    这就是“零侵入接入”的真实代价。用户只改 base URL,看起来很轻;兼容性压力转移到了代理层。

    不同客户端会塞不同的系统提示、补全请求、压缩请求和工具调用格式。代理必须识别哪些要写记忆,哪些只是辅助请求。

    所以,记忆系统从个人玩具走向团队工具时,接入和治理常常比算法更费工程量。


    收束

    TencentDB Agent Memory 给出的几个判断可以迁移到很多 Agent 产品里:

    1. 记忆系统先设计“丢弃规则”,再设计存储
    2. LLM 适合做归纳、去重和合并,但危险动作要由代码执行
    3. 容量上限能逼系统持续整理,而不是无限堆积
    4. 召回失败要可降级,不能阻塞主流程
    5. 团队记忆必须先解决权限和可见性,算法效果排在后面

    它用到的技术并不神秘:SQLite、FTS5、向量检索、RRF、异步队列、prompt cache、SSE 解析。

    真正值得学的是这些技术被放在了正确的边界上。该让模型判断的地方让模型判断,该让代码兜底的地方让代码兜底,该让权限拒绝的地方就直接拒绝。

    记忆系统的核心能力,最后会落到一句很朴素的话上:存得少一点,取准一点,错了能改回来。

    推荐阅读

    数字分身 Agent 的工程内核

    “你是专家”这句 Prompt 该删了吗

    Claude Code 为什么用随机动词缓解等待焦虑

    RAG Hybrid 到底混合了什么

    LLM 强化学习为什么能落地

  • 相关阅读:
    【剑指offer系列】49. 丑数
    Oracle数据迁移实用入门
    【C/C++】结构体&内存对齐
    JS继承有哪些,你能否手写其中一两种呢?
    asp.net Core 中模拟微信公众号文件验证
    JAVA基础(十二)
    3GPP R17 NR测量GAP增强
    搭建自己的以图搜图系统(二):深入优化搭建生产级别的图搜系统
    【MySQL数据库】一函数
    Python爬虫入狱小技巧
  • 原文地址:https://www.cnblogs.com/ai-old-six/p/22978984
  • 最新文章
  • 设计一个简易合成器框架-Common Lisp
    DuckDB + SQL 高效分析 JSON 数据
    Codex 记忆机制的两条路
    DDD领域驱动设计的四重边界
    CLI 还是 MCP?一场关于 Agent 工具接口的再思考
    从 Healthory 到 Nature Aimanic:两款 iOS App 审核实战后,我总结了这份过审清单
    AI越来越强了,为什么测试人反而越来越累!(为打工人发声)
    自己编写 .c 和 .h:把小车代码分开放
    AI也没想到,三年红透半边天
    PHP 8.6 只是个小版本,三十项弃用却已在为 PHP 9.0 铺路
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号