安装智能体技能
本指南介绍如何将 DotNetBrowser 智能体技能添加到您的项目,使 AI 编程智能体能够查阅 DotNetBrowser API 和文档。
如果 AI 编程智能体没有 DotNetBrowser API 的信息,它会根据训练数据猜测类型和成员的名称,而这些数据可能来自旧版本。DotNetBrowser 智能体技能为智能体提供这些信息。它是一个 Agent Skills 格式的文件夹,包含:
- 如何使用 DotNetBrowser 编写代码的说明;
- API 参考;
- DotNetBrowser 文档、发行说明和迁移指南的离线副本。
每个 DotNetBrowser 版本都有自己的技能,因此 API 参考与您构建时使用的版本一致。当任务涉及 DotNetBrowser 时,智能体会自行读取该技能。
技能安装在智能体的技能目录的 dotnetbrowser 子目录中:
| 智能体 | 项目中的技能目录 |
|---|---|
| Claude Code | .claude/skills/ |
| Codex | .agents/skills/ |
| Cursor | .cursor/skills/ |
| GitHub Copilot | .github/skills/ |
智能体在存储库根目录中查找技能,有些智能体还会在您启动它们的目录中查找。
您可以通过三种方式安装技能:
- 从 NuGet 安装到现有项目;
- 从 ZIP 存档复制到项目或主目录;
- 使用项目模板创建新项目。
安装到现有项目
通过 NuGet
DotNetBrowser.AgentSkills 软件包会在您构建项目时安装技能。它不会向您的应用程序添加任何程序集或运行时依赖项。
在项目目录中,添加与您的 DotNetBrowser 软件包版本相同的软件包:
dotnet add package DotNetBrowser.AgentSkills --version <version>
将 <version> 替换为您的 DotNetBrowser 软件包的版本,例如 4.3.3。该命令以 PrivateAssets="all" 添加软件包,因此它不会传递到引用您项目的项目。在 Visual Studio 中,您也可以使用 NuGet 软件包管理器添加软件包,如从 NuGet 安装中所述。这同样适用于使用 packages.config 的 .NET Framework 项目。
然后在项目文件中将 DotNetBrowserAgentSkillsAgent 属性设置为您的智能体:
| 智能体 | 值 |
|---|---|
| Claude Code | ClaudeCode |
| Codex | Codex |
| Cursor | Cursor |
| GitHub Copilot | Copilot |
<PropertyGroup>
<DotNetBrowserAgentSkillsAgent>ClaudeCode</DotNetBrowserAgentSkillsAgent>
</PropertyGroup>
您也可以不运行 dotnet add package,而是一步将软件包引用和属性添加到项目文件中。将 ... 替换为您的 DotNetBrowser 软件包的版本:
<PropertyGroup>
<DotNetBrowserAgentSkillsAgent>ClaudeCode</DotNetBrowserAgentSkillsAgent>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetBrowser.AgentSkills"
Version="..."
PrivateAssets="all" />
</ItemGroup>
构建项目时,技能会安装到项目目录中智能体的技能目录。这通常发生在编译代码之前,因此即使代码无法编译,技能也已就位。当软件包中的技能版本不同,或者已安装目录中缺少文件或多出文件时,构建会重新安装技能。
如果项目不在存储库根目录中,请改用 DotNetBrowserAgentSkillsDirectory 属性设置技能目录。在 Visual Studio 中创建的项目就属于这种情况,因为 Visual Studio 默认将项目放在解决方案的子目录中。例如,对于位于存储库根目录下一级的项目:
<PropertyGroup>
<DotNetBrowserAgentSkillsDirectory>..\.claude\skills</DotNetBrowserAgentSkillsDirectory>
</PropertyGroup>
请设置技能目录本身,而不是其 dotnetbrowser 子目录。相对路径从项目目录开始解析。如果同时设置了两个属性,则以技能目录为准。对于表中未列出的智能体,也请使用此属性,并设置该智能体文档中给出的技能目录。
MSBuild 不会展开 ~。如果技能目录位于主目录中,请以 $(UserProfile)(Windows)或 $(HOME)(Linux 和 macOS)作为路径的开头。
要在不构建项目的情况下安装技能,请运行:
dotnet msbuild <project_file> -restore -t:InstallDotNetBrowserAgentSkills
将 <project_file> 替换为您的项目文件的路径。如果未安装 .NET SDK,请将 dotnet msbuild 换成 msbuild 运行同一命令,例如在 Visual Studio 的开发人员命令提示符中。如果两个属性都未设置,该命令会将技能安装到项目目录中的 .agents/skills/dotnetbrowser/。在使用 packages.config 的项目中,-restore 不会还原软件包,因此请先在 Visual Studio 中还原。
请注意:
- 安装需要 MSBuild 16(Visual Studio 2019)或更高版本。
- 当多个项目共享一个技能目录时,请只在其中一个项目中设置该属性,而不要在
Directory.Build.props中设置。同时构建的项目之间的安装不会同步。 - 具有多个目标框架的项目只有在为所有目标框架构建时才会安装技能。只构建一个框架(例如使用
dotnet build -f net8.0)不会安装技能。设置了TargetFramework但同时继承了TargetFrameworks(例如来自Directory.Build.props)的项目也不会安装技能。请在该项目中清除TargetFrameworks,或运行上面的命令。 - 在静态图构建(
-graphBuild)中,具有多个目标框架的项目会在编译代码之后安装技能。 - Visual Studio 不会构建它认为已是最新的项目,因此也不会检查已安装的技能。请运行上面的命令以立即还原缺失的文件。
- 软件包只替换由它自己安装的目录。如果技能目录中已有从 ZIP 复制的
dotnetbrowser文件夹,请在第一次构建之前将其删除,否则构建会失败。
通过 ZIP
下载 DotNetBrowser 4.3.3 智能体技能并解压。存档中包含 dotnetbrowser 文件夹。
将此文件夹原样复制到存储库根目录中智能体的技能目录。要在所有项目中使用该技能,请改为将其复制到主目录中的技能目录:Claude Code 为 ~/.claude/skills/,Codex 为 ~/.agents/skills/,Cursor 为 ~/.cursor/skills/。
对于不支持 Agent Skills 格式的智能体,请将该文件夹放在存储库中的任意位置,并在智能体的规则或说明文件中引用 dotnetbrowser/SKILL.md。
创建带有技能的项目
DotNetBrowser 项目模板通过 --agent 选项添加技能:
dotnet new dotnetbrowser.console.app -o Example.Console --agent ClaudeCode
该选项接受 ClaudeCode、Codex、Cursor 或 Copilot。在 Visual Studio 中,创建项目时在 AI coding agent 字段中选择智能体。模板会将 DotNetBrowser.AgentSkills 软件包和 DotNetBrowserAgentSkillsAgent 属性添加到项目中,因此构建项目时会安装技能,如上文所述。
Visual Studio 默认在解决方案的子目录中创建项目,因此技能安装在该子目录中,而不是解决方案目录中。如果您在解决方案目录中启动智能体,请将 DotNetBrowserAgentSkillsDirectory 属性设置为解决方案目录中的技能目录,例如 ..\.claude\skills。
以这种方式创建的项目使用该软件包,因此下文中关于更新、版本控制和移除的 NuGet 说明同样适用。
有关从模板创建项目,请参阅快速入门指南。
更新
如果您从 NuGet 安装了技能,请将 DotNetBrowser.AgentSkills 软件包与 DotNetBrowser 软件包一起更新,然后构建项目。每次安装都会替换整个 dotnetbrowser 目录,因此不要在其中保存您自己的文件。如果您不小心修改了已安装技能中的文件,构建不会检测到这一改动。请运行安装命令以还原技能。
如果您从 ZIP 安装了技能,请用新存档中的 dotnetbrowser 文件夹替换原有的整个文件夹。
版本控制
如果您从 NuGet 安装了技能,请将已安装的 dotnetbrowser 目录添加到 .gitignore,因为软件包会在构建时重新安装它。请保留该目录中的隐藏文件 .dotnetbrowser-agent-skill:没有它,软件包不会替换该目录。
移除
要移除从 NuGet 安装的技能,请从项目中移除软件包引用和属性,然后删除已安装的 dotnetbrowser 目录。要移除从 ZIP 安装的技能,请删除 dotnetbrowser 文件夹。