terraphim / terraphim/terraphim-ai

Evaluate: Cross-provider context serialisation for ADF multi-model routing

Open
#685 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
62
Forks
5
Avg merge
2h 27m
Merged PRs (30d)
1

Description

Parent Epic

#682 -- Evaluate Pi architectural patterns

Pattern

Pi's pi-ai layer supports cross-provider handoffs: switch models mid-session while serialising conversation context across different provider formats (Anthropic, OpenAI, Google, etc.). Context serialisation handles format differences transparently.

Current State

ADF (terraphim_orchestrator) routes different agents to different models via RoutingEngine:

  • fastest -> Cerebras llama-3.3-70b (~300ms)
  • think -> z.ai GLM-5 (reasoning)
  • general -> z.ai GLM-4.7
  • default -> Claude via claude -p

However, each agent runs in isolation. There is no mechanism to:

  1. Hand off context from one model to another mid-task
  2. Serialise a conversation from Claude format to OpenAI format for a second opinion
  3. Use a cheaper model for initial analysis then escalate to a more capable model with the same context

Evaluation Questions

  1. Is cross-provider handoff valuable for ADF? Current agents are independent. Would "start with Cerebras, escalate to Claude" improve cost/quality?
  2. What does context serialisation look like in Rust? Pi does this in TypeScript. Rust implementation would need serde-based format converters for each provider's message schema.
  3. Does this conflict with the Agent SDK direction? If we migrate ADF to Agent SDK (#682 context), we're locked to Claude. Cross-provider would only apply to non-SDK agents.
  4. What's the minimal viable implementation? E.g., Anthropic <-> OpenAI message format converter as a standalone function.

Acceptance Criteria

  • Identify 2-3 concrete ADF scenarios where cross-provider handoff would improve outcomes
  • Prototype message format converter: Anthropic Messages API <-> OpenAI Chat Completions API
  • Measure context loss (if any) during serialisation round-trip
  • Decision: implement, defer, or reject with rationale

References

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading terraphim-ai/crates/terraphim_orchestrator/src/routing.rs and the referenced Pi cross-provider handoff implementation. Review the listed ADF routing scenarios and provider formats, then prototype the Anthropic Messages API ↔ OpenAI Chat Completions API conversion and measure round-trip context loss. Done means documenting the scenarios and a rationale to implement, defer, or reject the approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
ai, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.