news 2026/9/8 3:18:53

开源终端AI代理opencode实战:多模型配置、Skills与Playwright测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开源终端AI代理opencode实战:多模型配置、Skills与Playwright测试

最近连续在好几个技术社区看到“opencode”这个名字频繁刷屏,尤其在 Claude Code 和 Codex CLI 这类终端 AI 编程助手陆续收紧免费额度、调整订阅策略之后,越来越多的开发者开始寻找一个“模型不被绑定、配置自己说了算”的替代品。opencode 就是当下关注度很高的那个开源终端 AI 代理,它不限定你只能用某一家模型,也不要求你必须用某个闭源生态,而是把模型路由、技能扩展、仓库上下文、前端自动测试等能力全部暴露在配置文件和 TUI 里,让每个开发者按自己的习惯组装工作流。本文不是官方文档翻译,而是我用它实际接手项目、跑通安装、接入免费模型、折腾 Skills 和 Memory 之后的一份完整记录,尽量把在这里面踩过的坑、想明白的逻辑、建议的配置顺序全部讲清楚,给正在观望或卡在某一步的朋友一份可直接照做的参考。

1. 它不是另一个 Claude Code:opencode 的开源基因与多模型思维

第一眼看到 opencode 的时候,很多人会下意识地把它归类为“又一个 Claude Code 平替”,但实际用下来,它和 Claude Code 不是同一个物种。Claude Code 是 Anthropic 官方出品的闭源终端工具,主推 Claude 系列模型;opencode 则是完全开源的项目,底层用 Go 编写,核心设计目标就是“模型无关”。它支持 Anthropic 的模型,也支持 OpenAI 兼容接口、Google Gemini、本地 Ollama、Groq、DeepSeek 或任意自定义的模型网关,甚至可以通过环境变量或配置文件动态切换。这意味着你可以今天用 Claude 处理复杂架构设计,明天换成 Gemini 的免费额度跑日常重构,后天再切换到本地小模型处理敏感代码,而整个操作过程只需要改几行配置或按一个快捷键,不用换工具。

这种“多模型优先”的思路,解决的是实际痛点。很多团队在用闭源 AI 编程工具时,最大的顾虑不是效果,而是被单一模型供应商锁住。模型价格调整、某个版本变笨、限流变严,你只能被动接受。opencode 的做法是把模型抽象成 provider 配置,让你把选择权拿回自己手里。我举个例子,我本地同时配置了 Anthropic 和 OpenAI 兼容的免费模型接口,当我想把“快速写一个脚本”和“深入理解整个业务模块”分开处理时,就可以分别指定不同的模型,成本、速度、质量都能按需取舍。

另外,opencode 不是简单的 API 转发器,它本身就是一个具备完整 agent 能力的终端程序。它能读取整个仓库结构,能理解 git 状态,能调用各种工具执行命令,能通过 Skills 机制扩展成“会写前端测试的 agent”或“能自主排查部署问题的 agent”。它的 TUI 界面做得很克制,但信息密度很高,操作起来有点像在 VS Code 里用终端和侧边栏的组合体。

下表是我实际对比 opencode、Claude Code 和 Codex CLI 之后的核心差异,不是参数堆砌,而是我日常使用中最有体感的几个维度。

维度opencodeClaude CodeCodex CLI
是否开源是(GitHub 上可查源码)
默认模型无,需自行配置 providerClaude 系列OpenAI 系列
多模型切换原生支持,可配置多个 provider 并随时切换限定 Claude 模型,且大多需要订阅主要限定 OpenAI 模型,有代码库感知能力
技能扩展(Skills)原生支持,以文件形式组织近期更新也开始支持支持有限,主要通过 MCP 扩展
记忆(Memory)有专门的 memory 机制,可跨会话保留项目约定有 memory 功能,但受官方限制较多没有强记忆功能
前端自动测试官方集成了 Playwright 相关能力需要额外配置或依赖 MCP需要额外配置
本地模型接入很好,本地 Ollama 直接可用一般,需要复杂配置有限制,不建议

这个表格可能随着版本迭代而变化,但至少在我写这篇文章的时候,opencode 的“自由 + 开源 + 多模型”定位在同类工具里是独一份的。如果你是一个喜欢掌控每个环节的开发者,或者你就是担心“工具越来越贵、选择越来越少”,那 opencode 非常值得认真尝试。

