harmonyos-best-practices-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/README.md +121 -0
  2. package/data/docs/bpta-2in1-window-shape.md +296 -0
  3. package/data/docs/bpta-abckitts-implements-instrumentation.md +1279 -0
  4. package/data/docs/bpta-add-watermark.md +379 -0
  5. package/data/docs/bpta-ads-jump.md +67 -0
  6. package/data/docs/bpta-agent.md +472 -0
  7. package/data/docs/bpta-always-on-market-watch.md +703 -0
  8. package/data/docs/bpta-analysis-of-image-blurring.md +231 -0
  9. package/data/docs/bpta-analyze-memory-problem.md +17 -0
  10. package/data/docs/bpta-animation-frame.md +28 -0
  11. package/data/docs/bpta-antipeep-protection.md +291 -0
  12. package/data/docs/bpta-app-architecture-overview.md +25 -0
  13. package/data/docs/bpta-app-asset-protection-design.md +277 -0
  14. package/data/docs/bpta-app-code-ob.md +180 -0
  15. package/data/docs/bpta-app-concurrency-design.md +1189 -0
  16. package/data/docs/bpta-app-data-security.md +397 -0
  17. package/data/docs/bpta-app-icon-configuration.md +226 -0
  18. package/data/docs/bpta-app-privacy-protection.md +295 -0
  19. package/data/docs/bpta-application-aspect-programming-design.md +675 -0
  20. package/data/docs/bpta-application-cold-start-optimization.md +1397 -0
  21. package/data/docs/bpta-application-continue-progess.md +285 -0
  22. package/data/docs/bpta-application-gesture-share.md +468 -0
  23. package/data/docs/bpta-application-knock-file-share.md +263 -0
  24. package/data/docs/bpta-application-knock-video-share.md +552 -0
  25. package/data/docs/bpta-application-latency-optimization-cases.md +615 -0
  26. package/data/docs/bpta-application-power-analysis.md +15 -0
  27. package/data/docs/bpta-application-power-optimization.md +12 -0
  28. package/data/docs/bpta-application-power-test.md +52 -0
  29. package/data/docs/bpta-application-track-practice.md +595 -0
  30. package/data/docs/bpta-arkts-high-performance.md +464 -0
  31. package/data/docs/bpta-arkts-js-memory-analysis.md +111 -0
  32. package/data/docs/bpta-arkts-language.md +18 -0
  33. package/data/docs/bpta-arkweb-component-security.md +1134 -0
  34. package/data/docs/bpta-arkweb_rendering_framework.md +412 -0
  35. package/data/docs/bpta-aspect-implements-aop.md +505 -0
  36. package/data/docs/bpta-audio-and-video.md +30 -0
  37. package/data/docs/bpta-audio-cast.md +460 -0
  38. package/data/docs/bpta-audio-focus-management.md +862 -0
  39. package/data/docs/bpta-audio-in-ear-monitor.md +803 -0
  40. package/data/docs/bpta-audio-playback-series.md +16 -0
  41. package/data/docs/bpta-audio-record-base-on-audiocapturer.md +188 -0
  42. package/data/docs/bpta-audio-record-base-on-avrecorder-arkts.md +179 -0
  43. package/data/docs/bpta-audio-record-base-on-avrecorder.md +207 -0
  44. package/data/docs/bpta-audio-record-base-on-avscreencapture.md +165 -0
  45. package/data/docs/bpta-audio-record-base-on-ohaudio.md +162 -0
  46. package/data/docs/bpta-audio-record-overview.md +34 -0
  47. package/data/docs/bpta-audio-record.md +16 -0
  48. package/data/docs/bpta-audio-ripple-animation.md +198 -0
  49. package/data/docs/bpta-audio-video-synchronization.md +508 -0
  50. package/data/docs/bpta-audio-video.md +15 -0
  51. package/data/docs/bpta-automated-testing-frameworks.md +481 -0
  52. package/data/docs/bpta-avplayer-basic-control.md +533 -0
  53. package/data/docs/bpta-avplayer-embeded-network-video.md +486 -0
  54. package/data/docs/bpta-avplayer-embeded-short-video.md +512 -0
  55. package/data/docs/bpta-avplayer-long-video.md +907 -0
  56. package/data/docs/bpta-avplayer-short-video.md +158 -0
  57. package/data/docs/bpta-avplayer-video-practices.md +15 -0
  58. package/data/docs/bpta-avscreencapture-for-screen-recording.md +1121 -0
  59. package/data/docs/bpta-back-task-implement.md +317 -0
  60. package/data/docs/bpta-background-blur.md +316 -0
  61. package/data/docs/bpta-background-sensors-baned-analysis.md +93 -0
  62. package/data/docs/bpta-best-practices-long-list.md +891 -0
  63. package/data/docs/bpta-best-practices-overview.md +48 -0
  64. package/data/docs/bpta-bluetooth-low-energy.md +905 -0
  65. package/data/docs/bpta-buffer-mode-transcoding.md +728 -0
  66. package/data/docs/bpta-buffer-power-optimization.md +224 -0
  67. package/data/docs/bpta-camera-shot2see.md +368 -0
  68. package/data/docs/bpta-card-update-and-data-interaction.md +670 -0
  69. package/data/docs/bpta-carousel-graphic-works.md +379 -0
  70. package/data/docs/bpta-cell-phone.md +13 -0
  71. package/data/docs/bpta-click-to-click-response-optimization.md +264 -0
  72. package/data/docs/bpta-click-to-complete-delay-analysis.md +637 -0
  73. package/data/docs/bpta-collaboration-office.md +1178 -0
  74. package/data/docs/bpta-comment-reply-pop-up-window.md +523 -0
  75. package/data/docs/bpta-common-list-flows.md +688 -0
  76. package/data/docs/bpta-common-list-operations.md +828 -0
  77. package/data/docs/bpta-common-network-query.md +784 -0
  78. package/data/docs/bpta-comparative_practice_of_taskpool_and_worker.md +381 -0
  79. package/data/docs/bpta-compatible-scheme.md +11 -0
  80. package/data/docs/bpta-complex-type-pass.md +868 -0
  81. package/data/docs/bpta-component-nesting-optimization.md +421 -0
  82. package/data/docs/bpta-component-reuse-issue-diagnosis-and-analysis.md +637 -0
  83. package/data/docs/bpta-component-reuse.md +1258 -0
  84. package/data/docs/bpta-concurrency-capability.md +23 -0
  85. package/data/docs/bpta-concurrent-optimization.md +369 -0
  86. package/data/docs/bpta-content-creation.md +646 -0
  87. package/data/docs/bpta-continue-cast.md +702 -0
  88. package/data/docs/bpta-continue-data.md +335 -0
  89. package/data/docs/bpta-continue.md +1323 -0
  90. package/data/docs/bpta-control-rendering-range.md +29 -0
  91. package/data/docs/bpta-controlling-background-process-cpu.md +31 -0
  92. package/data/docs/bpta-crash-monitor-practice.md +116 -0
  93. package/data/docs/bpta-cross-domain-solutions-for-web-pages.md +308 -0
  94. package/data/docs/bpta-cross-end-migration.md +13 -0
  95. package/data/docs/bpta-cross-module-reference.md +406 -0
  96. package/data/docs/bpta-cross-platform-compatibility.md +321 -0
  97. package/data/docs/bpta-custom-camera-photo.md +454 -0
  98. package/data/docs/bpta-custom-camera-preview.md +1170 -0
  99. package/data/docs/bpta-custom-camera-video.md +322 -0
  100. package/data/docs/bpta-custom-font-settings.md +354 -0
  101. package/data/docs/bpta-custom-hvigor-plugin.md +159 -0
  102. package/data/docs/bpta-custom-keyboard.md +519 -0
  103. package/data/docs/bpta-customdialog-selection-and-development.md +406 -0
  104. package/data/docs/bpta-dark-mode-adaptation.md +321 -0
  105. package/data/docs/bpta-deal-stride-solution.md +261 -0
  106. package/data/docs/bpta-decrease_pakage_size.md +126 -0
  107. package/data/docs/bpta-delayed-trigger-operation.md +215 -0
  108. package/data/docs/bpta-desktop-shortcuts.md +180 -0
  109. package/data/docs/bpta-detection.md +12 -0
  110. package/data/docs/bpta-developing-high-performance-ui.md +19 -0
  111. package/data/docs/bpta-development-scenarios-for-tabs.md +934 -0
  112. package/data/docs/bpta-dialog-encapsulation.md +201 -0
  113. package/data/docs/bpta-dispose-highly-loaded-component-render.md +352 -0
  114. package/data/docs/bpta-distribute-drag-cast.md +60 -0
  115. package/data/docs/bpta-distributed-pasteboard-cast.md +88 -0
  116. package/data/docs/bpta-distributed-pasteboard.md +314 -0
  117. package/data/docs/bpta-drawing-capability-improve-performance.md +436 -0
  118. package/data/docs/bpta-dynamic-link-library.md +272 -0
  119. package/data/docs/bpta-easygo-parallel.md +402 -0
  120. package/data/docs/bpta-fair-use-animation.md +1693 -0
  121. package/data/docs/bpta-file-transmission-based-on-sfft.md +265 -0
  122. package/data/docs/bpta-file-upload-and-download-performance.md +484 -0
  123. package/data/docs/bpta-foldable-guide.md +205 -0
  124. package/data/docs/bpta-folded-hover.md +202 -0
  125. package/data/docs/bpta-form-kit.md +12 -0
  126. package/data/docs/bpta-frontend-invisible-animation-analysis.md +187 -0
  127. package/data/docs/bpta-full-scenario-collaborative-development.md +13 -0
  128. package/data/docs/bpta-fuzzy-scene-performance-optimization.md +256 -0
  129. package/data/docs/bpta-game-prelaunch-practice.md +175 -0
  130. package/data/docs/bpta-general-comments.md +17 -0
  131. package/data/docs/bpta-gestures-practice.md +619 -0
  132. package/data/docs/bpta-global-state-management-state-store.md +472 -0
  133. package/data/docs/bpta-gpu-acceleration-practices.md +11 -0
  134. package/data/docs/bpta-graphic-drawing-practices.md +13 -0
  135. package/data/docs/bpta-grid-based-on-scrollcomponents.md +1112 -0
  136. package/data/docs/bpta-grid-drag-swap.md +725 -0
  137. package/data/docs/bpta-hadss_dialoghub.md +786 -0
  138. package/data/docs/bpta-harmony-application-security.md +1253 -0
  139. package/data/docs/bpta-hdrtosdr.md +439 -0
  140. package/data/docs/bpta-hdrvivid.md +700 -0
  141. package/data/docs/bpta-high-cpu-load-analysis.md +113 -0
  142. package/data/docs/bpta-high-performance-json-parsing.md +263 -0
  143. package/data/docs/bpta-high-performance-protobuf-parsing.md +259 -0
  144. package/data/docs/bpta-hmos-live-stream-audio-call.md +140 -0
  145. package/data/docs/bpta-hmos-live-stream-solution.md +495 -0
  146. package/data/docs/bpta-hmrouter.md +659 -0
  147. package/data/docs/bpta-hopping.md +60 -0
  148. package/data/docs/bpta-hwc-self-rendering-layer-analysis.md +77 -0
  149. package/data/docs/bpta-image-processing-practices.md +13 -0
  150. package/data/docs/bpta-image-to-video-synthesis.md +459 -0
  151. package/data/docs/bpta-image-white-lump-solution.md +282 -0
  152. package/data/docs/bpta-image_get_and_save.md +120 -0
  153. package/data/docs/bpta-implement-timeline-based-on-canvas.md +493 -0
  154. package/data/docs/bpta-implementing-image-filters.md +406 -0
  155. package/data/docs/bpta-implementing-image-resizable.md +270 -0
  156. package/data/docs/bpta-improve-layout-performance.md +547 -0
  157. package/data/docs/bpta-improve-running-efficiency.md +187 -0
  158. package/data/docs/bpta-improve_grid_performance.md +268 -0
  159. package/data/docs/bpta-input-method-framework.md +12 -0
  160. package/data/docs/bpta-intent-recommend-practice.md +313 -0
  161. package/data/docs/bpta-js-leak-watcher.md +153 -0
  162. package/data/docs/bpta-kernel-memory-analysis.md +38 -0
  163. package/data/docs/bpta-keyboard-layout-adapt.md +725 -0
  164. package/data/docs/bpta-landscape-and-portrait-development.md +947 -0
  165. package/data/docs/bpta-layered-architecture-design.md +82 -0
  166. package/data/docs/bpta-lazyforeach-optimization.md +217 -0
  167. package/data/docs/bpta-link-between-apps-overview.md +99 -0
  168. package/data/docs/bpta-list-based-on-scrollcomponents.md +1643 -0
  169. package/data/docs/bpta-lite-wearable-guide.md +1899 -0
  170. package/data/docs/bpta-live-form-development-practice.md +544 -0
  171. package/data/docs/bpta-live-streaming-optimization.md +397 -0
  172. package/data/docs/bpta-local-file-and-data-multithreaded-io.md +367 -0
  173. package/data/docs/bpta-local-file.md +11 -0
  174. package/data/docs/bpta-lock-screen-immersive-live-window.md +473 -0
  175. package/data/docs/bpta-long-snapshot-practice.md +1046 -0
  176. package/data/docs/bpta-low-power-consumption-of-background-tasks.md +14 -0
  177. package/data/docs/bpta-low-power-consumption-of-foreground-tasks.md +14 -0
  178. package/data/docs/bpta-low-power-design-in-dark-mode.md +418 -0
  179. package/data/docs/bpta-ltpo-description.md +323 -0
  180. package/data/docs/bpta-maleoon-gpu-best-practices.md +1297 -0
  181. package/data/docs/bpta-malloc-dispatch-table.md +144 -0
  182. package/data/docs/bpta-managing-audio-input-devices.md +350 -0
  183. package/data/docs/bpta-managing-audio-output-devices.md +399 -0
  184. package/data/docs/bpta-mate-book-fold.md +229 -0
  185. package/data/docs/bpta-matetv-guide.md +223 -0
  186. package/data/docs/bpta-matext-guide.md +269 -0
  187. package/data/docs/bpta-memory-basic-knowledge.md +71 -0
  188. package/data/docs/bpta-memory-optimization.md +545 -0
  189. package/data/docs/bpta-modular-design.md +282 -0
  190. package/data/docs/bpta-multi-device-adaptive-layout.md +775 -0
  191. package/data/docs/bpta-multi-device-adaptive.md +11 -0
  192. package/data/docs/bpta-multi-device-camera.md +584 -0
  193. package/data/docs/bpta-multi-device-collaboration.md +19 -0
  194. package/data/docs/bpta-multi-device-component-layout.md +190 -0
  195. package/data/docs/bpta-multi-device-design-principles.md +26 -0
  196. package/data/docs/bpta-multi-device-function.md +99 -0
  197. package/data/docs/bpta-multi-device-hardware.md +12 -0
  198. package/data/docs/bpta-multi-device-ide.md +124 -0
  199. package/data/docs/bpta-multi-device-interaction.md +11 -0
  200. package/data/docs/bpta-multi-device-layout-overview.md +47 -0
  201. package/data/docs/bpta-multi-device-overview.md +340 -0
  202. package/data/docs/bpta-multi-device-page-layout.md +699 -0
  203. package/data/docs/bpta-multi-device-page.md +19 -0
  204. package/data/docs/bpta-multi-device-resource.md +122 -0
  205. package/data/docs/bpta-multi-device-responsive-layout.md +1274 -0
  206. package/data/docs/bpta-multi-device-responsive.md +14 -0
  207. package/data/docs/bpta-multi-device-screen-diff.md +197 -0
  208. package/data/docs/bpta-multi-device-screen-layout.md +834 -0
  209. package/data/docs/bpta-multi-device-start.md +376 -0
  210. package/data/docs/bpta-multi-device-ui-development.md +27 -0
  211. package/data/docs/bpta-multi-device-window-direction.md +1322 -0
  212. package/data/docs/bpta-multi-device-window-immersive.md +364 -0
  213. package/data/docs/bpta-multi-device-window-mode.md +1293 -0
  214. package/data/docs/bpta-multi-device-window.md +13 -0
  215. package/data/docs/bpta-multi-device.md +13 -0
  216. package/data/docs/bpta-multi-interaction.md +368 -0
  217. package/data/docs/bpta-multi-mobile-payment.md +282 -0
  218. package/data/docs/bpta-multi-music-app-overview.md +365 -0
  219. package/data/docs/bpta-multi-settings-application-page.md +163 -0
  220. package/data/docs/bpta-multi-tab-practice.md +750 -0
  221. package/data/docs/bpta-multi-target.md +490 -0
  222. package/data/docs/bpta-multi-window-practice.md +795 -0
  223. package/data/docs/bpta-multi_game.md +472 -0
  224. package/data/docs/bpta-music-card.md +1916 -0
  225. package/data/docs/bpta-music-playback-scenarios.md +120 -0
  226. package/data/docs/bpta-native-memory-analysis.md +101 -0
  227. package/data/docs/bpta-native-sub-main-comm.md +323 -0
  228. package/data/docs/bpta-navigation-scenarios.md +69 -0
  229. package/data/docs/bpta-network-ca-security.md +241 -0
  230. package/data/docs/bpta-network-reconnection.md +327 -0
  231. package/data/docs/bpta-network-resources.md +24 -0
  232. package/data/docs/bpta-news-reading.md +12 -0
  233. package/data/docs/bpta-news_homepage.md +449 -0
  234. package/data/docs/bpta-object-serialization-performance.md +12 -0
  235. package/data/docs/bpta-one-shot-to-the-end.md +932 -0
  236. package/data/docs/bpta-online-video-playback-lags-practice.md +298 -0
  237. package/data/docs/bpta-optimization-overview.md +227 -0
  238. package/data/docs/bpta-optimization-tool-practice.md +20 -0
  239. package/data/docs/bpta-package-structure.md +13 -0
  240. package/data/docs/bpta-pad-guide.md +268 -0
  241. package/data/docs/bpta-page-brightness-settings.md +256 -0
  242. package/data/docs/bpta-page-transition.md +583 -0
  243. package/data/docs/bpta-pc-guide.md +438 -0
  244. package/data/docs/bpta-pc.md +12 -0
  245. package/data/docs/bpta-perceived-smoothness.md +49 -0
  246. package/data/docs/bpta-performance-detection.md +160 -0
  247. package/data/docs/bpta-performance-guide-reading.md +50 -0
  248. package/data/docs/bpta-performance-mainthread-consumption-detection.md +11 -0
  249. package/data/docs/bpta-performance-optimization.md +23 -0
  250. package/data/docs/bpta-performance-runtime-detection.md +13 -0
  251. package/data/docs/bpta-performance-sliding-frame-drop-detection.md +19 -0
  252. package/data/docs/bpta-performance-startup-time-detection.md +13 -0
  253. package/data/docs/bpta-permission-application.md +318 -0
  254. package/data/docs/bpta-permission-timeout-analysis.md +51 -0
  255. package/data/docs/bpta-photo.md +15 -0
  256. package/data/docs/bpta-picture-preview.md +464 -0
  257. package/data/docs/bpta-picture.md +12 -0
  258. package/data/docs/bpta-playing-formatted-audio-based-avplayer-arkts.md +481 -0
  259. package/data/docs/bpta-playing-formatted-audio-based-avplayer-cpp.md +593 -0
  260. package/data/docs/bpta-playing-pcm-audio-based-audiorenderer.md +959 -0
  261. package/data/docs/bpta-playing-pcm-audio-based-ohaudio.md +599 -0
  262. package/data/docs/bpta-playing-short-audio-based-soundpool.md +182 -0
  263. package/data/docs/bpta-positioning.md +364 -0
  264. package/data/docs/bpta-power-basic-quality-test.md +35 -0
  265. package/data/docs/bpta-power-consumption-analysis.md +12 -0
  266. package/data/docs/bpta-power-consumption-develop-analysis.md +12 -0
  267. package/data/docs/bpta-power-consumption-experience.md +119 -0
  268. package/data/docs/bpta-power-consumption-runtime-analysis.md +15 -0
  269. package/data/docs/bpta-power_overview.md +26 -0
  270. package/data/docs/bpta-pptimized-component-drawing.md +27 -0
  271. package/data/docs/bpta-pre-connect.md +133 -0
  272. package/data/docs/bpta-preloading-resources.md +21 -0
  273. package/data/docs/bpta-program-framework.md +15 -0
  274. package/data/docs/bpta-properly-use-foreground-resources.md +22 -0
  275. package/data/docs/bpta-purax-guide.md +215 -0
  276. package/data/docs/bpta-quality-overview.md +79 -0
  277. package/data/docs/bpta-reader-page-flip.md +890 -0
  278. package/data/docs/bpta-reasonable-audio-playback-use.md +42 -0
  279. package/data/docs/bpta-reasonable-audio-use.md +163 -0
  280. package/data/docs/bpta-reasonable-bluetooth-use.md +52 -0
  281. package/data/docs/bpta-reasonable-gps-use.md +59 -0
  282. package/data/docs/bpta-reasonable-network-use.md +105 -0
  283. package/data/docs/bpta-reasonable-position-navigation-use.md +47 -0
  284. package/data/docs/bpta-reasonable-request-use.md +77 -0
  285. package/data/docs/bpta-reasonable-sensor-use.md +53 -0
  286. package/data/docs/bpta-reasonable-system-use.md +67 -0
  287. package/data/docs/bpta-recommended-use-of-device-id.md +79 -0
  288. package/data/docs/bpta-reduce-layout-nodes.md +30 -0
  289. package/data/docs/bpta-reduce-time-consuming.md +36 -0
  290. package/data/docs/bpta-redundancy-refresh-guide.md +409 -0
  291. package/data/docs/bpta-render-web-using-same-layer-render.md +601 -0
  292. package/data/docs/bpta-resource-and-storage-optimization.md +14 -0
  293. package/data/docs/bpta-retrieve-process-memory-info.md +49 -0
  294. package/data/docs/bpta-rich-text-display.md +475 -0
  295. package/data/docs/bpta-rich-text-editor.md +426 -0
  296. package/data/docs/bpta-risk-control-engine.md +146 -0
  297. package/data/docs/bpta-scenario-performance-optimization.md +17 -0
  298. package/data/docs/bpta-scenario-power-optimization.md +12 -0
  299. package/data/docs/bpta-scenario-stability-address-sanitizer.md +210 -0
  300. package/data/docs/bpta-scenario-stability-app-freeze.md +615 -0
  301. package/data/docs/bpta-scenario-stability-cppcrash.md +516 -0
  302. package/data/docs/bpta-scenario-stability-exception-exit.md +12 -0
  303. package/data/docs/bpta-scenario-stability-jscrash.md +922 -0
  304. package/data/docs/bpta-scenario-stability-leak.md +276 -0
  305. package/data/docs/bpta-scenario-stability.md +14 -0
  306. package/data/docs/bpta-screen-flicker-solution.md +480 -0
  307. package/data/docs/bpta-shared-bicycle.md +509 -0
  308. package/data/docs/bpta-short-video-base-adaptivevideo.md +403 -0
  309. package/data/docs/bpta-smart-reach.md +306 -0
  310. package/data/docs/bpta-smartwatch.md +755 -0
  311. package/data/docs/bpta-smartwatchnavigation.md +384 -0
  312. package/data/docs/bpta-smooth-application-design.md +225 -0
  313. package/data/docs/bpta-smooth-switching.md +294 -0
  314. package/data/docs/bpta-social-communications.md +11 -0
  315. package/data/docs/bpta-social-share.md +637 -0
  316. package/data/docs/bpta-solutions-to-special-issues.md +12 -0
  317. package/data/docs/bpta-sound-quality-switching.md +422 -0
  318. package/data/docs/bpta-spatiality-immersive.md +531 -0
  319. package/data/docs/bpta-special-text-recognition.md +137 -0
  320. package/data/docs/bpta-stability-address-illegal-way.md +190 -0
  321. package/data/docs/bpta-stability-address-sanitizer-catagory.md +212 -0
  322. package/data/docs/bpta-stability-address-sanitizer-faq.md +32 -0
  323. package/data/docs/bpta-stability-address-sanitizer-opt.md +170 -0
  324. package/data/docs/bpta-stability-address-sanitizer-overview.md +23 -0
  325. package/data/docs/bpta-stability-address-sanitizer-principle.md +179 -0
  326. package/data/docs/bpta-stability-analysis.md +17 -0
  327. package/data/docs/bpta-stability-app-analyzer.md +11 -0
  328. package/data/docs/bpta-stability-app-crash-cpp-way.md +200 -0
  329. package/data/docs/bpta-stability-app-crash-js-way.md +148 -0
  330. package/data/docs/bpta-stability-app-crash.md +13 -0
  331. package/data/docs/bpta-stability-app-freeze-ark-runtime.md +339 -0
  332. package/data/docs/bpta-stability-app-freeze-opt.md +80 -0
  333. package/data/docs/bpta-stability-app-freeze-way.md +410 -0
  334. package/data/docs/bpta-stability-app-freeze.md +12 -0
  335. package/data/docs/bpta-stability-app-killed-way.md +49 -0
  336. package/data/docs/bpta-stability-ark-detection.md +12 -0
  337. package/data/docs/bpta-stability-ark-exception-detection.md +38 -0
  338. package/data/docs/bpta-stability-ark-runtime-detection.md +134 -0
  339. package/data/docs/bpta-stability-asan-detection.md +450 -0
  340. package/data/docs/bpta-stability-coding-standard-api.md +2054 -0
  341. package/data/docs/bpta-stability-coding-standard-cpp.md +91 -0
  342. package/data/docs/bpta-stability-coding-standard-libuv.md +772 -0
  343. package/data/docs/bpta-stability-coding-standard-ndk-arkts.md +189 -0
  344. package/data/docs/bpta-stability-coding-standard-node.md +478 -0
  345. package/data/docs/bpta-stability-coding-standard.md +16 -0
  346. package/data/docs/bpta-stability-cpp-crash-opt.md +346 -0
  347. package/data/docs/bpta-stability-detection.md +14 -0
  348. package/data/docs/bpta-stability-deveco-testing.md +73 -0
  349. package/data/docs/bpta-stability-develop-detection.md +17 -0
  350. package/data/docs/bpta-stability-exception-exit-opt.md +12 -0
  351. package/data/docs/bpta-stability-fault-log.md +14 -0
  352. package/data/docs/bpta-stability-fault-type.md +31 -0
  353. package/data/docs/bpta-stability-file-handle-detection.md +96 -0
  354. package/data/docs/bpta-stability-gwpasan-detection.md +588 -0
  355. package/data/docs/bpta-stability-hwasan-detection.md +360 -0
  356. package/data/docs/bpta-stability-ide-static-detection.md +343 -0
  357. package/data/docs/bpta-stability-js-crash-opt.md +21 -0
  358. package/data/docs/bpta-stability-js-memleak-detection.md +214 -0
  359. package/data/docs/bpta-stability-leak-detection.md +15 -0
  360. package/data/docs/bpta-stability-leak-opt.md +251 -0
  361. package/data/docs/bpta-stability-leak-way.md +459 -0
  362. package/data/docs/bpta-stability-log-specs.md +31 -0
  363. package/data/docs/bpta-stability-log-standard-hilog.md +191 -0
  364. package/data/docs/bpta-stability-log-standard.md +11 -0
  365. package/data/docs/bpta-stability-memleak-detection-overview.md +109 -0
  366. package/data/docs/bpta-stability-native-memleak-detection.md +204 -0
  367. package/data/docs/bpta-stability-operate-apm.md +113 -0
  368. package/data/docs/bpta-stability-operate-app-event.md +320 -0
  369. package/data/docs/bpta-stability-operate-event.md +11 -0
  370. package/data/docs/bpta-stability-operate.md +15 -0
  371. package/data/docs/bpta-stability-opt.md +18 -0
  372. package/data/docs/bpta-stability-overview.md +17 -0
  373. package/data/docs/bpta-stability-ram-detection.md +17 -0
  374. package/data/docs/bpta-stability-runtime-address-sanitizer-detection.md +21 -0
  375. package/data/docs/bpta-stability-runtime-appkilled-detection.md +44 -0
  376. package/data/docs/bpta-stability-runtime-crash-detection.md +14 -0
  377. package/data/docs/bpta-stability-runtime-detection.md +14 -0
  378. package/data/docs/bpta-stability-runtime-exception-exit-detection.md +12 -0
  379. package/data/docs/bpta-stability-runtime-freeze-detection.md +21 -0
  380. package/data/docs/bpta-stability-runtime-leak-detection.md +31 -0
  381. package/data/docs/bpta-stability-testing.md +11 -0
  382. package/data/docs/bpta-stability-thread-detection.md +11 -0
  383. package/data/docs/bpta-stability-thread-leak-detection.md +35 -0
  384. package/data/docs/bpta-stability-tsan-detection.md +477 -0
  385. package/data/docs/bpta-stability-ubsan-detection.md +350 -0
  386. package/data/docs/bpta-startup-response-optimization.md +12 -0
  387. package/data/docs/bpta-state-refresh.md +48 -0
  388. package/data/docs/bpta-static-scenarios.md +63 -0
  389. package/data/docs/bpta-status-management.md +872 -0
  390. package/data/docs/bpta-surface-encoder.md +427 -0
  391. package/data/docs/bpta-swiper_high_performance_development_guide.md +357 -0
  392. package/data/docs/bpta-tablet-pc.md +11 -0
  393. package/data/docs/bpta-taskpool_usage_specifications_and_faqs.md +625 -0
  394. package/data/docs/bpta-text-expand-collapse.md +274 -0
  395. package/data/docs/bpta-texture-compression-improve-performance.md +336 -0
  396. package/data/docs/bpta-thread-priority-setting.md +233 -0
  397. package/data/docs/bpta-threads-serialization-timeout-analysis.md +169 -0
  398. package/data/docs/bpta-time-optimization-of-the-main-thread.md +1239 -0
  399. package/data/docs/bpta-travel-navigation.md +11 -0
  400. package/data/docs/bpta-tv.md +11 -0
  401. package/data/docs/bpta-ui-component-encapsulation.md +585 -0
  402. package/data/docs/bpta-ui-component-performance-optimization.md +597 -0
  403. package/data/docs/bpta-ui-dynamic-operations.md +618 -0
  404. package/data/docs/bpta-ui-skip-analysis.md +191 -0
  405. package/data/docs/bpta-unified-drag-and-drop.md +1189 -0
  406. package/data/docs/bpta-use-of-background-hardware-resources.md +16 -0
  407. package/data/docs/bpta-use-of-background-software-resources.md +14 -0
  408. package/data/docs/bpta-use-of-background-tasks.md +23 -0
  409. package/data/docs/bpta-utilize-hwc-efficiently.md +461 -0
  410. package/data/docs/bpta-vdeocast.md +558 -0
  411. package/data/docs/bpta-video-adaptation-based-web.md +462 -0
  412. package/data/docs/bpta-video-barrage.md +68 -0
  413. package/data/docs/bpta-video-codec.md +42 -0
  414. package/data/docs/bpta-video-component-long-video.md +659 -0
  415. package/data/docs/bpta-video-component-short-video.md +337 -0
  416. package/data/docs/bpta-video-layer.md +32 -0
  417. package/data/docs/bpta-video-practices.md +12 -0
  418. package/data/docs/bpta-video-render.md +1225 -0
  419. package/data/docs/bpta-video-rom.md +37 -0
  420. package/data/docs/bpta-video-thumbnail.md +179 -0
  421. package/data/docs/bpta-video-wifi.md +40 -0
  422. package/data/docs/bpta-vsync-power-optimization.md +116 -0
  423. package/data/docs/bpta-waterflow-based-on-scrollcomponents.md +989 -0
  424. package/data/docs/bpta-waterflow-operations.md +991 -0
  425. package/data/docs/bpta-waterflow-performance-optimization.md +191 -0
  426. package/data/docs/bpta-wavewheel-for-image-editor.md +421 -0
  427. package/data/docs/bpta-wear.md +12 -0
  428. package/data/docs/bpta-web-adaptation.md +451 -0
  429. package/data/docs/bpta-web-app-jump-and-pull-up.md +310 -0
  430. package/data/docs/bpta-web-click-response-delay-analysis.md +164 -0
  431. package/data/docs/bpta-web-completion-delay-analysis.md +209 -0
  432. package/data/docs/bpta-web-develop-optimization.md +2596 -0
  433. package/data/docs/bpta-web-development.md +15 -0
  434. package/data/docs/bpta-web-frame-rate-performance-analysis.md +252 -0
  435. package/data/docs/bpta-web-interceptor.md +724 -0
  436. package/data/docs/bpta-web-performance-optimization.md +11 -0
  437. package/data/docs/bpta-window-and-screen-management.md +12 -0
  438. package/data/docs/bpta-zhenlv.md +559 -0
  439. package/data/docs/changelog.md +1410 -0
  440. package/data/docs/low-power-consumption-suggestions.md +246 -0
  441. package/data/docs/multi-business-office.md +275 -0
  442. package/data/docs/multi-communication-app.md +240 -0
  443. package/data/docs/multi-community-app.md +257 -0
  444. package/data/docs/multi-convenient-life.md +501 -0
  445. package/data/docs/multi-financial-app.md +288 -0
  446. package/data/docs/multi-news-read.md +286 -0
  447. package/data/docs/multi-picture-app.md +219 -0
  448. package/data/docs/multi-shopping-price-comparison.md +254 -0
  449. package/data/docs/multi-short-video-app.md +315 -0
  450. package/data/docs/multi-ticket-class.md +458 -0
  451. package/data/docs/multi-travel-accommodation.md +361 -0
  452. package/data/docs/multi-travel-navigation.md +449 -0
  453. package/data/docs/multi-video-app.md +492 -0
  454. package/data/index.md +2886 -0
  455. package/dist/data.js +180 -0
  456. package/dist/index.js +203 -0
  457. package/dist/search.js +102 -0
  458. package/package.json +57 -0
  459. package/scripts/trim-code-extra.mjs +78 -0
  460. package/scripts/trim-code.mjs +106 -0
