Skip to content

feat: axum server with OGX-backed agentic loop and state hydration#30

Draft
franciscojavierarceo wants to merge 2 commits into
feat/praxis-integrationfrom
feat/axum-ogx-integration
Draft

feat: axum server with OGX-backed agentic loop and state hydration#30
franciscojavierarceo wants to merge 2 commits into
feat/praxis-integrationfrom
feat/axum-ogx-integration

Conversation

@franciscojavierarceo
Copy link
Copy Markdown
Collaborator

Summary

  • Replace Praxis filter architecture with a plain axum HTTP server
  • Add trait-based store backend (ResponseStore, VectorSearch) with OGx as first implementation
  • Implement state hydration: fetch conversation history from OGx when previous_response_id is set
  • Implement agentic loop: execute file_search tool calls via OGx vector store API, feed results back to vLLM, loop until final response
  • Reverse proxy to vLLM with streaming support and auth injection

Test plan

  • 15 tests pass (cargo test): 7 proxy, 4 agentic loop, 2 state hydration, 2 config unit tests
  • cargo clippy --all-targets -- -D warnings clean
  • cargo fmt -- --check clean
  • Tests use mock axum servers for vLLM and OGx — no live services needed
  • Integration test with live OGx pending

🤖 Generated with Claude Code

franciscojavierarceo and others added 2 commits May 20, 2026 00:23
…d state hydration

Drop the Praxis filter architecture in favor of a plain axum HTTP
server. The gateway now supports three capabilities:

- Reverse proxy to vLLM with streaming and auth injection
- State hydration via previous_response_id (fetches history from OGx)
- Agentic loop with file_search tool execution via OGx vector stores

The store backend is trait-based (ResponseStore, VectorSearch) with OGx
as the first implementation, allowing other backends to be plugged in.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Add an integration test that runs against a real OGx instance to verify
state hydration end-to-end. The test creates a response in OGx, sends a
follow-up request through the gateway with previous_response_id, and
verifies vLLM receives the hydrated conversation history.

- tests/integration/run.sh: starts OGx, runs tests, tears down
- tests/integration/ogx-config.yaml: minimal OGx config (SQLite only)
- tests/integration_test.rs: Rust integration test (skips if OGX_BASE_URL unset)
- Makefile: add integration-test target
- CI: add integration job that installs OGx via pip

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
@franciscojavierarceo franciscojavierarceo changed the title feat: axum server with OGx-backed agentic loop and state hydration feat: axum server with OGX-backed agentic loop and state hydration May 21, 2026
@maralbahari
Copy link
Copy Markdown
Collaborator

@franciscojavierarceo could you please follow the same design as #28. agentic-core would not fully in rust native with standard rust package it handles response store and conversation as well. maybe rebase with #29 and implement part of agentic-praxis

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.

2 participants