2. Windows 下的安装滑铁卢:解决“cmdlet 无法识别”的完整链条

opencode 的安装方式其实不算复杂,但 Windows 下的报错非常劝退。很多新手在 PowerShell 里执行完官方安装命令后,紧接着运行opencode --version,却看到红彤彤的一句:opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名。这个报错几乎霸占了所有搜索词榜首,也让不少人直接放弃。其实问题核心就一个:二进制文件已经下载了,但你的终端找不到它在哪儿。

2.1 三种安装方式的路径差异

opencode 官方推荐的安装方式是执行安装脚本,它会根据你的系统自动下载对应平台的二进制文件。以 Windows 为例,脚本默认会把可执行文件安装到用户目录下的一个隐藏文件夹里,比如C:\Users\你的用户名\.opencode\bin\。装完之后,它在终端里能不能被直接识别,完全取决于这个路径有没有加到系统环境变量PATH中。

另外两种常见安装方式是go install和包管理器安装。如果你本地已经装好了 Go 环境,可以执行:

go install github.com/sst/opencode@latest

这样生成的二进制会放到 Go 环境的 bin 目录下,通常是C:\Users\你的用户名\go\bin,同样需要这个目录在PATH里。第三种是通过 npm 或其他包工具间接安装,这类方式一般会自动把命令链接到全局 node 目录,但也会出现路径不匹配的情况。

2.2 完整的排查套路

我建议所有的 Windows 用户遇到这个报错后,按照下面的顺序排查:

  1. 先确认安装到底有没有成功。手动切换到安装目录,比如cd C:\Users\你的用户名\.opencode\bin,然后直接运行.\opencode.exe --version。如果这里能正常输出版本号,说明二进制没问题,纯粹是 PATH 问题。
  2. 检查当前终端的 PATH 是否包含上述目录。在 PowerShell 里执行echo $env:PATH,看看输出里有没有.opencode\bin或类似的路径。如果没有,就说明安装脚本没有自动帮你配置。
  3. 手动把 bin 目录加到用户环境变量。在 PowerShell 里可以直接执行下面这行,把路径永久写入用户级环境变量:
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:USERPROFILE\.opencode\bin", "User")

注意:执行完这个命令后,必须关闭并重新打开终端窗口,或者执行refreshenv(如果你装了 Chocolatey),否则当前会话不会自动更新 PATH。

  1. 如果手动执行二进制文件时报了其他错误,比如缺少 DLL 或提示系统找不到指定的路径,那大概率是下载的二进制版本不完整或被杀毒软件隔离了。检查一下 Windows Defender 的“保护历史记录”,有概率会把首次下载的未知 exe 拦截掉。你需要在威胁里选择“允许”,然后重新下载安装。
  2. 还有一种常见情况是,你用的是 Windows Server 或某些精简版系统,PowerShell 的执行策略限制导致脚本无法运行,但这通常报的是“无法加载文件...因为在此系统上禁止运行脚本”,而不是“cmdlet 无法识别”。碰到这种问题先执行Get-ExecutionPolicy看看返回,如果是Restricted,需要以管理员身份运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,然后再重新执行安装脚本。

2.3 我踩过的一个隐藏坑

这里我想分享一个不是所有人都会遇到、但真的很坑的低级错误:安装脚本下载的二进制名称可能不叫opencode.exe,而是带平台和后缀的名称,比如opencode-windows-amd64.exe,安装脚本一般会做重命名,但如果你是从 GitHub Releases 页面手动下载的,很容易忘记重命名。这时候你执行opencode当然会提示无法识别,因为那个文件的真实名称是另一个。解决办法很简单,把下载的文件重命名为opencode.exe,然后放到PATH已包含的目录中。

我个人现在比较倾向于用 Go 安装方式,因为go install会自动处理好平台命名和路径,除非你无法访问 Go 模块代理,否则这条路线最省心。另外,如果你安装的是桌面版或者通过 VS Code 插件间接使用 opencode,其实不需要在系统终端里配置opencode命令,插件自带内置终端,会自己找到二进制路径。所以报这个错只影响命令行调用,不影响插件使用。

3. 配置文件的每个字段都值得研究:模型路由、免费额度与网络适配

