[Search] Move ai.prompt, ai.summarize, ai.classify workflows to inference plugin#269392
Conversation
…enceWorkflows plugin Create a new `inferenceWorkflows` plugin at x-pack/platform/plugins/shared/inference_workflows/ that registers the three AI workflow steps via the external workflowsExtensions registration API. This moves inference-specific workflow step logic out of the generic workflows_extensions plugin and into a search-team owned plugin, following the same pattern as agent_builder.
Remove ai.prompt, ai.summarize, ai.classify step definitions from the workflows_extensions plugin now that they are registered externally by the new inferenceWorkflows plugin. Update CODEOWNERS and i18n config.
🔍 Preview links for changed docs |
✅ Vale Linting ResultsNo issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
…-workflows-to-inference
…-workflows-to-inference
|
We can manually test this by going the Feature Settings page. |
…e deps from workflows_extensions - Move searchInferenceEndpoints optional dep from workflows_extensions to inference_workflows - Call registerInferenceFeatures in inference_workflows plugin setup - Fix SSPL license headers on ai_feature_ids.ts and register_inference_features.ts (x-pack requires EL2.0) - Add InferenceWorkflowsSetupDeps/StartDeps types with searchInferenceEndpoints
…ansavitski/kibana into feature/move-ai-workflows-to-inference
|
@saikatsarkar056 Yeah I fixed that locally but didn't create a commit yet. Locally everything works now |
… type declarations
| ...AiClassifyStepCommonDefinition, | ||
| icon: React.lazy(() => | ||
| import('@elastic/eui/es/components/icon/assets/product_agent').then(({ icon }) => ({ | ||
| import('@elastic/eui/src/components/icon/assets/product_agent').then(({ icon }) => ({ |
There was a problem hiding this comment.
@elastic/eui/src/... is different from what every other workflow step plugin uses (/es/). Change to @elastic/eui/es/components/icon/assets/product_agent (same for ai_summarize and ai_classify). You'll also need a public/eui_icons.d.ts.
See agent_builder/public/eui_icons.d.ts for the module declaration.
Add public/eui_icons.d.ts (matching agent_builder pattern) and revert icon imports from src/ back to es/ path.
Replace template literals with variable substitution in defaultMessage with i18n values object pattern as required by the i18n linter.
| defaultMessage: 'Categorizes data into predefined categories using AI', | ||
| }), | ||
| documentation: { | ||
| details: i18n.translate('workflowsExtensionsExample.AiClassifyStep.documentation.details', { |
There was a problem hiding this comment.
FYI: the template literal substitution in defaultMessage here (\The ${AiClassifyStepTypeId} step...) is not valid i18n syntax — the i18n extraction tool requires static strings with variables passed via the values object instead.
This went unnoticed because the workflowsExtensionsExample namespace wasn't registered in .i18nrc.json
…-workflows-to-inference
|
@elastic/workflows-eng, @elastic/kibana-core could you review this pr? |
…-workflows-to-inference
…ansavitski/kibana into feature/move-ai-workflows-to-inference
💛 Build succeeded, but was flaky
Failed CI Steps
Test Failures
Metrics [docs]Module Count
Async chunks
Page load bundle
Unknown metric groupsasync chunk count
History
|

Summary
Resolves https://github.com/elastic/search-team/issues/14019
Moves the three AI workflow steps (
ai.prompt,ai.summarize,ai.classify) from theworkflowsExtensionsplugin to a newinferenceWorkflowsplugin owned by@elastic/search-kibana.inferenceWorkflowsplugin atx-pack/platform/plugins/shared/inference_workflows/workflowsExtensions.registerStepDefinition()API (same pattern asagent_builder)searchInferenceEndpointsso admins can configure model restrictions per step on the Inference Endpoints settings pageworkflows_extensions— it now only contains data.* stepsWhy a new plugin?
The
inferenceplugin cannot depend onworkflowsExtensions(circular dependency —workflowsExtensionsalready depends oninference). A dedicated plugin keeps dependencies flowing in the right direction and gives the search team clear ownership.What changed
workflowsExtensionsinferenceWorkflowspluginsrc/)x-pack/)workflowsExtensionsExample.*xpack.inferenceWorkflows.*workflowsExtensions(stale after merge)inferenceWorkflowsplugin setupChecklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesbackport:*labels.Test plan
approved_step_definitions.tshandler hashes after CI build🤖 Generated with Claude Code