feat(agent): M4b — OpenAI-compatible HTTP provider (Qwen/Kimi) #11

Merged
charles merged 1 commit from feat/m4b-http-provider into main 2026-06-17 14:05:19 +00:00
Owner

Roadmap M4b: the real LLM provider. OpenAiCompat implements LlmProvider over reqwest/rustls — one adapter for Qwen3.6/Ollama and Kimi K2/UmansAI (FR-AGT-04/05), backend-config-driven.

Changes

  • OpenAiCompat::new(base, api_key, model) → POST {base}/chat/completions with messages + tools, optional bearer.
  • Mapping is pure + unit-tested: build_body (role mapping, tool specs, tool_choice) and parse_turn (tool_calls with JSON-string arguments → Value, final text, garbage→error). No live LLM or mock server in CI.

Verification

  • just qa green; agent 9 tests (5 loop + 4 mapping).

Next: M5 integrations (transport/lodging/activities) then M6 — wire agent + tools into the trip builder, replacing StubBuilder. Traces: FR-AGT-04/05 · tech-spec 04 §4.1.

Roadmap **M4b**: the real LLM provider. `OpenAiCompat` implements `LlmProvider` over reqwest/rustls — one adapter for **Qwen3.6/Ollama** and **Kimi K2/UmansAI** (FR-AGT-04/05), backend-config-driven. ## Changes - `OpenAiCompat::new(base, api_key, model)` → POST `{base}/chat/completions` with messages + tools, optional bearer. - Mapping is **pure + unit-tested**: `build_body` (role mapping, tool specs, tool_choice) and `parse_turn` (tool_calls with JSON-string arguments → Value, final text, garbage→error). No live LLM or mock server in CI. ## Verification - `just qa` green; agent 9 tests (5 loop + 4 mapping). Next: M5 integrations (transport/lodging/activities) then M6 — wire agent + tools into the trip builder, replacing StubBuilder. Traces: FR-AGT-04/05 · tech-spec 04 §4.1.
feat(agent): M4b — OpenAI-compatible HTTP provider (Qwen/Ollama, Kimi/UmansAI)
All checks were successful
qa / qa-1 (pull_request) Successful in 1m4s
qa / qa (pull_request) Successful in 0s
qa / qa-1 (push) Successful in 4m21s
qa / qa (push) Successful in 0s
5d7bc55b8b
- OpenAiCompat implements LlmProvider over reqwest (rustls): POST
  {base}/chat/completions with messages + tools, bearer auth optional.
  One adapter for both Qwen3.6/Ollama and Kimi K2/UmansAI (FR-AGT-04/05).
- request/response mapping is pure (build_body / parse_turn) and unit-tested —
  role mapping, tool specs, tool_call parsing (arguments JSON-string → Value),
  final-text, garbage-errors. No live LLM / mock server needed in CI.

just qa green; agent 9 tests (5 loop + 4 mapping).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/geneatrip!11
No description provided.