安装跑通只是第一步,真正让 opencode 好用起来的是配置。opencode 的配置文件通常存放在用户目录下的.config/opencode/文件夹中,核心是一个 JSON 文件,比如opencode.json。你需要在这里声明要接哪些模型、模型的 API Base URL、API Key 从哪个环境变量读取、默认使用哪个模型、以及上下文窗口长度等参数。第一次打开会生成默认配置,但默认配置往往只包含少数几个 provider 的示例,你大概率需要手动改一改。

3.1 多 Provider 配置的底层逻辑

opencode 的配置模型可以简单理解成:

  • provider:模型供应商,比如 Anthropic、Google、OpenAI、Groq、Ollama、OpenAI Compatible 等。
  • model:具体的模型名称,比如claude-sonnet-4-20250514gemini-2.0-flashqwen2.5-coder:32b
  • env:该模型需要的环境变量映射,比如从环境变量ANTHROPIC_API_KEY读取 key。
  • capabilities:该模型支持的功能,比如是否支持工具调用、是否支持长上下文。

我个人的习惯是把所有 API Key 通过环境变量注入,避免直接写在 JSON 文件里。如果你把 key 明文写在配置里,下次不小心将配置示例分享到公开平台,就等于泄露了账号。opencode 在读取配置时会自动展开环境变量,比如这样写:

{ "$schema": "https://opencode.ai/config.json", "provider": { "anthropic": { "env": { "ANTHROPIC_API_KEY": "{env:ANTHROPIC_API_KEY}" } } } }

这样配置里只有变量的引用,实际 key 完全由运行环境提供,安全很多。

3.2 免费模型怎么接:以 Gemini 和 Groq 为例

很多朋友关注 opencode 就是因为不想继续付费订阅 Claude,或者希望用免费的模型额度来跑一些简单任务。这里必须提醒:没有绝对的“完全免费且无限量”,但确实有几个官方有免费试用额度的入口,接入速度也很快。

以 Google Gemini 为例,你先去 AI Studio 申请一个免费 API Key,然后在 opencode 配置里加一个 provider,把 API Base URL 指向https://generativelanguage.googleapis.com/v1beta/openai/,因为 Gemini 提供一个 OpenAI 兼容端点。配置片段长这样:

{ "provider": { "google": { "npm": "@ai-sdk/google", "name": "Google", "options": { "baseURL": "https://generativelanguage.googleapis.com/v1beta/openai/", "apiKey": "{env:GEMINI_API_KEY}" }, "models": { "gemini-2.0-flash": { "name": "Gemini 2.0 Flash" } } } }, "model": "google/gemini-2.0-flash" }

这里用到了一个常见的 provider 扩展机制:通过@ai-sdk/google这个 SDK 桥接包来让 opencode 能识别 Google 的模型。不同 provider 的包名不同,opencode 支持自动加载 npm 上的 AI SDK provider 包,这也是它能够扩展大量模型供应商的重要原因。

Groq 的接入方式类似,只是 baseURL 换成 Groq 的地址,API Key 从 Groq 控制台获取。Groq 的亮点是推理速度极快,特别适合需要快速迭代的小任务,但免费额度的频率限制比较高,不适合长时间的代码理解任务。

3.3 为什么有用户说“opencode go 需要配合 cc switch”

热词里出现了“opencode go 需要配合 cc switch 等工具”,这里我解释一下背景。ccswitch 是一个用来管理多个“终端 AI 编程工具”配置的命令行工具,早期主要是为了在多个 Claude Code 账号或多种 provider 配置之间快速切换。因为 opencode 本身也支持多 provider,很多人会把 opencode 和 ccswitch 配合使用,让 ccswitch 负责把ANTHROPIC_API_KEYOPENAI_API_KEY等环境变量按当前选中的方案注入,然后启动 opencode 时自动使用该方案。

我个人的看法是,如果你只是单机单用户,直接用 opencode 自带的配置切换就够了,没必要引入额外工具。但如果你的团队里有不同的开发环境需求,或者你同时维护了个人账号和公司账号,ccswitch 确实能帮你减少很多手动改环境变量的动作。本质上,这和使用 dotfiles 管理 zshrc 是一样的思路:把环境配置集中管理,随时切换。

