KPBot is an LLM-based AI agent for application and code performance optimization on Kunpeng platforms.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 17 小时前 | ||
| 14 小时前 | ||
| 15 小时前 | ||
| 13 小时前 |
KPBot
面向鲲鹏/ARM 生态的高性能计算工具集,为 Claude Code 和 OpenCode 提供专业的性能分析与优化插件。
插件列表
| 插件 | 类别 | 描述 |
|---|---|---|
| code-optimizer | performance | 鲲鹏/ARM 代码优化 — 自动化 C/C++ 性能分析与优化 Pipeline(36 skills) |
| app-tuner | performance | 应用级调优 — 针对具体应用场景的深度性能调优 |
即将推出
| 插件 | 类别 | 描述 |
|---|---|---|
| system-profiler | analysis | 系统 profiling — 系统级性能分析与瓶颈定位 |
| x86-to-arm | migration | x86 到 ARM 平台迁移 — 代码移植、指令映射、兼容性分析 |
安装
KPBot 提供统一的安装脚本 install.sh,同时支持 Claude Code 和 OpenCode。
前置条件
git clone https://atomgit.com/openEuler/KPBot.git
# 已 clone 的仓库:cd KPBot && git pull
用法
install.sh [level] [tool] [install_path]
| 参数 | 可选值 | 默认值 | 说明 |
|---|---|---|---|
level |
project / global |
project |
安装级别:项目级或全局级 |
tool |
claude / opencode |
claude |
目标 AI 编码工具 |
install_path |
任意路径 | 当前目录 | 项目级安装的目标路径 |
安装示例
# 项目级安装(Claude Code,当前目录)
/path/to/KPBot/install.sh
# 项目级安装(OpenCode,指定路径)
cd /path/to/your-c-project
/path/to/KPBot/install.sh project opencode
# 全局安装(Claude Code)
/path/to/KPBot/install.sh global claude
# 全局安装(OpenCode)
/path/to/KPBot/install.sh global opencode
安装路径
| 工具 | 项目级 | 全局 |
|---|---|---|
| Claude Code | .claude/skills/ + CLAUDE.md |
~/.claude/skills/ + ~/.claude/CLAUDE.md |
| OpenCode | .opencode/skills/ + AGENTS.md |
~/.config/opencode/skills/ + AGENTS.md |
安装脚本自动完成
- Skills 拷贝 — 将插件技能拷贝到目标工具的 skills 目录
- Claude Code:拷贝全部 36 个 skills(claude 格式)
- OpenCode:先拷贝全部 skills 作基底,再用
opencode/覆盖层替换 26 个差异文件为 opencode 格式,并跳过 2 个 claude-only skill(共 34 个)
- 配置文件 — 当仓库根目录存在
CLAUDE.md时生成CLAUDE.md(Claude Code)或AGENTS.md(OpenCode);不存在则跳过 - 冲突处理 — 已有文件时支持覆盖/合并/跳过(全局模式交互选择)
- 健康检查 — 验证安装完整性并生成
kpbot-manifest.json
验证安装
# OpenCode
opencode debug skill | grep optimize # 确认 skills 已注册
# Claude Code
# 启动 claude 后,skills 会根据上下文自动激活
使用指南
快速上手:一句话优化
安装后直接在 Claude Code 或 OpenCode 中用自然语言描述你的优化需求:
帮我优化 matrix_multiply 函数,目标平台是 Kunpeng-0xd01
分析这个热点函数的性能瓶颈,给出优化建议
用 NEON 指令向量化这个循环
主要入口
| 场景 | 告诉 AI | 底层技能 |
|---|---|---|
| 完整优化流程 | "帮我优化这个项目的性能" | optimize-pipeline |
| 逐函数交互优化 | "逐函数分析并优化这个模块" | interactive-optimizer |
| 查 ARM 指令 | "查询 vaddq_f32 的用法" | arm-instructions-query |
| SPE 采样分析 | "用 ARM SPE 分析缓存 miss" | arm-spe-analysis |
优化 Pipeline 流程
完整优化 Pipeline 分 6 个阶段自动执行:
准备阶段 分析阶段 决策阶段 执行阶段 验证阶段 审查阶段
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ gather- │ │ analyze- │ │ decide- │ │ apply- │ │ verify- │ │ adversarial │
│ context │→ │ hotspot │→ │ optimization│→ │ optimization│→ │ optimization│→ │ review │
│ parse-intent│ │ analyze- │ │ │ │ (向量化/ │ │ (编译/测试/ │ │ (挑战所有 │
│ prepare- │ │ caller │ │ │ │ 循环展开/ │ │ 性能对比) │ │ 声明) │
│ project │ │ │ │ │ │ 预取/...) │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
每个阶段对应一个独立的 skill,由 LLM 按序调用。
可用技能列表
Claude Code 安装全部 36 个 skill;OpenCode 安装 34 个(跳过 2 个 claude-only)。
点击展开完整列表
分析类
analyze-hotspot— 热点函数动态+静态分析analyze-architecture— 代码仓库架构分析analyze-caller-context— 调用上下文 14 维度分析analyze-testcase— 测试用例性能画像分析arm-spe-analysis— ARM SPE 采样分析register-pressure-analysis— 寄存器压力诊断
优化类
apply-vectorization— NEON/SVE/SME 向量化apply-optimization— 优化策略路由执行apply-generic-optimization— 通用优化(兜底)asm-optimization— 汇编级优化(LDP/STP/后索引等)loop-unrolling— 循环展开branch-elimination— 分支消除operation-fusion— 操作融合prefetch-optimization— 软件预取memory-access-optimization— 访存模式优化(AoS→SoA 等)scalar-vector-hybrid— 标量/矢量混合决策source-transform-autovec— 源码变形辅助自动向量化precision-transform— 精度变换special-case-optimization— 特例快路径compiler-flag-tuning— 编译选项调优
Pipeline/编排类
optimize-pipeline— 完整优化 Pipeline(Subagent 编排)optimize-pipeline-workflow— 完整 Pipeline(Workflow 工具版)interactive-optimizer— 交互式逐函数优化gather-context— 上下文收集parse-intent— 意图解析prepare-project— 项目准备与基线建立decompose-tasks— 任务分解与排序decide-optimization— 优化策略门控drive-claude-optimize-pipeline— 驱动 Claude 执行 Pipeline (claude-only)batch-drive-optimize-pipeline— 批量自动化评估 (claude-only)
平台知识
kunpeng_microarch— Kunpeng-0xd01/0xd03/0xd06 微架构知识库arm-instructions-query— ARM 指令集查询(1527+ 条)
质量保障
verify-optimization— 编译+测试+性能验证adversarial-review— 对抗性审核fix-code— 编译/测试错误修复evolve-skill— 技能持续进化
常用操作示例
1. 完整 Pipeline 优化
> 帮我用 optimize-pipeline 优化 src/math/matrix.c 中的 matmul 函数,
测试用例是 tests/test_matmul,目标平台 Kunpeng-0xd01
Pipeline 会自动执行:项目准备 → 性能基线 → 热点分析 → 策略决策 → 代码优化 → 验证 → 审查。
2. 查询 ARM 指令
> vmlaq_f32 和 vfmaq_f32 有什么区别?哪个在 Kunpeng-0xd01 上更快?
3. 热点函数分析
> 用 perf record 采样 ./my_app,找到 CPU 热点函数和调用链
4. 向量化一个循环
> 用 NEON intrinsics 向量化下面这个求和循环:
for (int i = 0; i < n; i++) sum += a[i] * b[i];
5. 微架构分析
> 用 perf stat 分析 ./my_app 的 IPC、缓存 miss 和分支预测失败
插件机制
KPBot 采用插件化架构,每个插件独立封装,通过 marketplace 统一管理。
架构概览
marketplace.json ← 顶层 marketplace 索引(Claude Code)
├── code-optimizer ← 插件(plugin.json + skills/)
└── app-tuner ← 插件(plugin.json + skills/)
- Marketplace(
.claude-plugin/marketplace.json):顶层插件索引,声明所有可用插件及其元信息 - Plugin(
Plugins/<name>/.claude-plugin/plugin.json):单个插件的清单文件,定义名称、版本、描述、关键词等 - Skills(
Plugins/<name>/skills/):插件的技能目录,每个技能包含一个SKILL.md
Claude Code Marketplace
# 安装整个 marketplace
claude plugins marketplace add https://atomgit.com/openEuler/KPBot.git
# 安装单个插件
claude plugins install code-optimizer --marketplace kpbot-marketplace
卸载
OpenCode
# 项目级:删除 skills 目录和配置文件
rm -rf .opencode/skills/
rm -f AGENTS.md
# 全局级
rm -rf ~/.config/opencode/skills/
rm -f ~/.config/opencode/AGENTS.md
Claude Code
claude plugins uninstall code-optimizer
claude plugins marketplace remove kpbot-marketplace
常见问题
Q: 安装后技能没有被发现?
opencode debug skill | grep optimize
Q: 全局安装后路径不对?
全局安装时 install.sh 会自动将相对路径重写为绝对路径。如果 KPBot 仓库移动了位置,需要重新安装:
/path/to/KPBot/install.sh global claude
# 或
/path/to/KPBot/install.sh global opencode
Q: 安装时已有配置文件被覆盖?
install.sh 在覆盖前会自动备份原文件(*.bak.<timestamp>)。全局模式下还支持交互选择:
- [O] 覆盖 — 用插件内容替换(原内容已备份)
- [M] 合并 — 插件内容置顶,保留原自定义内容
- [S] 跳过 — 保持现有文件不变
Q: 如何更新到最新版本?
重新运行安装脚本即可(会覆盖旧文件并保留备份):
cd /path/to/KPBot && git pull
/path/to/KPBot/install.sh
目录结构
KPBot/
├── .claude-plugin/
│ └── marketplace.json # Claude Code Marketplace 索引
├── Plugins/
│ ├── code-optimizer/ # 代码优化插件 (36 skills)
│ │ ├── .claude-plugin/
│ │ │ └── plugin.json # 插件清单
│ │ ├── skills/ # 技能源目录(claude 格式,单一源)
│ │ └── opencode/ # OpenCode 覆盖层(26 个差异文件,稀疏镜像 skills/ 结构)
│ └── app-tuner/ # 应用级调优插件
│ ├── .claude-plugin/
│ │ └── plugin.json
│ └── skills/ # 技能源目录
├── install.sh # 统一安装脚本(Claude Code + OpenCode)
├── README.md
└── LICENSE
添加新插件
- 在
Plugins/下创建新目录 - 添加
.claude-plugin/plugin.json(插件清单,含 name、version、description、author 等) - 在
skills/下创建技能目录(每个技能一个SKILL.md) - 在
.claude-plugin/marketplace.json的plugins数组中添加条目 - 提交 PR