terraphim / terraphim/terraphim-ai
Evaluate: Extract standalone LLM interaction crate (Pi layered architecture pattern)
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 62
- Fork
- 5
- Merge medio
- 2h 27m
- PR unite (30g)
- 1
Descrizione
Parent Epic
#682 -- Evaluate Pi architectural patterns
Pattern
Pi uses a 3-layer architecture where each layer is independently usable:
pi-ai (unified LLM API, multi-provider streaming, token/cost tracking)
|
pi-agent-core (stateful agent loop, tool execution, events, state management)
|
pi-coding-agent (TUI, sessions, extensions, skills, themes)
Any consumer can use pi-ai alone for LLM streaming, pi-agent-core for an agent without UI, or the full stack.
Current State
LLM interaction code in terraphim-ai is scattered across:
terraphim_orchestrator-- spawns CLI agents (subprocess management)terraphim_multi_agent-- agent configurations and model routingterraphim_llm_proxy-- HTTP proxy with model routing- Ad-hoc scripts in
cto-executive-system/automation/
There is no standalone crate for "call an LLM, get a response, track tokens/cost" that other crates can depend on without pulling in the full orchestrator or multi-agent machinery.
Evaluation Questions
- What belongs in a standalone LLM crate? Candidates: provider abstraction, streaming response types, token counting, cost calculation, context serialisation, model registry.
- Does this overlap with existing crates? Check
terraphim_llm_proxy(already has model routing) andterraphim_multi_agent(has agent configs). - Would this simplify ADF? Currently
terraphim_orchestratorshells out toclaude -pandcodex exec. A Rust-native LLM crate could replace some subprocess calls. - What about the Claude Agent SDK? The Agent SDK (#682 context) provides a Python/TypeScript library for Claude. A Rust LLM crate would serve a different purpose (direct API calls, multi-provider, no agent loop).
Acceptance Criteria
- Map all LLM interaction points across the 54-crate workspace
- Define proposed crate boundary (what goes in, what stays out)
- Assess overlap with terraphim_llm_proxy and terraphim_multi_agent
- Decision: extract, refactor existing, or reject with rationale
References
- Pi pi-ai package: https://github.com/badlogic/pi-mono/tree/main/packages/ai
- terraphim_llm_proxy: terraphim-ai/crates/terraphim_llm_proxy
- terraphim_multi_agent: terraphim-ai/crates/terraphim_multi_agent
- ADF orchestrator: terraphim-ai/crates/terraphim_orchestrator
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Start by mapping LLM interaction points across the 54-crate workspace, including terraphim_orchestrator, terraphim_multi_agent, terraphim_llm_proxy, and cto-executive-system/automation/. Read the referenced Pi pi-ai package and compare existing model routing and agent configurations. Done means a proposed crate boundary, overlap assessment, and a documented extract, refactor, or reject decision with rationale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- ai, backend-api-design
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100