至于“mvn 配置”这个热词,我猜测多半是指在用集成环境或特定镜像源时遇到的问题。opencode 本身不依赖 Maven,但如果你的开发环境里把下载命令包装成了 mvn 插件风格,或者你在企业内网里通过私有 maven 代理来拉取工具,那么你要注意把二进制的安装目录正确暴露给终端,同时确保下载时使用的 HTTPS 代理环境变量(比如HTTPS_PROXY)与公司网络的访问策略一致。如果网络适配不正确,安装脚本可能只下载了一个不完整的文件,或者下载到错误的内容,后续自然会出现各种诡异报错。这属于把 opencode 放进复杂企业环境时才会遇到的配置问题,个人用户基本不用关心。

4. 真正拉开体验差距的进阶玩法:Skills、Memory、Superpowers 与 Playwright 实测

opencode 基本功能用顺手之后,你会有一种“这只是一个能跑 AI 的终端”感觉,但等你接触到它更上层的扩展机制,才会意识到它的天花板很高。这里我挑四个最有用的方向详细说,分别是 Skills 技能包、Memory 长期记忆、Superpowers 技能库,以及 Playwright 自动修复前端 Bug的实际流程。

4.1 Skills:让 agent 从“会聊天”变成“会干活”

Skills 机制是 opencode 让我最惊艳的地方。简单来说,你可以写一个满足特定格式的 Markdown 文件,告诉 opencode 在什么样的条件下、按照什么样的步骤去处理任务。这个文件可以放在项目根目录的.opencode/skills/下,也可以放到全局配置目录,让它对所有项目生效。

举个例子,我经常处理“修复前端样式错乱”的任务。以前我要手动跟 agent 描述需求、给截图、给报错信息,现在直接定义一个fix-frontend-css的 skill,里面写清楚:第一步,识别浏览器控制台里的 CSS 错误;第二步,定位相关组件文件;第三步,对比设计稿或功能描述;第四步,输出修改后的代码并验证。当我在 opencode 里输入/fix-frontend-css时,它就会按这个流程自动执行,而不用我每次重复说一遍。

Skills 的逻辑一点都不神秘,它就是把特定领域的执行经验沉淀下来,类似老程序员带新人的“操作手册”。你不需要写复杂的代码,只需要用自然语言加一点结构化标记描述清楚流程就行。不同类型的任务可以拆成不同的 skill,比如“代码审查”“写单元测试”“分析内存泄漏”“按 Git 历史定位回归 Bug”等等。团队可以一起维护一套 skills,相当于把团队的 AI 使用最佳实践固化在仓库里。

4.2 Memory:让 agent 记住项目上下文,而不是每次都聊新朋友

另一个杀手级功能是 Memory。在没有 Memory 的情况下,你每次和 opencode 对话,它都像是第一次来这个项目,需要重新读文件、重新理解上下文。有了 Memory 之后,opencode 会把项目中的常量、架构约定、常用命令、测试方式等以结构化形式保存下来,在后续会话中自动调用。

我实际使用的场景是:我让 opencode 记住这个项目的构建命令是pnpm build,测试使用 Vitest,后端接口统一带x-api-key头。过了几天我再打开一个新会话让 opencode 加一个接口时,它会直接按这些约定输出代码,不需要我再重新说明。调试体验提升非常明显。

Memory 功能通常会配合一个memory/目录或专门的索引文件来存储记忆内容,你可以在配置里指定要忽略哪些文件,或者按项目/全局区分记忆。有一点注意:Memory 不是万能也不是无限上下文,它存储的更多是“精简的项目事实”,而不是把整个代码仓库都塞进去。真正的大仓库理解还是要靠 agent 按需读取源码。

4.3 接入 Superpowers:为什么它能成为热词

热词里出现“opencode 接入 superpower”“opencode 安装 superpowers”,这个 Superpowers 其实是社区里一个非常出名的 skills 合集/插件包,最初是给 Claude Code 做增强的,后来很多能力也兼容 opencode。它提供了一堆现成的技能模块,比如“深度依赖分析”“结构化重构”“测试驱动开发”“代码设计评审”等等,把常见的工程实践做成了可直接调用的行为模式。

我自己接入之后的感觉是:接入前 opencode 是一个“聪明但需要自己下指令”的助手;接入后它更像是一个“知道标准工程流程”的资深工程师。比如我让它实现一个复杂的功能,它不再直接闷头写代码,而是先自己检查现有代码风格、列出影响面、写测试计划,再开始实现。虽然每一步的模型推理消耗变多了,但整个过程的稳重感很像一个有经验的同事。

