资讯动态

PotatoTool 开发者指南:如何开发自定义 Skill 适配器与快捷指令模块(完整教程)

发布时间:2026/10/16 2:10:37 来源:尧图企业网站定制
网络安全应用安全桌面应用漏洞扫描渗透测试【免费下载链接】PotatoTool这款工具是一款功能强大的网络安全综合工具旨在为安全从业者、红蓝对抗人员和网络安全爱好者提供全面的网络安全解决方案。它集成了多种实用功能包括解密、分析、扫描、溯源等为用户提供了便捷的操作界面和丰富的功能选择。This tool offers robust network security solutions for professionals and enthusiasts. With features like decryption, analysis, scanning, and traceability, it provides a user-friendly interface and diverse functionality.项目地址https://gitcode.com/potato-security/PotatoTool点击查看免费下载PotatoTool 是一款面向安全从业者的 JavaFX 网络安全综合工具内置了 AI 自动渗透工作台。它的两大扩展点——Skill 适配器让 AI 调用工具能力与快捷指令模块一键命令/网页导航——都支持二次开发。本文带你快速上手这两套扩展机制从零写出并注册一个自定义 Skill 适配器并学会配置、生成快捷指令的 Skill 草案是面向 PotatoTool 开发者的完整指南。一、先认识两个扩展点PotatoTool 的扩展能力分为两条线分别对应不同的开发深度扩展点是什么开发成本最终效果Skill 适配器用 Java 实现接口把扫描/分析能力接入 AI 自动渗透工作台中AI 可在任务中主动调用你的能力快捷指令模块在配置文件中声明命令cmd或网页web条目低一键执行命令 / 打开网页并可生成 Skill 草案 简单理解快捷指令是给用户的按钮Skill 适配器是给 AI 的手。前者零代码配置即可用后者需要写 Java 代码。二、Skill 适配器的四大核心组件Skill 体系位于 aiPentest/skill/ 目录理解 4 个核心类即可开发1. SkillAdapter你要实现的接口SkillAdapter.java 只有 3 个方法是所有适配器的契约方法职责getDescriptor()返回 Skill 的身份证AI 靠它决定何时调用你execute(request, listener)真正执行能力的入口cancel()默认空实现长任务需覆写以支持停止2. SkillDescriptorSkill 的元数据SkillDescriptor.java 定义了 AI 认识你的全部信息开发时最常用这些字段new SkillDescriptor(potato.demo.check, Demo Check, 调用示例能力, SkillCategory.UTILITY, SkillRiskLevel.READONLY);id全局唯一标识注册时不能为空SkillRegistry.register() 会直接抛异常category5 选 1见 SkillCategory.javaRECON / SCAN / VULNERABILITY / REPORT / UTILITYriskLevel5 级风险见 SkillRiskLevel.javaREADONLY / PASSIVE / ACTIVE / INTRUSIVE / DANGEROUS请如实评估这决定审批策略scopeRequired / approvalRequired是否需要 Scope 范围约束、是否需要人工审批3. SkillCallRequest 与 SkillCallResult输入输出契约输入 SkillCallRequest.java携带callId、当前任务mission和输入参数inputs输出 SkillCallResult.java提供success / skipped / failed三种静态工厂并可挂接Evidence证据与Finding发现4. SkillExecutionListener过程汇报通道SkillExecutionListener.java 让你在长任务中汇报进度onProgress、提交证据onEvidence和发现onFinding工作台界面会实时展示。三、拆解官方内置示例PortScanSkillAdapter阅读内置适配器是学习最佳实践最快的方式。以 PortScanSkillAdapter.java 为例它的开发模式可以概括为 4 步第 1 步声明 SKILL_ID 与描述符L38-L58public static final String SKILL_ID potato.port.scan; this.descriptor new SkillDescriptor(SKILL_ID, Port Scan, 调用内置端口扫描能力识别开放服务, SkillCategory.SCAN, SkillRiskLevel.ACTIVE); this.descriptor.setScopeRequired(true); this.descriptor.setApprovalRequired(true);第 2 步execute 中监听事件、汇报进度L66-L161——通过事件适配器把底层扫描进度转发给listener.onProgress(...)让界面不卡死。第 3 步组装结构化结果——把扫描结果转成Evidence、Finding和putData(...)数据行供 AI 解读与报告输出。第 4 步覆写 cancel()L308-L311——停止底层扫描保证任务可中断。 值得注意所有提示文案都使用aipentest.skill.xxx形式的 i18n 键由 messages_zh_CN.properties 渲染方便多语言扩展。四、三步开发一个自定义 Skill 适配器以自定义端口核查为例最小可行适配器骨架如下public class MyDemoSkillAdapter implements SkillAdapter { public static final String SKILL_ID potato.demo.hello; private final SkillDescriptor descriptor new SkillDescriptor( SKILL_ID, Demo Hello, 示例能力输出任务目标信息, SkillCategory.UTILITY, SkillRiskLevel.READONLY); Override public SkillDescriptor getDescriptor() { return descriptor; } Override public SkillCallResult execute(SkillCallRequest request, SkillExecutionListener listener) { if (listener ! null) { listener.onProgress(1.0, aipentest.skill.demo.done); } return SkillCallResult.success(request.getCallId(), SKILL_ID, aipentest.skill.demo.summary, request.getMission().getConfig().getTargets().size()); } }注册到 SkillRegistry在 SkillRegistry.createDefault() 中加一行即可这是内置适配器的统一入口registry.register(new MyDemoSkillAdapter());自动元数据补齐SkillRegistry.applyDefaultMetadata() 会为未命中内置名单的适配器打上EXTERNAL_ADAPTER来源类型与ADAPTER_PATTERN支持状态L176-L179并在需要时补充场景与风险族标签。检查清单✅id非空且全局唯一建议potato.xxx.yyy命名风格✅ 风险级别如实声明涉及外发请求的开启scopeRequired✅ 长任务汇报进度并支持cancel()✅ 提示文案走 i18n 键避免硬编码中文✅ 参考 skill/builtin/ 下 20 余个现成适配器五、快捷指令模块零代码扩展1. 快捷指令的数据结构与配置位置快捷指令由 ExtensionConstants.java 定义的 5 个字段驱动title名称、describe说明、content命令或 URL、typecmd或web、icon图标。配置文件模板见 conf/config.json 的Extension节点L173-L199Extension: { 快捷指令: { 启动工具: [ { title: 启动Sqlmap, describe: 打开Sqlmap工作目录, content: open ~/Desktop/tools/sqlmap, type: cmd, icon: } ] } }运行时实际读取的是本地外部配置Windows 为%USERPROFILE%\.PotatoTool\config.jsonLinux/Mac 为$HOME/.PotatoTool/config.json需要大批量增删时直接编辑该文件即可。2. 界面行为点击执行、悬停操作界面逻辑在 PaneExtension.java点击条目触发 start()cmd类型走ProcessBuilder执行由 parseCommand() 解析引号web类型用系统浏览器打开 URL悬停条目出现 3 个操作按钮生成 Skill 草案 / 修改 / 删除L390-L421图标缺失时自动回退内置图标/img/bar/cmd.png、/img/bar/web.pngloadImageWithCache()3. 从快捷指令生成 Skill 草案点击生成 Skill按钮后generateSkillDialog() 会串联三个扩展类ExtensionSkillIndexer.java把配置项转为候选对象并自动推断风险含nmap、sqlmap等关键词会打上对应匹配提示addToolHints()检测到sudo、nc -e等危险命令则直接标记为DANGEROUShasDangerousCommandHint()ExtensionSkillCandidate.java承载草案数据分类、风险、匹配提示、输入/输出 SchemaExtensionSkillDescriptorEditor.java在 reviewSkillDraftDialog() 弹窗中让你审核分类、风险级别、Scope 约束、审批策略与 Schema确认后保存到配置的AiPentest.extensionSkills节点saveDraftDefinition()⚠️重要安全边界快捷指令生成的草案由 ExtensionSkillAdapter.java 承载默认禁用且只返回元数据绝不自动执行命令或打开网页——这是刻意设计的安全防线。要让能力真正被 AI 调用需按第二、三节方式实现真正的SkillAdapter。六、常见问题速查现象原因与解决注册时抛IllegalArgumentException描述符id为空见 SkillRegistry.java#L58-L64工作台找不到你的 Skill未调用register(...)或enabled被设为 false扩展草案默认禁用命令条目点击无反应content为空或 cmd 语法不被 parseCommand() 识别建议先用终端验证命令生成 Skill 提示暂不能生成条目缺少title/content或type不是cmd/web见 ExtensionSkillIndexer.java#L97-L113界面提示是英文键值提示未走 i18n请补充 messages_zh_CN.properties 中的键七、总结想快速扩展编辑config.json的Extension节点添加 cmd/web 快捷指令零代码即可用想接入 AI 工作台实现 SkillAdapter 接口、如实声明风险级别、在SkillRegistry注册参考 builtin 目录 的成熟示例安全是底线风险级别、Scope 约束与审批策略宁严勿松扩展草案保持禁用直至完成人工审核掌握这两套扩展机制后你就能把自有工具平滑融入 PotatoTool 的安全工作流。赞分享网络安全应用安全桌面应用漏洞扫描渗透测试【免费下载链接】PotatoTool这款工具是一款功能强大的网络安全综合工具旨在为安全从业者、红蓝对抗人员和网络安全爱好者提供全面的网络安全解决方案。它集成了多种实用功能包括解密、分析、扫描、溯源等为用户提供了便捷的操作界面和丰富的功能选择。This tool offers robust network security solutions for professionals and enthusiasts. With features like decryption, analysis, scanning, and traceability, it provides a user-friendly interface and diverse functionality.项目地址https://gitcode.com/potato-security/PotatoTool点击查看免费下载相关推荐CANN自动融合精度一致性说明Explanation of Automatic Fusion Module Precision Consistency Conclusion The auto人工智能模型编译AscendKiln开发者指南如何扩展自定义适配器和工具Kiln开发者指南如何扩展自定义适配器和工具 Kiln是一个强大的AI模型微调、合成数据生成和数据集协作平台让开发者能够轻松构建和扩展AI应用。本指南将详细人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用MLOps如何利用DartPad.dev在5分钟内创建你的第一个Flutter Web应用如何利用DartPad.dev在5分钟内创建你的第一个Flutter Web应用 DartPad.dev是一个功能强大的在线Dart编辑器支持控制台应用、We创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