feat: agentic loop with OGX vector search and conversation persistence#34
Draft
franciscojavierarceo wants to merge 9 commits into
Draft
feat: agentic loop with OGX vector search and conversation persistence#34franciscojavierarceo wants to merge 9 commits into
franciscojavierarceo wants to merge 9 commits into
Conversation
48035cb to
84bb97f
Compare
This was referenced May 29, 2026
d282b0c to
0ef5f75
Compare
Collaborator
|
@franciscojavierarceo Is this still in-progress or ready for review? Happy to take a look when you're ready — especially interested in how the OGX |
Collaborator
Author
Add trait-based store backend (ResponseStore, VectorSearch) in agentic-core with OGx as the first implementation. The gateway handler detects file_search tool calls and runs an agentic loop: send to vLLM with file_search converted to a function tool, execute vector search via OGx, feed results back, repeat until no more tool calls or max iterations reached. State hydration prepends previous conversation history when previous_response_id is set. - agentic-core: types, store traits, OGx impl, error expansion - agentic-server: handler with agentic loop, state hydration, proxy - 22 new tests: proxy, agentic loop, state hydration, integration - CI: integration job with OGx vector search Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
0ef5f75 to
cc71bb1
Compare
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
…tion-v2 Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
…tion-v2 Signed-off-by: Francisco Javier Arceo <farceo@redhat.com> # Conflicts: # crates/agentic-core/src/storage/types/item.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the agentic loop to the gateway, integrating OGX for vector search (file_search tool) and wiring up conversation/response persistence from the storage CRUD layer (#33, #45).
handler.rs: multi-turn tool-call loop that proxies/v1/responsesthrough vLLM, executesfile_searchtool calls via OGX, and feeds results back until the model completes or hitsmax_iterationsVectorSearchtrait inagentic-core: async trait with OGX implementation that calls the OGX vector search APIConversationStore/ResponseStoreon each loop iterationAppStaterefactor: unified shared state (ProxyState+ stores + vector search + config) behindArc<AppState>openai/gpt-oss-20bResponses API output for the file_search loop while still exercising live OGX search inmake integration-testmake integration-testdocs/architecture/index.mddescribing the gateway layersvector_store_ids, forwardsfilters/max_num_results/ranking_optionsto OGX, rejects mixed file_search plus user function calls until that loop supports them explicitly, and accepts vLLM function calls withstatus: nullTest Plan
cargo testcargo clippy --all-targets -- -D warningscargo fmt -- --checkSKIP=no-commit-to-branch /Users/farceo/.local/bin/uvx pre-commit run --all-filesPATH=/Users/farceo/.local/bin:$PATH OGX_CMD='/Users/farceo/.local/bin/uv run --project /Users/farceo/dev/ogx --python 3.12 --extra starter ogx' make integration-testvector_store_ids