Superpowers 的安装方式在它的文档里写得很清楚,opencode 用户只需要把它的 skills 目录链接到自己的全局 skills 目录,然后在配置里启用对应的入口即可。它和 opencode 原生的 Skills 机制完全兼容,不存在“又要换一套系统”的问题。

4.4 用 opencode + Playwright 实测一个前端 Bug 修复

很多人搜“opencode playwright 怎么测试前端 bug”,是因为 opencode 自带了与 Playwright 配合的能力,可以让 agent 自己写浏览器自动化脚本、跑测试、捕获截图、分析失败原因。我实测了一个非常典型的前端 Bug 场景:一个按钮在某种屏幕宽度下点击不了。

我让 opencode 用 Playwright 打开本地页面,分别在不同视口尺寸下点击按钮并发起支付请求,同时收集控制台日志和网络请求。opencode 写了一个临时脚本,使用无头浏览器跑完一轮之后发现:视口宽度小于 640px 时,按钮被另一个透明遮罩层覆盖,点击事件根本到不了按钮上。它自己定位到了那个遮罩层的 CSS 规则,然后给出修复建议:修改 z-index 或让遮罩层在移动端不拦截点击事件。

整个排查过程大概 5 分钟,比我手动打开 DevTools 去模拟器上点来点去快得多。这个能力的核心价值是把“复现 Bug → 定位 Bug → 验证修复”这套链路交给 agent 自动执行。当然,Playwright 测试脚本偶尔会出现登录态、权限、接口鉴权等问题,需要你提前处理好测试环境。我的建议是至少准备一个专门用于自动化测试的账号和一套可控的 mock 数据,否则 agent 写出的脚本大概率会被环境问题卡住。

5. 用了三周后,我必须告诉你的几个坑和习惯

最后这部分是我在真实项目里摸爬滚打出来的经验,不是要否定 opencode,而是希望让后来人少走弯路。它很好很强大,但它不是一个“零成本”的工具,你需要理解它的脾气,才能把它用好。

5.1 不断裂的上下文反而是最大的敌人

很多朋友刚用 opencode 时,习惯像用 ChatGPT 一样从头聊到尾,一个会话里塞几千行需求,希望 opencode 全部记住。实测下来效果很差,因为即便是长上下文模型,当项目文件特别多时,agent 的注意力也会被无关信息稀释。更好的做法是把大需求拆成几个小任务,每个任务用一个新会话,同时利用 Memory 保存全局约定。我的习惯是:新功能开发分三步走——先让 agent 输出技术方案,确认后再写骨架代码,最后再做测试和优化。每一步都是独立的会话,但 Memory 让它们之间有记忆衔接。

5.2 环境变量和 API Key 的管理必须从第一天就做好

opencode 的灵活性依赖于各种 provider 配置,如果你把 API Key 明文写在 JSON 里,以后分享配置、上传仓库、截图时都非常危险。记住一个原则:所有 Key 一律通过环境变量引用。我还会额外在.gitignore中忽略全局配置目录,避免误提交。团队协作时建议统一维护一个.env.example,每个人复制成自己的.env再填入真实 key,这样既安全又高效。

5.3 不要盲目堆 skills:有用的技能要精,不要多

第一次看到 Skills 机制时,我下载了一大堆社区技能包,觉得功能多多益善。结果 opencode 每次启动都要扫描全部技能,响应速度变慢不说,agent 经常搞混你的意图,反而从一个排列组合的问题里选了一个无关技能执行。后来我把 skills 精简到只剩三四个频繁使用的,其他任务直接在对话里用自然语言描述。这个体验立刻好了很多。技能是你的团队“方法论”的沉淀,不是越多越好,越精准越好。

5.4 接手老项目的正确姿势:先让 opencode 生成项目地图

很多开发者查找“opencode 接手开发项目”,说明他们关注的是如何让 AI 快速理解一个陌生仓库。我经过几次失败总结出一个有效流程:第一步,让 opencode 读取READMEpackage.jsondocker-compose.ymldocs等重点文件,生成一张项目架构地图,包括模块职责、技术栈、脚本命令、部署方式。第二步,用 Memory 把这个地图的关键信息保存下来。第三步,再开始让你改代码。如果不做这一步,直接让 AI 改一个你不熟悉的老文件,它经常会改到非核心位置,甚至因为没理解全局设计而引入重复逻辑。

