Skip to content

[Inference] Prompts: reasoning mode + ES|QL prompt#226616

Merged
dgieselaar merged 9 commits intoelastic:mainfrom
dgieselaar:inference-prompt-reasoning
Aug 1, 2025
Merged

[Inference] Prompts: reasoning mode + ES|QL prompt#226616
dgieselaar merged 9 commits intoelastic:mainfrom
dgieselaar:inference-prompt-reasoning

Conversation

@dgieselaar
Copy link
Copy Markdown
Contributor

@dgieselaar dgieselaar commented Jul 4, 2025

Adds a utility function that will execute a Prompt (system message, user message template and tool definitions), in a way that the LLM will reason about the task and its progress and execute tools autonomously until it feels confident enough to answer the question. As an example, a reference implementation was added for answering ES|QL related questions.

The utility function (executeAsReasoningAgent) will be used in Streams for various LLM-based workflows.

@dgieselaar dgieselaar force-pushed the inference-prompt-reasoning branch from 228d1b0 to 98f23d1 Compare July 29, 2025 11:42
@dgieselaar dgieselaar added release_note:skip Skip the PR/issue when compiling release notes v9.2.0 backport:version Backport to applied version labels labels Jul 29, 2025
@dgieselaar dgieselaar marked this pull request as ready for review July 29, 2025 11:47
@dgieselaar dgieselaar requested a review from a team as a code owner July 29, 2025 11:47
@dgieselaar
Copy link
Copy Markdown
Contributor Author

@elasticmachine merge upstream

fields: '*',
index_filter: {
bool: {
filter: rangeQuery(start, end),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonder if it would be beneficial to restrict this query to certain data tiers, or exclude frozen tiers here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the rangeQuery will do that, based on time. It will only hit frozen/cold/warm if the data is within range - ES will pre-filter shards for data streams based on time range. It might still hit frozen if it queries a wide time range, but that's maybe more of a feature - otherwise it cannot query frozen even if the user asks for it.

const { fields, ...meta } = analysis;
const [nonEmptyFields, emptyFields] = partition(analysis.fields, (field) => !field.empty);

const sortedFields = [...shuffle(nonEmptyFields), ...shuffle(emptyFields)];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a comment to note why we are calling shuffle() here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes! it's to get a random-ish subset of fields, so you don't end up with a-f and drop everything on the floor. (i'll add this as a comment)

dgieselaar and others added 2 commits July 31, 2025 09:25
…ql_task_description.text

Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com>
Copy link
Copy Markdown
Member

@qn895 qn895 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM as we can address the remaining comments in the follow up 🎉

@dgieselaar
Copy link
Copy Markdown
Contributor Author

@elasticmachine merge upstream

@dgieselaar dgieselaar enabled auto-merge (squash) August 1, 2025 11:26
@dgieselaar dgieselaar merged commit 7d45e8e into elastic:main Aug 1, 2025
14 checks passed
@elasticmachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

Metrics [docs]

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/ai-tools - 23 +23
@kbn/inference-common 171 173 +2
@kbn/inference-prompt-utils - 4 +4
total +29

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
@kbn/ai-tools - 2 +2
Unknown metric groups

API count

id before after diff
@kbn/ai-tools - 23 +23
@kbn/inference-common 318 320 +2
@kbn/inference-prompt-utils - 4 +4
total +29

History

@dgieselaar dgieselaar deleted the inference-prompt-reasoning branch August 1, 2025 13:54
szaffarano pushed a commit to szaffarano/kibana that referenced this pull request Aug 5, 2025
Adds a utility function that will execute a Prompt (system message, user
message template and tool definitions), in a way that the LLM will
reason about the task and its progress and execute tools autonomously
until it feels confident enough to answer the question. As an example, a
reference implementation was added for answering ES|QL related
questions.

The utility function (`executeAsReasoningAgent`) will be used in Streams
for various LLM-based workflows.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com>
@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Aug 5, 2025
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

delanni pushed a commit to delanni/kibana that referenced this pull request Aug 5, 2025
Adds a utility function that will execute a Prompt (system message, user
message template and tool definitions), in a way that the LLM will
reason about the task and its progress and execute tools autonomously
until it feels confident enough to answer the question. As an example, a
reference implementation was added for answering ES|QL related
questions.

The utility function (`executeAsReasoningAgent`) will be used in Streams
for various LLM-based workflows.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com>
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

1 similar comment
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@wildemat wildemat mentioned this pull request Aug 7, 2025
10 tasks
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

5 similar comments
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

NicholasPeretti pushed a commit to NicholasPeretti/kibana that referenced this pull request Aug 18, 2025
Adds a utility function that will execute a Prompt (system message, user
message template and tool definitions), in a way that the LLM will
reason about the task and its progress and execute tools autonomously
until it feels confident enough to answer the question. As an example, a
reference implementation was added for answering ES|QL related
questions.

The utility function (`executeAsReasoningAgent`) will be used in Streams
for various LLM-based workflows.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com>
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

9 similar comments
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 226616 locally
cc: @dgieselaar

@dgieselaar dgieselaar added the backport:skip This PR does not require backporting label Sep 1, 2025
@kibanamachine kibanamachine removed the backport missing Added to PRs automatically when the are determined to be missing a backport. label Sep 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting backport:version Backport to applied version labels release_note:skip Skip the PR/issue when compiling release notes v9.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants