Skip to content

feat: ✨ Handle tool response checks with nemo guardrails check#32

Merged
evaline-ju merged 29 commits intokagenti:mainfrom
evaline-ju:tool-response
Feb 23, 2026
Merged

feat: ✨ Handle tool response checks with nemo guardrails check#32
evaline-ju merged 29 commits intokagenti:mainfrom
evaline-ju:tool-response

Conversation

@evaline-ju
Copy link
Copy Markdown
Contributor

@evaline-ju evaline-ju commented Feb 11, 2026

Summary

  • Update ext-proc handling for checking for response bodies, which may be chunked. Here the strategy is to buffer chunks until they are all available to run checks on. Chunks may be empty and/or contain just end-of-stream (EOS) information
    • Add some initial server function tests, mainly around response body buffering and calling the post tool invocation hook
  • Implement tool_post_invoke hook for Nemo guardrails check server, essentially calling the /guardrail/checks endpoint with role:tool and content ref. https://github.com/trustyai-explainability/trustyai-guardrails-operator/blob/main/docs/nemo_guardrails_quickstart.md
    • We focus on text for now, ignoring other potential content types, and multiple text arrays (if available) become concatenated
    • Add unit tests for this along with an addition for the existing tool_pre_invoke function
  • Add line length on format/lint (can be adjusted to later to separate pyproject.toml etc.) and invoked this on files
  • Makes errors more consistent for feature: Propagate error information from nemo check #19

Example call:

Screenshot 2026-02-23 at 10 41 29 AM

Related issue(s)

Fixes #18

Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
…l plugin

Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
@evaline-ju evaline-ju changed the title feat: ✨ Handle tool response checks with nemo guardrails check feat: ✨ Handle tool response checks with nemo guardrails check [to-rebase] Feb 13, 2026
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
@evaline-ju
Copy link
Copy Markdown
Contributor Author

Planning to rebase on #34 so that updated tool response check logic does not have to go into two plugins

Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
@evaline-ju evaline-ju changed the title feat: ✨ Handle tool response checks with nemo guardrails check [to-rebase] feat: ✨ Handle tool response checks with nemo guardrails check [builds on 34] Feb 14, 2026
@evaline-ju evaline-ju changed the title feat: ✨ Handle tool response checks with nemo guardrails check [builds on 34] feat: ✨ Handle tool response checks with nemo guardrails check [dep on #34] Feb 14, 2026
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
@evaline-ju evaline-ju marked this pull request as ready for review February 16, 2026 17:10
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
@evaline-ju evaline-ju changed the title feat: ✨ Handle tool response checks with nemo guardrails check [dep on #34] feat: ✨ Handle tool response checks with nemo guardrails check Feb 23, 2026
Signed-off-by: Evaline Ju <69598118+evaline-ju@users.noreply.github.com>
Copy link
Copy Markdown
Collaborator

@julianstephen julianstephen left a comment

Choose a reason for hiding this comment

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

Lgtm. We can work on the tool response format within the other issue.

@evaline-ju evaline-ju merged commit 1ed2446 into kagenti:main Feb 23, 2026
3 checks passed
@evaline-ju evaline-ju deleted the tool-response branch February 23, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feature: Tool response processing with nemo check

2 participants