5.5 桌面版与 IDE 插件:什么时候用哪个

opencode 的 TUI 版本适合重度使用场景:你愿意开着终端,通过快捷键高效操作,享受纯 CLI 的极简体验。桌面版更适合那些不习惯终端操作的人,它有图形界面,能更直观地展示对话、文件树、技能列表,但更新节奏可能比 CLI 落后一些。VS Code 插件和 JetBrains 插件的定位则是“在你的 IDE 里直接使用 opencode”,适合把 AI 作为“第二编辑器”的场景,比如在写代码的同时让 agent 在旁边分析报错、生成测试。

我自己的组合是:日常编码用 JetBrains 插件,批量任务或复杂项目分析用 TUI,偶尔给不懂命令的同事演示时用桌面版。三个版本共享同一套配置文件和 Memory,切换几乎没有成本。需要注意的是,插件依赖系统里已经装好的 opencode 二进制,所以如果你之前安装报错,插件也会连带失效。所以先把核心安装问题解决,再谈用哪个客户端。

最后再分享一个我在实际使用中体会很深的点:opencode 的价值不只在于省下每个月几十美元的订阅费,而是它把“AI 辅助开发”从黑盒变成了透明可审计的流程。你在配置里写的每个 provider、每个 skill、每段 memory,都是自己亲手搭建的开发基础设施。这种掌控感,比任何闭源工具默认给你的一揽子解决方案都更让人安心。如果你还在犹豫要不要迁移,我建议先用免费模型额度跑到一个自己熟悉的小项目上,跑通一次完整的“安装→配置→修 Bug→重构”流程,再来判断它适不适合长期使用。至少就我目前的使用深度而言,我回不去了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 3:18:28

Agent Skills实战:从概念到代码,打造大模型智能体技能包

现在的大模型应用开发,已经慢慢从“单次问答”走向“多工具协同”和“智能体自主完成任务”。不少同学在看完各种 Agent 科普后,仍然会有一个困惑:模型能力再强,怎么让它真正帮我执行一个复杂任务?比如“帮我整理一个目…

作者头像 李华
网站建设 2026/9/8 3:18:10

猜数字游戏:从C语言基础到工程实践的最佳入门项目

说到C语言入门,有一个项目几乎每个人都绕不开,那就是猜数字游戏。不管是初学者刚上手,还是准备计算机二级考试,甚至很多嵌入式方向的朋友第一次写小工具,都会拿它练手。我见过至少几十个从这十几行代码起步的人&#x…

作者头像 李华
网站建设 2026/9/8 3:18:03

Prisma3D作品发布安全指南:从建模到原创申诉的工程化流程

深夜一点,你把 Prisma3D 里的角色动画终于调好了,导出渲染视频,传到短视频平台,配上一段节奏感很强的 BGM。第二天醒来,打开消息栏,看到的不是播放量上涨,而是一条“作品疑似搬运或非原创&#…

作者头像 李华
网站建设 2026/9/8 3:17:16

小语文稿免费替代Typora,本地离线Markdown写作工具实操指南

之前被 Typora 右下角弹窗提示搞到心态崩溃的应该不止我一个:要么找激活码,要么花 89 元买授权。网上搜出来的序列号要么失效,要么来源不明,点进去还怕附带安全问题。后来我干脆换了一种思路:Markdown 编辑器本来就不是…

作者头像 李华
网站建设 2026/9/8 3:16:18

从“新地图发布”到“新系统上线”:僵尸模式地图的工程全貌

从“新地图发布”到“新系统上线”:一个僵尸模式地图的工程全貌很多人看到“亡者再临 v1.2.0 正式发布!!!”这类公告,第一反应是“又有新地图可以玩了”。但如果你真在一线做过游戏开发,看到这行字的第一反…

作者头像 李华
网站建设 2026/9/8 3:16:15

Nessus Essentials免费漏洞扫描工具安装与实战教程

Nessus 是目前使用范围很广的漏洞扫描工具,无论是在安全团队做渗透测试、在运维部门做基线核查,还是在服务器上线前做安全自查,基本都会用到它。很多新手第一次搜教程,看到的却是“破解版”“一键激活”这一类内容。我的建议是&am…

作者头像 李华