[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"consumer-news-detail-947":3,"consumer-news-interaction-947":38,"consumer-news-related-947":41},{"detail":4,"item":34},{"card":5,"schemaVersion":21,"fields":22,"content":28},{"id":6,"kind":7,"targetType":8,"targetId":9,"subtype":7,"typeLabel":10,"title":11,"subtitle":12,"summary":13,"coverUrl":14,"badgeText":14,"href":15,"sourceName":12,"meta":16,"metrics":18,"tags":19,"resolved":20},"NEWS_ARTICLE:947","news","NEWS_ARTICLE",947,"资讯","使用 C# 轻松管理 PDF 文件的用户权限","博客园","在文档安全管理中，通过编程控制 PDF 的访问权限（如禁止打印、禁止复制等）是常见需求。本文使用 Free Spire.PDF for .NET 免费库，基于其 PdfSecurityPolicy 类，介绍如何用简洁的 C# 代码完成权限设置。 两种密码的角色 用户密码（User Password）","","\u002Fnews\u002F947",[17],"2026",{},[],true,"consumer-content-detail-v1",{"sourceName":12,"authorName":23,"summary":13,"description":13,"publishTime":24,"updateTime":25,"sourceUrl":26,"language":27},"LAYONTHEGROUND","2026-09-10T09:25","2026-09-11T15:22","https:\u002F\u002Fwww.cnblogs.com\u002Fjazz-z\u002Fp\u002F22915588","中文",{"format":29,"policy":30,"normalized":20,"html":31,"text":32,"wordCount":33,"hasBody":20},"HTML","NEWS_CONTENT_V1","\u003Cp>\u003Cspan>在文档安全管理中，通过编程控制 PDF 的访问权限（如禁止打印、禁止复制等）是常见需求。本文使用 Free Spire.PDF for .NET 免费库，基于其 \u003C\u002Fspan>\u003Ccode>PdfSecurityPolicy\u003C\u002Fcode>\u003Cspan> 类，介绍如何用简洁的 C# 代码完成权限设置。\u003C\u002Fspan>\u003C\u002Fp>\n \u003Ch2>\u003Cspan>两种密码的角色\u003C\u002Fspan>\u003C\u002Fh2>\n \u003Cul>\n  \u003Cli>\u003Cstrong>用户密码（User Password）\u003C\u002Fstrong>\u003Cspan>：打开文档时输入的密码。若设为空字符串，则打开无需密码。\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>所有者密码（Owner Password）\u003C\u002Fstrong>\u003Cspan>：用于控制文档权限的“管理密码”。持有者密码可以设置或解除各项操作限制。\u003C\u002Fspan>\u003C\u002Fli>\n \u003C\u002Ful>\n \u003Cblockquote>\n  \u003Cp>\u003Cspan>用户密码决定“能否打开”，所有者密码决定“能做什么”。\u003C\u002Fspan>\u003C\u002Fp>\n \u003C\u002Fblockquote>\n \u003Ch2>\u003Cspan>环境准备\u003C\u002Fspan>\u003C\u002Fh2>\n \u003Cp>\u003Cspan>通过 NuGet 安装免费版包：\u003C\u002Fspan>\u003C\u002Fp>\n \u003Cpre>\u003Ccode>PM&gt; Install-Package FreeSpire.PDF\n\u003C\u002Fcode>\u003C\u002Fpre>\n \u003Cblockquote>\n  \u003Cp>\u003Cspan>该免费版无功能水印，但有页数限制（前 10 页），适用于评估和小型项目。\u003C\u002Fspan>\u003C\u002Fp>\n \u003C\u002Fblockquote>\n \u003Ch2>\u003Cspan>核心类：PdfSecurityPolicy\u003C\u002Fspan>\u003C\u002Fh2>\n \u003Cp>\u003Cspan>该免费 PDF 库使用 \u003C\u002Fspan>\u003Ccode>PdfSecurityPolicy\u003C\u002Fcode>\u003Cspan> 及其派生类 \u003C\u002Fspan>\u003Ccode>PdfPasswordSecurityPolicy\u003C\u002Fcode>\u003Cspan> 来统一管理加密算法、密码和权限。此方式将各个关注点分离，代码更加清晰。\u003C\u002Fspan>\u003C\u002Fp>\n \u003Ch3>\u003Cspan>基本步骤\u003C\u002Fspan>\u003C\u002Fh3>\n \u003Col>\n  \u003Cli>\u003Cspan>加载 PDF 文档\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cspan>创建 \u003C\u002Fspan>\u003Ccode>PdfPasswordSecurityPolicy\u003C\u002Fcode>\u003Cspan>，传入用户密码和所有者密码\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cspan>设置加密算法（如 AES-256）\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cspan>通过 \u003C\u002Fspan>\u003Ccode>DocumentPrivilege\u003C\u002Fcode>\u003Cspan> 属性指定允许或禁止的操作\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cspan>调用 \u003C\u002Fspan>\u003Ccode>doc.Encrypt(securityPolicy)\u003C\u002Fcode>\u003Cspan> 应用策略\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cspan>保存文档\u003C\u002Fspan>\u003C\u002Fli>\n \u003C\u002Fol>\n \u003Ch3>\u003Cspan>示例：禁止打印和复制，允许填写表单\u003C\u002Fspan>\u003C\u002Fh3>\n \u003Cpre>\u003Ccode>\u003Cspan>using\u003C\u002Fspan> Spire.Pdf;\n\u003Cspan>using\u003C\u002Fspan> Spire.Pdf.Security;\n\u003Cp>\u003Cspan>namespace\u003C\u002Fspan> \u003Cspan>PdfPermissionDemo\u003C\u002Fspan>\u003Cbr>\n{\u003Cbr>\n\u003Cspan>class\u003C\u002Fspan> \u003Cspan>Program\u003C\u002Fspan>\u003Cbr>\n{\u003Cbr>\n\u003Cspan>\u003Cspan>static\u003C\u002Fspan> \u003Cspan>void\u003C\u002Fspan> \u003Cspan>Main\u003C\u002Fspan>(\u003Cspan>\u003Cspan>string\u003C\u002Fspan>[] \u003Cspan>args\u003C\u002Fspan>\u003C\u002Fspan>)\u003C\u002Fspan>\u003Cbr>\n{\u003Cbr>\n\u003Cspan>\u002F\u002F 1. 加载 PDF\u003C\u002Fspan>\u003Cbr>\nPdfDocument doc = \u003Cspan>new\u003C\u002Fspan> PdfDocument();\u003Cbr>\ndoc.LoadFromFile(\u003Cspan>\"原始文档.pdf\"\u003C\u002Fspan>);\u003C\u002Fp>\n\u003Cp>\u003Cspan>\u002F\u002F 2. 创建密码安全策略\u003C\u002Fspan>\u003Cbr>\n\u003Cspan>string\u003C\u002Fspan> userPwd = \u003Cspan>\"\"\u003C\u002Fspan>;                    \u003Cspan>\u002F\u002F 打开无需密码\u003C\u002Fspan>\u003Cbr>\n\u003Cspan>string\u003C\u002Fspan> ownerPwd = \u003Cspan>\"owner@2026\"\u003C\u002Fspan>;         \u003Cspan>\u002F\u002F 权限密码\u003C\u002Fspan>\u003Cbr>\nPdfPasswordSecurityPolicy policy = \u003Cspan>new\u003C\u002Fspan> PdfPasswordSecurityPolicy(\u003Cbr>\nuserPwd, ownerPwd);\u003C\u002Fp>\n\u003Cp>\u003Cspan>\u002F\u002F 3. 使用 AES-256 加密（更安全）\u003C\u002Fspan>\u003Cbr>\npolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_256;\u003C\u002Fp>\n\u003Cp>\u003Cspan>\u002F\u002F 4. 设置权限\u003C\u002Fspan>\u003Cbr>\npolicy.DocumentPrivilege.AllowPrint = \u003Cspan>false\u003C\u002Fspan>;             \u003Cspan>\u002F\u002F 禁止打印\u003C\u002Fspan>\u003Cbr>\npolicy.DocumentPrivilege.AllowContentCopying = \u003Cspan>false\u003C\u002Fspan>;    \u003Cspan>\u002F\u002F 禁止复制\u003C\u002Fspan>\u003Cbr>\npolicy.DocumentPrivilege.AllowModifyAnnotations = \u003Cspan>false\u003C\u002Fspan>; \u003Cspan>\u002F\u002F 禁止修改注释\u003C\u002Fspan>\u003Cbr>\n\u003Cspan>\u002F\u002F 允许填写表单（默认允许，如需禁用可设为 false）\u003C\u002Fspan>\u003Cbr>\npolicy.DocumentPrivilege.AllowFillFormFields = \u003Cspan>true\u003C\u002Fspan>;\u003C\u002Fp>\n\u003Cp>\u003Cspan>\u002F\u002F 5. 应用加密策略\u003C\u002Fspan>\u003Cbr>\ndoc.Encrypt(policy);\u003C\u002Fp>\n\u003C\u002Fcode>\u003Cp>\u003Ccode>\u003Cspan>\u002F\u002F 6. 保存新文档\u003C\u002Fspan>\u003Cbr>\ndoc.SaveToFile(\u003Cspan>\"受限文档.pdf\"\u003C\u002Fspan>);\u003Cbr>\n}\u003Cbr>\n}\u003Cbr>\n}\u003Cbr>\n\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Fpre>\n \n \u003Ch3>\u003Cspan>权限属性一览\u003C\u002Fspan>\u003C\u002Fh3>\n \u003Cp>\u003Ccode>PdfDocumentPrivilege\u003C\u002Fcode>\u003Cspan> 类提供以下常用布尔属性，可单独设置：\u003C\u002Fspan>\u003C\u002Fp>\n \u003Cfigure>\n  \u003Ctable>\n   \u003Cthead>\n    \u003Ctr>\n     \u003Cth>\u003Cspan>属性\u003C\u002Fspan>\u003C\u002Fth>\n     \u003Cth>\u003Cspan>说明\u003C\u002Fspan>\u003C\u002Fth>\n    \u003C\u002Ftr>\n   \u003C\u002Fthead>\n   \u003Ctbody>\n    \u003Ctr>\n     \u003Ctd>\u003Ccode>AllowPrint\u003C\u002Fcode>\u003C\u002Ftd>\n     \u003Ctd>\u003Cspan>是否允许打印\u003C\u002Fspan>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n     \u003Ctd>\u003Ccode>AllowContentCopying\u003C\u002Fcode>\u003C\u002Ftd>\n     \u003Ctd>\u003Cspan>是否允许复制文本和图形\u003C\u002Fspan>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n     \u003Ctd>\u003Ccode>AllowModifyAnnotations\u003C\u002Fcode>\u003C\u002Ftd>\n     \u003Ctd>\u003Cspan>是否允许添加或修改注释\u003C\u002Fspan>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n     \u003Ctd>\u003Ccode>AllowFillFormFields\u003C\u002Fcode>\u003C\u002Ftd>\n     \u003Ctd>\u003Cspan>是否允许填写表单字段\u003C\u002Fspan>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n     \u003Ctd>\u003Ccode>AllowModifyContents\u003C\u002Fcode>\u003C\u002Ftd>\n     \u003Ctd>\u003Cspan>是否允许修改文档内容（非注释）\u003C\u002Fspan>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n     \u003Ctd>\u003Ccode>AllowAssembly\u003C\u002Fcode>\u003C\u002Ftd>\n     \u003Ctd>\u003Cspan>是否允许插入\u002F旋转\u002F删除页面（仅 128 位及以上加密）\u003C\u002Fspan>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n   \u003C\u002Ftbody>\n  \u003C\u002Ftable>\n \u003C\u002Ffigure>\n \u003Cp>\u003Cspan>通常做法是：\u003C\u002Fspan>\u003C\u002Fp>\n \u003Cul>\n  \u003Cli>\u003Cspan>若只允许少数操作，先 \u003C\u002Fspan>\u003Ccode>ForbidAll\u003C\u002Fcode>\u003Cspan>，再单独开启需要的项。\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cspan>若只禁止少数操作，先 \u003C\u002Fspan>\u003Ccode>AllowAll\u003C\u002Fcode>\u003Cspan>，再关闭不需要的项。\u003C\u002Fspan>\u003C\u002Fli>\n \u003C\u002Ful>\n \u003Cp>\u003Cspan>示例：\u003C\u002Fspan>\u003Cstrong>仅允许打印，其他全部禁止\u003C\u002Fstrong>\u003C\u002Fp>\n \u003Cpre>\u003Ccode>policy.DocumentPrivilege = PdfDocumentPrivilege.ForbidAll;\npolicy.DocumentPrivilege.AllowPrint = \u003Cspan>true\u003C\u002Fspan>;\n\u003C\u002Fcode>\u003C\u002Fpre>\n \u003Ch3>\u003Cspan>组合多个权限\u003C\u002Fspan>\u003C\u002Fh3>\n \u003Cp>\u003Cspan>所有权限属性可独立设置，互相不受影响。例如，允许高质量打印且允许复制内容，但禁止修改：\u003C\u002Fspan>\u003C\u002Fp>\n \u003Cpre>\u003Ccode>policy.DocumentPrivilege = PdfDocumentPrivilege.AllowAll;\npolicy.DocumentPrivilege.AllowPrint = \u003Cspan>true\u003C\u002Fspan>;\npolicy.DocumentPrivilege.AllowContentCopying = \u003Cspan>true\u003C\u002Fspan>;\npolicy.DocumentPrivilege.AllowModifyContents = \u003Cspan>false\u003C\u002Fspan>;\npolicy.DocumentPrivilege.AllowModifyAnnotations = \u003Cspan>false\u003C\u002Fspan>;\n\u003C\u002Fcode>\u003C\u002Fpre>\n \u003Ch2>\u003Cspan>补充：移除权限保护（解密）\u003C\u002Fspan>\u003C\u002Fh2>\n \u003Cp>\u003Cspan>若需解密已加密的 PDF，可使用所有者密码加载后调用 \u003C\u002Fspan>\u003Ccode>Decrypt()\u003C\u002Fcode>\u003Cspan>：\u003C\u002Fspan>\u003C\u002Fp>\n \u003Cpre>\u003Ccode>PdfDocument doc = \u003Cspan>new\u003C\u002Fspan> PdfDocument();\ndoc.LoadFromFile(\u003Cspan>\"受限文档.pdf\"\u003C\u002Fspan>, \u003Cspan>\"owner@2026\"\u003C\u002Fspan>);  \u003Cspan>\u002F\u002F 传入所有者密码\u003C\u002Fspan>\ndoc.Decrypt();\ndoc.SaveToFile(\u003Cspan>\"已解密.pdf\"\u003C\u002Fspan>);\n\u003C\u002Fcode>\u003C\u002Fpre>\n \u003Ch2>\u003Cspan>注意事项\u003C\u002Fspan>\u003C\u002Fh2>\n \u003Cul>\n  \u003Cli>\u003Cstrong>用户密码为空\u003C\u002Fstrong>\u003Cspan>：打开文档无需密码，但权限限制依然生效（由所有者密码持有者控制）。\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>加密算法\u003C\u002Fstrong>\u003Cspan>：\u003C\u002Fspan>\u003Ccode>AES_256\u003C\u002Fcode>\u003Cspan> 安全性最高，但旧版 PDF 阅读器可能不支持；如需兼容性，可使用 \u003C\u002Fspan>\u003Ccode>AES_128\u003C\u002Fcode>\u003Cspan>。\u003C\u002Fspan>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>免费版限制\u003C\u002Fstrong>\u003Cspan>：Free Spire.PDF 对文档页数有限制（通常为 10 页），超出部分可能无法处理。评估时可使用小型文件测试。\u003C\u002Fspan>\u003C\u002Fli>\n \u003C\u002Ful>\n \u003Ch2>\u003Cspan>总结\u003C\u002Fspan>\u003C\u002Fh2>\n \u003Cp>\u003Cspan>通过 \u003C\u002Fspan>\u003Ccode>PdfSecurityPolicy\u003C\u002Fcode>\u003Cspan>，开发者可以以面向对象的方式清晰管理 PDF 的加密和权限。只需几行代码，即可灵活控制打印、复制、修改等操作，满足企业文档安全需求。这种方案代码可读性强，易于维护，是处理 PDF 权限控制的推荐实践。\u003C\u002Fspan>\u003C\u002Fp>","在文档安全管理中，通过编程控制 PDF 的访问权限（如禁止打印、禁止复制等）是常见需求。本文使用 Free Spire.PDF for .NET 免费库，基于其 PdfSecurityPolicy 类，介绍如何用简洁的 C# 代码完成权限设置。 两种密码的角色 用户密码（User Password）：打开文档时输入的密码。若设为空字符串，则打开无需密码。 所有者密码（Owner Password）：用于控制文档权限的“管理密码”。持有者密码可以设置或解除各项操作限制。 用户密码决定“能否打开”，所有者密码决定“能做什么”。 环境准备 通过 NuGet 安装免费版包： PM> Install-Package FreeSpire.PDF 该免费版无功能水印，但有页数限制（前 10 页），适用于评估和小型项目。 核心类：PdfSecurityPolicy 该免费 PDF 库使用 PdfSecurityPolicy 及其派生类 PdfPasswordSecurityPolicy 来统一管理加密算法、密码和权限。此方式将各个关注点分离，代码更加清晰。 基本步骤 加载 PDF 文档 创建 PdfPasswordSecurityPolicy，传入用户密码和所有者密码 设置加密算法（如 AES-256） 通过 DocumentPrivilege 属性指定允许或禁止的操作 调用 doc.Encrypt(securityPolicy) 应用策略 保存文档 示例：禁止打印和复制，允许填写表单 using Spire.Pdf; using Spire.Pdf.Security; namespace PdfPermissionDemo { class Program { static void Main(string[] args) { \u002F\u002F 1. 加载 PDF PdfDocument doc = new PdfDocument(); doc.LoadFromFile(\"原始文档.pdf\"); \u002F\u002F 2. 创建密码安全策略 string userPwd = \"\"; \u002F\u002F 打开无需密码 string ownerPwd = \"owner@2026\"; \u002F\u002F 权限密码 PdfPasswordSecurityPolicy policy = new PdfPasswordSecurityPolicy( userPwd, ownerPwd); \u002F\u002F 3. 使用 AES-256 加密（更安全） policy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_256; \u002F\u002F 4. 设置权限 policy.DocumentPrivilege.AllowPrint = false; \u002F\u002F 禁止打印 policy.DocumentPrivilege.AllowContentCopying = false; \u002F\u002F 禁止复制 policy.DocumentPrivilege.AllowModifyAnnotations = false; \u002F\u002F 禁止修改注释 \u002F\u002F 允许填写表单（默认允许，如需禁用可设为 false） policy.DocumentPrivilege.AllowFillFormFields = true; \u002F\u002F 5. 应用加密策略 doc.Encrypt(policy); \u002F\u002F 6. 保存新文档 doc.SaveToFile(\"受限文档.pdf\"); } } } 权限属性一览 PdfDocumentPrivilege 类提供以下常用布尔属性，可单独设置： 属性 说明 AllowPrint 是否允许打印 AllowContentCopying 是否允许复制文本和图形 AllowModifyAnnotations 是否允许添加或修改注释 AllowFillFormFields 是否允许填写表单字段 AllowModifyContents 是否允许修改文档内容（非注释） AllowAssembly 是否允许插入\u002F旋转\u002F删除页面（仅 128 位及以上加密） 通常做法是： 若只允许少数操作，先 ForbidAll，再单独开启需要的项。 若只禁止少数操作，先 AllowAll，再关闭不需要的项。 示例：仅允许打印，其他全部禁止 policy.DocumentPrivilege = PdfDocumentPrivilege.ForbidAll; policy.DocumentPrivilege.AllowPrint = true; 组合多个权限 所有权限属性可独立设置，互相不受影响。例如，允许高质量打印且允许复制内容，但禁止修改： policy.DocumentPrivilege = PdfDocumentPrivilege.AllowAll; policy.DocumentPrivilege.AllowPrint = true; policy.DocumentPrivilege.AllowContentCopying = true; policy.DocumentPrivilege.AllowModifyContents = false; policy.DocumentPrivilege.AllowModifyAnnotations = false; 补充：移除权限保护（解密） 若需解密已加密的 PDF，可使用所有者密码加载后调用 Decrypt()： PdfDocument doc = new PdfDocument(); doc.LoadFromFile(\"受限文档.pdf\", \"owner@2026\"); \u002F\u002F 传入所有者密码 doc.Decrypt(); doc.SaveToFile(\"已解密.pdf\"); 注意事项 用户密码为空：打开文档无需密码，但权限限制依然生效（由所有者密码持有者控制）。 加密算法：AES_256 安全性最高，但旧版 PDF 阅读器可能不支持；如需兼容性，可使用 AES_128。 免费版限制：Free Spire.PDF 对文档页数有限制（通常为 10 页），超出部分可能无法处理。评估时可使用小型文件测试。 总结 通过 PdfSecurityPolicy，开发者可以以面向对象的方式清晰管理 PDF 的加密和权限。只需几行代码，即可灵活控制打印、复制、修改等操作，满足企业文档安全需求。这种方案代码可读性强，易于维护，是处理 PDF 权限控制的推荐实践。",2467,{"id":6,"kind":7,"title":11,"summary":13,"image":14,"href":15,"meta":17,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":37},"#2563eb","16 \u002F 10",[7,8],{"targetType":8,"targetId":9,"likedByMe":39,"likeCount":40,"commentCount":40,"contentLikeCount":40,"contentCommentCount":40,"sourceLikeCount":40,"sourceCommentCount":40},false,0,[42,51,57,63,72,79,85,92],{"id":43,"kind":7,"title":44,"summary":45,"image":46,"href":47,"meta":48,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":49},"NEWS_ARTICLE:927","HelloCrab - 短视频开源爬虫，仅供学习参考","HelloCrab 基于 Avalonia、Playwright、AI与 FFmpeg 的跨平台桌面采集器，支持9大平台，以及 Android、iOS、Browser 远程控制端。 Made By ChatGPT &amp; Vincent with ❤ 平台 是否接入 哔哩哔哩 ✅ 抖音 ✅ 快手","https:\u002F\u002Fwww.cnblogs.com\u002Fhupo376787\u002Fp\u002FScreenshot\u002FWindows.jpg","\u002Fnews\u002F927","2026 · 软件开发",[50],"软件开发",{"id":52,"kind":7,"title":53,"summary":54,"image":14,"href":55,"meta":48,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":56},"NEWS_ARTICLE:929",".NET 异常处理的\"暗门\"：代码里写满 catch，你依然能抓住它——从一个 AI Agent 运行时的源码说起","一个健壮的系统，必然到处都是有意的 catch；异常被消化不等于问题不存在。 观测与韧性，是一个硬币的两面——降级逻辑保证系统不崩，FirstChance 保证你能看见它为什么降级。","\u002Fnews\u002F929",[50],{"id":58,"kind":7,"title":59,"summary":60,"image":14,"href":61,"meta":17,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":62},"NEWS_ARTICLE:928","架构师化繁为简，执行者化简为繁","新手改三天，你改三行——反而是你显得更不重要。因为化繁为简做得越纯熟，产出看起来越小。这篇聊聊两种能力的辩证关系，以及为什么'看不见'的那部分工作，恰恰是最难的部分。","\u002Fnews\u002F928",[7,8],{"id":64,"kind":7,"title":65,"summary":66,"image":67,"href":68,"meta":69,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":70},"NEWS_ARTICLE:930","基于 vLLM+Nginx 构建负载均衡推理集群","企业内部私有环境部署大模型推理集群时，很容易遇到流量调度混乱、节点负载失衡、会话上下文丢失、接口缺少鉴权防护等一系列问题，单 vLLM 推理节点难以支撑并发请求。本文基于 Ubuntu 22.04 系统环境，搭建 Nginx + vLLM-Semantic-Router + vLLM-Router","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F1379525\u002F202609\u002F1379525-20260910165534385-2022408098.png","\u002Fnews\u002F930","2026 · 人工智能",[71],"人工智能",{"id":73,"kind":7,"title":74,"summary":75,"image":76,"href":77,"meta":69,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":78},"NEWS_ARTICLE:932","2026年AI编程工具大全，33个主流工具一次看懂","事情是这样的，前两天看到一张图，是某个社区官网的「支持的工具」清单，我数了数，整整31个AI编程工具。 两年前这份清单撑死5个，现在直接31个，而且我居然每一个都认识。。。 干脆整理成一篇，顺手把最近字节的TraeWork和豆包工作也补了进来，凑成33个。 今天给大家推荐一遍，每个工具说说它是干什么","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260909210838518.png","\u002Fnews\u002F932",[71],{"id":80,"kind":7,"title":81,"summary":82,"image":14,"href":83,"meta":17,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":84},"NEWS_ARTICLE:931","SH 中文化样例数据使用手册","在数据库演示与 PoC 场景中，Oracle 自带的 SH 示例模式虽然经典，但英文维度数据往往让国内演示效果打折扣。笔者整理了一套方案：保留 SH 标准英文对象名，同时装载中文化维度数据，并按参数生成可复现的销售历史数据，方便个人测试与概念验证。 01 | 环境准备 使用前请确认满足以下条件： O","\u002Fnews\u002F931",[7,8],{"id":86,"kind":7,"title":87,"summary":88,"image":89,"href":90,"meta":48,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":91},"NEWS_ARTICLE:933","写给 C++ 工程师的 OpenClaw.NET 上手指南：用你熟悉的 C++ 思维，跑起一个生产级 AI Agent","它像一个「基于 boost.asio + REST 端点的常驻服务」——对外是 HTTP \u002F WebSocket \u002F 各 IM 的 webhook，对内跑着一个能调工具、读写记忆、跨渠道对话的 AI Agent——只不过协程不用你手写 promise_type，内存不用你管 new\u002Fdelete。","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F510\u002F202609\u002F510-20260905070811424-1837144874.jpg","\u002Fnews\u002F933",[50],{"id":93,"kind":7,"title":94,"summary":95,"image":96,"href":97,"meta":69,"badge":10,"author":12,"stats":-1,"accent":35,"coverRatio":36,"tags":98},"NEWS_ARTICLE:935","[Agent Memory \u002F 强化学习] MemPO源码学习笔记 ---（1）--- 总体","[Agent Memory \u002F 强化学习] MemPO源码学习笔记 （1） 总体 目录[Agent Memory \u002F 强化学习] MemPO源码学习笔记 （1） 总体0x00 概要0x01 基础 &amp; 背景1.1 用RL训练记忆系统的要点1.2 主要难点1.3 主要思路1.4 RL训练方案1.","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F1850883\u002F202609\u002F1850883-20260906190854637-986949885.jpg","\u002Fnews\u002F935",[71]]