@@ -0,0 +1,472 @@
1
+ # 智能体场景开发案例
2
+
3
+ > 来源: https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-agent
4
+ > 文档标识(fileName): bpta-agent
5
+ > 目录(catalogName): best-practices
6
+ > 语言: cn
7
+ > 更新时间: 2026-06-23 03:39:20
8
+ > 导航地址: /hmos/hmos-dp1
9
+
10
+ ---
11
+ #### 简介
12
+
13
+ 智能体作为一个由用户通过角色指令精心设计的具有明确身份和目标的虚拟实体,其核心价值在于能够像人一样使用自然语言对话,理解用户需求,运用预设的知识、能力和逻辑进行思考与推理,并主动生成恰当的响应或执行相应操作(任务完成、信息提供、服务实施),以满足用户需求或实现预设目标。通过用户友好的交互界面、简便的接入方式及广泛的应用场景,满足消费者在日常生活中对智能助手、信息检索、推荐等功能的需求。同时,智能体还可服务于多个垂直行业和业务场景,有效拓展市场覆盖面与增强用户粘性,用户亦可直接与智能体独立对话,以获得场景化的连贯知识与服务。
14
+
15
+ [小艺开放平台](https://developer.huawei.com/consumer/cn/hag/hagindex.html#/)是小艺结合了意图框架与华为AI大模型能力面向开发者的能力开放平台。基于该平台的[小艺智能体平台](https://developer.huawei.com/consumer/cn/hag/hagindex.html?isInFrame=true&lang=zh_CN#/agentHome/square)允许开发者构建智能体,为用户提供大模型时代的智能新体验,同时实现业务增长。开发者可以基于小艺智能体平台开发专属智能体。
16
+
17
+ 本文主要介绍如何基于[智能问答场景](#section2907103562520)和[音频播放场景](#section15781420152616),在小艺智能体平台上快速搭建智能体并适配相应需求场景。
18
+
19
+ 智能体从创建到上架主要包含以下五个步骤:
20
+
21
+ 1. [智能体创建](#section524618504324):开发者需在[小艺开放平台](https://developer.huawei.com/consumer/cn/hag/hagindex.html#/)完成企业/个人账号注册,获取HarmonyOS生态的开发权限,基于智能体平台快速初始化项目,自定义开发专属智能体。
22
+ 2. [模式选择](#section59501510153311):不同模式的智能体,适配的场景也有所不同,开发者可按照业务需求选择合适模式的智能体,开发构建智能场景的智能体。
23
+ 3. [智能体编排](#section109683238339):可视化流程的编排框架,自定义智能体能力点,优化完善智能体场景。
24
+ 4. [功能验证](#section864165923316):实时性、可视化、场景化的验证模式,可实时交互验证,或真实场景验证。
25
+ 5. [上架/升级](#section74742275511):通过[上架审核规范](https://developer.huawei.com/consumer/cn/doc/service/audit-specifications-0000002469548113)的审核上架,保障对外发布信息的安全与合规,进一步提升用户体验。
26
+
27
+ #### 开发步骤
28
+
29
+ ## 智能体创建
30
+
31
+ 登录[小艺开放平台](https://developer.huawei.com/consumer/cn/hag/hagindex.html#/),点击【立即体验】按钮,进入小艺智能体平台页面。点击左上角【+创建智能体】按钮,即可进入智能体创建流程。可自行设定智能体的相关信息,包括它的名称、头像、智能体描述、智能体分类和运行设备等信息。
32
+
33
+ 准备条件:真机调试及端插件开发需在HarmonyOS 5.1.0 Release及以上版本的设备上进行。
34
+
35
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4c/v3/UcRCzfk1RiGHMr0IOpZjmA/zh-cn_image_0000002358083477.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=4FB73A13F463BA223F337CBC7D4BF7968926B79D03FFAE468E5C02F54ED72A24 "点击放大")
36
+
37
+ ## 模式选择
38
+
39
+ 智能体分为LLM模式、工作流模式和A2A模式三种,对于不同的场景,适配的智能体模式也会有所不同。
40
+
41
+ LLM模式智能体主要依靠大语言模型的能力,如语言理解、生成、推理等,来处理任务和回答问题。它通常直接根据用户输入,利用大语言模型内部的知识和算法生成响应。
42
+
43
+ 工作流模式智能体是通过预定义的代码路径,协调智能体与工具的交互。它将任务按照特定顺序或规则分解为多个步骤,每个步骤有明确的输入和输出,智能体按照预设流程依次执行,以实现任务目标。这种模式强调可预测性和一致性,适合任务明确、流程固定的场景。
44
+
45
+ A2A模式是一种三方智能体接入小艺开放平台的高效编排方式。开发者可通过该模式基于鸿蒙Agent通信协议快速、便捷地将成熟的第三方智能体对接至小艺开放平台,实现分发与调用,提升平台的场景覆盖能力。该模式适用于同时具备鸿蒙端应用与云侧智能体能力的企业开发者。
46
+
47
+ | 模式 | LLM模式(Agent) | 工作流模式(Workflow) | A2A模式 |
48
+ | --- | --- | --- | --- |
49
+ | 核心逻辑 | 基于内部知识直接生成回答,由大模型决策进行工具调用 | 按预设流程分步执行(如数据查询→格式转换→结果整合) | 通过标准化通信协议,实现鸿蒙生态中智能体跨设备协作与端云协同。 |
50
+ | 智能问答场景适用性 | 适合知识型、交互型问答(如常识咨询、客服答疑、教育辅导) | 适合多步骤流程化任务(如报销申请审批、物流跟踪) | 适合整合多源动态知识、融合多模态响应并跨服务生成连贯交互的场景(如医疗咨询) |
51
+ | 音频播放场景适用性 | 适合处理用户语音指令(如 “播放周杰伦的歌”),需调用外部工具处理音频解码、渲染等底层操作 | 适合音频播放的全链路处理(从资源获取到设备输出) | 通过协议扩展第三方播控能力、设备间播放状态同步及低时延优化策略,实现无缝跨端音频流转与场景化音质适配。 |
52
+
53
+ 不同编排模式的智能体,能力拓展部分的功能点也会有所区别。各编排模式的区别可参考开发者指导文档[智能体分类](https://developer.huawei.com/consumer/cn/doc/service/differences-in-arrangement-modes-0000002471344117),开发者可根据不同模式的区别,考虑使用场景应该适配何种编排模式的智能体,选择对应的编排模式,并设定智能体相关信息,便可创建对应模式的智能体。
54
+
55
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7b/v3/tHRdAX7QQLisO-7nvem0iA/zh-cn_image_0000002490331108.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=D6D832B33CF3A985F68993937C15367016178BCD74F167B95C199943F366214C "点击放大")
56
+
57
+ ## 智能体编排
58
+
59
+ 智能体创建后,进入智能体的编排页面,开始智能体的编排,给智能体添加各种能力,优化完善智能体。其中,开场对话可以让用户快速了解你的智能体功能或场景设定故事背景,预置问题可以让用户通过点击快速体验智能体的能力,角色指令(prompt)直接决定你所创造的智能体的效果。更多能力点,开发者可参考[编排-能力拓展](https://developer.huawei.com/consumer/cn/doc/service/ability-expansion-function-introduction-0000002437625858),自定义智能体的背景、能力等。
60
+
61
+ 以下为LLM模式和工作流模式的编排页面:
62
+
63
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/5f/v3/U7jrc6iOTXeDy8rscWgZ5g/zh-cn_image_0000002522373909.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=AA2CF94D4E5FC58F955628F4B2967C11D5E9DF767ABD396BD1B64E6F70AF8B36 "点击放大")
64
+
65
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/86/v3/yCav71jvTSuOTyIBANyDew/zh-cn_image_0000002490496464.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=3B09AD21C6D6A7A6A6B14CE1AF82726C23BEECCF1883571567DBDF9F67002A52 "点击放大")
66
+
67
+ ## 功能验证
68
+
69
+ 在搭建完成智能体后,开发者可以在调试与预览区域与智能体进行对话,测试该智能体功能是否与预期相同,并根据智能体执行过程及响应信息对智能体配置进行优化与调整,具体调试过程可参考开发者指导文档[调试与预览](https://developer.huawei.com/consumer/cn/doc/service/real-machine-testing-0000002471344145),包括真机测试与调试两种功能验证方式。
70
+
71
+ ## 上架/升级
72
+
73
+ 功能测试完成后,点击【保存】【上架】即可将智能体提交到上架审核阶段,具体流程可参考开发者指导文档[上/下架、升级流程介绍](https://developer.huawei.com/consumer/cn/doc/service/process-introduction-0000002509696971)。为了方便开发者的智能体能够顺利通过审核,可参考[上架审核规范](https://developer.huawei.com/consumer/cn/doc/service/audit-specifications-0000002469548113)排查检视自开发的智能体。待通过审核上架后,即可在小艺平台使用完整的智能体。
74
+
75
+ #### 智能问答场景
76
+
77
+ ## 场景描述
78
+
79
+ 智能问答系统凭借其高效、便捷的交互特性,已广泛应用于多个领域。依托知识库,智能问答能够精准匹配用户需求,提供准确且专业的回答。例如,医疗场景中,用户描述 “咳嗽 + 发热”,系统结合症状库推荐科室并提示 “可能的流感风险”。智能问答的核心价值在于通过自然语言交互解决信息获取效率问题,它通常直接根据用户输入,利用开发者上架的知识库或大语言模型内部的知识和算法生成响应,实现更精准、个性化的服务。具有准确与规范的答案(所有回答基于企业预设的知识库或官方数据,避免人工客服因理解偏差或记忆错误导致答案不一致)和服务质量的可控性(企业可随时更新知识库,保证答案同步最新政策,如税法调整、产品更新等)。
80
+
81
+ ## 场景开发
82
+
83
+ **模式选择**
84
+
85
+ 智能问答场景主要为简单的语言交互(如闲聊、知识查询),无需外部工具调用,因此优先选择LLM模式,可基于内部知识直接生成回答。LLM 模式主要有自然语言处理能力、知识整合效率、交互体验等方面的核心优势,凭借这些原生优势,成为智能问答的主流选择,尤其适合知识型、交互型、跨领域的问答场景。
86
+
87
+ | 模式 | LLM 模式 | 工作流模式 |
88
+ | --- | --- | --- |
89
+ | 核心逻辑 | 基于内部知识直接生成回答,由大模型决策进行工具调用 | 按预设流程分步执行(如数据查询→格式转换→结果整合) |
90
+ | 智能问答场景适用性 | 适合知识型、交互型问答(如常识咨询、客服答疑、教育辅导) | 适合多步骤流程化任务(如报销申请审批、物流跟踪) |
91
+ | 智能问答场景局限性 | 依赖训练数据时效性(需定期更新知识库);复杂计算任务需结合工具 | 流程固定,难以应对灵活的问答需求;需人工配置大量流程节点 |
92
+
93
+ 问答智能体主要基于开发者提供的知识库,智能整合内部知识,生成所需回答。因此,除了需要选择LLM模式的智能体外,还需要自定义所需场景的知识库。
94
+
95
+ **知识库创建上架**
96
+
97
+ 1. 创建知识库:在小艺开放平台工作空间的知识库界面点击【新建知识库】,进入新建知识库页面,填写知识库信息后点击【新建】按钮,新建知识库成功。
98
+ 2. 配置知识库:从知识库列表点击新建的知识库名称进入知识列表页面,点击【新建知识】,导入相应知识类型的文件,并填写相关信息后,点击【确定】,知识添加成功。具体流程可参考开发者指导文档[创建知识库](https://developer.huawei.com/consumer/cn/doc/service/create-a-knowledge-base-0000002471344153)。
99
+ 3. 上架知识库:点击相应知识的【上架】按钮,等待知识库审核上架即可。文档类型的知识要等待数据校验完成后才能上架。
100
+
101
+ **LLM模式智能体创建**
102
+
103
+ 1. 创建智能体:参考上述[开发步骤](#section369116225258),创建一个LLM模式的智能体。
104
+ 2. 编排智能体:进入智能体编排页面,编辑智能体的开场对话,并添加上架完成的知识库,开发者也可按照实际业务需求自行编排。
105
+
106
+ **功能验证**
107
+
108
+ 可调试测试或真机测试,真机测试需添加白名单,设置白名单手机或账号,发布至手机智能体,方可真机测试。
109
+
110
+ 1. 调试测试:调试与预览界面可以进行交互测试,预览实际交互场景,也可点击右上角调试按钮,进入调试详情页,查看详细的调测信息。
111
+
112
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/5d/v3/3Zk9o9kVRdO49IR_qGEf_g/zh-cn_image_0000002358083481.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=DE48AF010983DBFE0202894B09B23EAC03AF8C50DA7C0E0CD7EC9325A6C886F1 "点击放大")
113
+ 2. 真机测试:点击调试与预览页面右上角的真机测试,可发布真机测试。真机测试前需配置白名单,开发者(团队账户需管理员权限)可通过新增组来管理真机调试用户,每个团队最多可创建100个用户组,每个用户组最多可添加100个用户。 开发者在服务发布至真机调试后,处于真机调试用户白名单中的用户可以访问到该开发测试服务,详见开发者指导文档[真机测试](https://developer.huawei.com/consumer/cn/doc/service/list-of-user-groups-for-real-machine-testing-0000002471264273)。
114
+
115
+ **上架升级**
116
+
117
+ 功能测试完成后,点击【保存】【上架】即可将智能体提交到上架审核阶段,具体流程可参考开发者指导文档[上/下架、升级流程介绍](https://developer.huawei.com/consumer/cn/doc/service/process-introduction-0000002509696971)。
118
+
119
+ #### 音频播放场景
120
+
121
+ ## 场景描述
122
+
123
+ 音频播放的应用场景广泛,可根据使用场景、设备类型及功能需求分为多种适用类型,不同场景下的音频播放均围绕:实时性、音质、设备适配、离线能力、隐私安全等方面展开。
124
+
125
+ ## 场景开发
126
+
127
+ **模式选择**
128
+
129
+ 音频播放场景APP一般包括跳转播放页、播放音频、获取歌曲名称等功能,对于涉及到存在音频播放场景的项目,想要通过语音、文字等操作智能化实现上述功能,则需使用端插件和工作流模式的智能体架构。该架构不仅解决了音频播放场景智能化交互(语音 / 文字指令),还提供了高效的本地执行载体,形成本地化处理与流程协同的高效架构。结合工作流模式,设置节点控制(如音频播放、页面跳转、信息获取),端插件可本地协调多模块交互,运行在设备本地的功能模块。
130
+
131
+ | 模式 | 工作流模式(Workflow) | LLM 模式 |
132
+ | --- | --- | --- |
133
+ | 核心逻辑 | 按预设流程分步执行(如数据查询→格式转换→结果整合) | 基于内部知识直接生成回答,由大模型决策进行工具调用 |
134
+ | 音频播放场景适用性 | 适合音频播放的全链路处理(从资源获取到设备输出) | 适合处理用户语音指令(如 “播放周杰伦的歌”),但无法直接处理音频解码、渲染等底层操作 |
135
+ | 音频播放场景局限性 | 灵活性较低,需人工配置所有流程节点 | 不具备音频编解码、设备驱动等底层能力,需依赖外部工具支持 |
136
+
137
+ 音频播放场景,主要基于音频编解码等功能,需要外部工具的支持,可在端插件实现音频播放功能。同时,音频播放场景一般涉及页面跳转、音频播放、获取信息等功能,通过设计流程节点,可搭建业务所需的整体流程。因此,除了需要选择工作流模式的智能体外,还需要实现适配流程节点的端插件。
138
+
139
+ **端插件创建上架**
140
+
141
+ 1. 创建端插件:在小艺开放平台工作空间的插件界面点击【新建插件】,选择端插件,填写对应的APP包名和名称。点击【保存】后,创建端插件成功,进入端插件的编辑页面。
142
+ 2. 配置端插件:点击【新建工具】,在工具信息页填写工具名称后点击【创建】,可新增一条工具。点击【添加版本】,按页面提示填写参数后,点击【创建】,进入工具信息页,按需求可添加输入输出参数,点击【保存】,端插件的一个工具配置完成。按照上述操作方法,可添加多条工具,开发者可按需配置。具体配置方式也可参考开发者指导文档[创建端插件](https://developer.huawei.com/consumer/cn/doc/service/create-side-plug-in-0000002437625930)。
143
+
144
+ 本场景涉及三个功能,包括获取歌曲名称、跳转播放页、播放音频,因此配置了三个对应功能的工具。具体配置信息如下图所示:
145
+
146
+ | 获取信息 | 跳转页面 | 播放音频 |
147
+ | --- | --- | --- |
148
+ | | | |
149
+ 3. 上架:配置完端插件信息后,点击【上架】按钮,填写版本信息后,点击【确认】,端插件进入上架审核中,待审核上架成功后,即可在其他场景使用已上架的端插件。
150
+
151
+ **端插件开发**
152
+
153
+ 端插件作为设备本地运行的功能模块,提供能力的服务在HarmonyOS设备侧,需要在端侧进行代码实现。对于音频播放场景的实现有以下几步:
154
+
155
+ 1. 在端侧应用工程根目录下新建entry/src/main/resources/base/profile/insight_intent.json文件,用来绑定上一步实现的端插件中对应的工具。
156
+
157
+ intentName对应工具名称,intentVersion对应工具版本号,srcEntry为基于意图框架[InsightIntentExecutor](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-insightintentexecutor#insightintentexecutor)类方法的业务逻辑处理文件。
158
+
159
+ ```
160
+ {
161
+ "insightIntents": [
162
+ {
163
+ "domain": "",
164
+ "intentName": "PlayHiddenAudio",
165
+ "intentVersion": "1.0.0",
166
+ "srcEntry": "./ets/entryability/InsightIntentExecutorImpl.ets",
167
+ "uiAbility": {
168
+ "ability": "EntryAbility",
169
+ "executeMode": [
170
+ "background"
171
+ ]
172
+ }
173
+ },
174
+ {
175
+ "domain": "",
176
+ "intentName": "GetAudioName",
177
+ "intentVersion": "1.0.0",
178
+ "srcEntry": "./ets/entryability/InsightIntentExecutorImpl.ets",
179
+ "uiAbility": {
180
+ "ability": "EntryAbility",
181
+ "executeMode": [
182
+ "background"
183
+ ]
184
+ }
185
+ },
186
+ {
187
+ "domain": "",
188
+ "intentName": "OpenSecondPage",
189
+ "intentVersion": "1.0.0",
190
+ "srcEntry": "./ets/entryability/InsightIntentExecutorImpl.ets",
191
+ "uiAbility": {
192
+ "ability": "EntryAbility",
193
+ "executeMode": [
194
+ "background",
195
+ "foreground"
196
+ ]
197
+ }
198
+ }
199
+ ]
200
+ }
201
+ ```
202
+ 2. 绑定的端插件被调用时的业务逻辑处理。
203
+
204
+ ```
205
+ import { insightIntent, InsightIntentExecutor } from '@kit.AbilityKit';
206
+ import { BusinessError } from '@kit.BasicServicesKit';
207
+ import { window } from '@kit.ArkUI';
208
+ import AudioPlayHandler from './intentHandlers/AudioPlayHandler';
209
+ import TextGetHandler from './intentHandlers/TextGetHandler';
210
+ import PageNavigateHandler from './intentHandlers/PageNavigateHandler';
211
+ import { hilog } from '@kit.PerformanceAnalysisKit';
212
+
213
+ export default class InsightIntentExecutorImpl extends InsightIntentExecutor {
214
+ // Instruction implementation class.
215
+ private audioHandler = new AudioPlayHandler();
216
+ private textHandler = new TextGetHandler();
217
+ private pageHandler = new PageNavigateHandler();
218
+
219
+ // Intention execution method for backend execution.
220
+ async onExecuteInUIAbilityBackgroundMode(
221
+ intentName: string,
222
+ params: Record<string, object>
223
+ ): Promise<insightIntent.ExecuteResult> {
224
+
225
+ try {
226
+ switch (intentName) {
227
+ // Play audio intention.
228
+ case 'PlayHiddenAudio':
229
+ const stringParam: Record<string, string> = this.convertToRecord(params);
230
+ return this.audioHandler.execute(stringParam);
231
+
232
+ // Obtain audio name intent.
233
+ case 'GetAudioName':
234
+ return this.textHandler.execute();
235
+
236
+ default:
237
+ return {
238
+ code: -1,
239
+ result: {
240
+ 'status': 'failed',
241
+ 'message': `not valid intent name, ${intentName}`
242
+ }
243
+ };
244
+ }
245
+ } catch (error) {
246
+ return {
247
+ code: -2,
248
+ result: {
249
+ 'status': 'failed',
250
+ 'message': `Intent execution failed: ${(error as BusinessError).message}`
251
+ }
252
+ };
253
+ }
254
+ }
255
+
256
+ private convertToRecord(origin: Record<string, object>): Record<string, string> {
257
+ const result: Record<string, string> = {};
258
+ Object.keys(origin).forEach(key => {
259
+ result[key] = String(origin[key]);
260
+ });
261
+
262
+ return result;
263
+ }
264
+
265
+ // Execution method of backend execution intention.
266
+ async onExecuteInUIAbilityForegroundMode(name: string, param: Record<string, Object>, pageLoader: window.WindowStage):
267
+ Promise<insightIntent.ExecuteResult> {
268
+ switch (name) {
269
+ // Open the second page intention.
270
+ case 'OpenSecondPage':
271
+ return this.pageHandler.execute();
272
+ default:
273
+ pageLoader.loadContent('pages/MainPage')
274
+ .catch((error: BusinessError) => {
275
+ hilog.error(0x000, 'testTag', `loadContent failed. code=${error.code}, message=${error.message}`);
276
+ })
277
+ break;
278
+ }
279
+ return Promise.resolve({
280
+ code: -1,
281
+ result: {
282
+ message: 'unknown intent'
283
+ }
284
+ } as insightIntent.ExecuteResult)
285
+ }
286
+ }
287
+ ```
288
+ 3. 功能开发。
289
+ - 实现获取歌曲名称的功能,并返回读取结果。
290
+
291
+ ```
292
+ import { insightIntent } from '@kit.AbilityKit';
293
+ import { BusinessError } from '@kit.BasicServicesKit';
294
+ import { MediaService } from '../../utils/audioplayer/MediaService';
295
+
296
+ export default class TextGetHandler {
297
+ async execute(): Promise<insightIntent.ExecuteResult> {
298
+ try {
299
+ // Execute the method of obtaining the name of the played audio.
300
+ const audioName: string = MediaService.getInstance().getAudioFileName();
301
+
302
+ // Return result.
303
+ return {
304
+ code: 0,
305
+ result: {
306
+ status:'success',
307
+ audioName: audioName,
308
+ message: 'get audio name success'
309
+ }
310
+ };
311
+ } catch (error) {
312
+ throw new Error(`get audio name failed: ${(error as BusinessError).message}`);
313
+ }
314
+ }
315
+ }
316
+ ```
317
+ - 使用[Deep Linking](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/deep-linking-startup#拉起方应用实现应用跳转)实现跳转播放页的功能。
318
+
319
+ 配置module.json5文件中的[skills标签](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file#skills标签),标识跳转场景。
320
+
321
+ ```
322
+ "skills": [
323
+ {
324
+ "entities": [
325
+ "entity.system.home",
326
+ "entity.system.browsable"
327
+ ],
328
+ "actions": [
329
+ "ohos.want.action.home",
330
+ "ohos.want.action.viewData"
331
+ ],
332
+ "uris": [
333
+ {
334
+ "scheme": "demo",
335
+ "host": "aiagentdemo.com",
336
+ "path": "SecondPage"
337
+ }
338
+ ]
339
+ }
340
+ ]
341
+ ```
342
+
343
+ 在EntryAbility.ets文件中的onNewWant()生命周期回调中,获取、解析拉起方传入的应用链接,开发者可自定义后续的业务处理。
344
+
345
+ ```
346
+ onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
347
+ hilog.info(DOMAIN, 'testTag', 'Received URI:', want.uri);
348
+ const uri = want.uri;
349
+ let pathname = '';
350
+ if (uri) {
351
+ try {
352
+ const urlObj = url.URL.parseURL(uri);
353
+ pathname = urlObj.pathname;
354
+ } catch (error) {
355
+ let err = error as BusinessError;
356
+ hilog.error(0x000, 'testTag', `getUIContext failed. code=${err.code}, message=${err.message}`);
357
+ }
358
+ uiContext?.getRouter().pushUrl({ url: 'pages' + pathname })
359
+ .catch((error: BusinessError) => {
360
+ hilog.error(0x000, 'testTag', `pushUrl failed. code=${error.code}, message=${error.message}`);
361
+ })
362
+ }
363
+ }
364
+ ```
365
+
366
+ 执行页面跳转并返回跳转结果。
367
+
368
+ ```
369
+ import { insightIntent } from '@kit.AbilityKit';
370
+ import { BusinessError } from '@kit.BasicServicesKit';
371
+ import { hilog } from '@kit.PerformanceAnalysisKit';
372
+
373
+ export default class PageNavigateHandler {
374
+ async execute(): Promise<insightIntent.ExecuteResult> {
375
+ try {
376
+ // Execute page redirection.
377
+ let uiContext: UIContext | null | undefined = null;
378
+ uiContext = AppStorage.get('uiContext');
379
+ uiContext?.getRouter().pushUrl({ url: 'pages/SecondPage' })
380
+ .catch((err: BusinessError) => {
381
+ hilog.error(0x0000, 'testTag',`pushUrl failed, Code:${err.code}, message:${err.message}`);
382
+ })
383
+
384
+ return {
385
+ code: 0,
386
+ result: {
387
+ status: 'success',
388
+ message: 'Navigation successful',
389
+ targetPage: 'SecondPage'
390
+ }
391
+ };
392
+ } catch (error) {
393
+ throw new Error(`Page navigation failed: ${(error as BusinessError).message}`);
394
+ }
395
+ }
396
+ }
397
+ ```
398
+ - 音频播放功能的实现,开发者可根据实际业务需求自定义实现该功能。
399
+
400
+ ```
401
+ import { insightIntent } from '@kit.AbilityKit';
402
+ import { BusinessError } from '@kit.BasicServicesKit';
403
+ import { MediaService } from '../../utils/audioplayer/MediaService';
404
+
405
+ export default class AudioPlayHandler {
406
+
407
+ async execute(param: Record<string, string>): Promise<insightIntent.ExecuteResult> {
408
+ try {
409
+ // Analyze the parameters passed in by the plugin on the parsing end.
410
+ const rawAudioName = param.audioName;
411
+ const audioName = rawAudioName.toString();
412
+
413
+ // The method of playing audio can be customized by developers according to their actual business needs.
414
+ MediaService.getInstance().initAudioPlayer(audioName);
415
+
416
+ // Return the result to the end plugin.
417
+ return {
418
+ code: 0,
419
+ result: {
420
+ status: 'success',
421
+ message: `play audio ${audioName} started`,
422
+ }
423
+ };
424
+ } catch (error) {
425
+ throw new Error(`Audio play failed: ${(error as BusinessError).message}`);
426
+ }
427
+ }
428
+ }
429
+ ```
430
+
431
+ **工作流创建上架**
432
+
433
+ 1. [创建工作流](https://developer.huawei.com/consumer/cn/doc/service/create-workflow-0000002471344157):在小艺开放平台工作空间的工作流界面点击【新建工作流】,填写工作流对应信息后,点击【确定】,创建工作流成功并进入工作流编辑页面。
434
+ 2. 编排工作流:
435
+ 1. 创建工作流后,在画布中点击【添加节点】后,选择【插件】按钮,在工作空间中选择已上架的端插件点击【添加】,即可将所需插件添加至画布中。
436
+ 2. 获取歌曲名称、跳转播放页、播放音频三个功能场景为并列关系,可在画布中点击【添加节点】,添加【选择器】,点击添加好的选择器,在右侧的选择器编辑页面设定不同分支对应的条件,条件成立则下一步运行对应的分支(点击条件分支右侧的+号,可添加一条分支)。
437
+
438
+ | 创建选择器 | 选择器条件分支 |
439
+ | --- | --- |
440
+ | | |
441
+ 3. 按照任务执行顺序连接对应节点
442
+
443
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/82/v3/bNvXHUpVQEigbUL3Raspnw/zh-cn_image_0000002358003581.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=2BC90E965814C8E5BF6650E998BA0C30B860774C326FD1F72B162B520F1E8664 "点击放大")
444
+ 3. 测试上架:点击【试运行】后,进入调试页面,可自行测试整体流程(无法在小艺开放平台调试端插件适配情况,只能测试工作流整体流程)。测试无误后,点击【上架】,进入上架审核阶段,待审核通过,即可在智能体中添加插件。
445
+
446
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/44/v3/5QFgR93-Q9-Tgncb47oAEA/zh-cn_image_0000002324005016.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=BA118BABC02A81735737DA22031693A867FD034E70360C967ABBC24D799993D5 "点击放大")
447
+
448
+ **工作流模式智能体编排**
449
+
450
+ 音频播放场景所需的端插件、工作流都已经开发完成,并成功上架成功后,接下来就是智能体的搭建过程了。
451
+
452
+ 1. 创建智能体:可参考上述[开发步骤](#section369116225258),创建一个工作流模式的智能体;
453
+ 2. 编排智能体:进入智能体编排页面,编排智能体的开场对话,添加上架完成的工作流,开发者可按照实际业务需求自行搭建;
454
+
455
+ **功能验证**
456
+
457
+ 1. 调试与测试:调试与预览界面可以进行交互测试,预览实际交互场景,也可点击右上角调试按钮,进入调试详情页,查看详细的调试信息。
458
+
459
+ | 调试与预览 | 调试详情 |
460
+ | --- | --- |
461
+ | | |
462
+ 2. 真机测试:端插件涉及到端侧的应用,故平台调试无法与端侧应用联调,只能在端侧设备上进行智能体使用效果的真实体验。具体测试流程详见开发者指导文档[真机测试](https://developer.huawei.com/consumer/cn/doc/service/list-of-user-groups-for-real-machine-testing-0000002471264273)。
463
+
464
+ **上架升级**
465
+
466
+ 功能测试完成后,点击【保存】【上架】即可将智能体提交到上架审核阶段,具体流程可参考开发者指导文档[上/下架、升级流程介绍](https://developer.huawei.com/consumer/cn/doc/service/process-introduction-0000002509696971)。上架完成后,可在端侧小艺的智能体页面搜索查询到创建的智能体并使用。效果如下:
467
+
468
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/81/v3/McCabbhoRyiDCzKjJp7eGA/zh-cn_image_0000002358003589.png?HW-CC-KV=V1&HW-CC-Date=20260623T075629Z&HW-CC-Expire=86400&HW-CC-Sign=1F2EB98862F466013469AC53DB86FE8F1F3862CD036C0EFFA73A384D513297BB "点击放大")
469
+
470
+ #### 总结
471
+
472
+ 智能体具有拟人化交互与智能决策、多场景需求覆盖的特点,通过 “交互智能化 + 场景定制化” 满足用户与行业需求。[小艺智能体平台](https://developer.huawei.com/consumer/cn/hag/hagindex.html?isInFrame=true&lang=zh_CN#/agentHome/square)依托华为技术生态,为开发者提供从创建到上架的全流程工具支持,助力专属智能体的快速落地与实现。