CopilotKit / CopilotKit/OpenTag

Proposal: OrcaRouter as an optional model provider for OpenTag

Aperta
#69 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
TypeScript
Stelle
1.2k
Fork
125
Merge medio
7g 1h
PR unite (30g)
1

Descrizione

OpenTag is a refreshingly concrete thing to ship: a self-hosted, deployable knowledge-work agent that does the work where the team already is — in the Slack or Teams thread. I particularly like the human-in-the-loop design, where a Linear or Notion write pauses behind an approval gate and research comes back as a cited brief with a chart inline, so the bot feels like a careful colleague rather than a firehose.

Because OpenTag is built to be forked and pointed at your own agent, the model behind it is a real decision for each adopting team. Today agent/agent.py wires a single OpenAI model from OPENAI_API_KEY and OPENAI_MODEL; forks may want to pick which model handles routine triage versus deep research without rewriting the graph.

I'd like to propose adding OrcaRouter as an optional provider for OpenTag — an additional choice, not a replacement; the OpenAI default and the env-var contract stay as they are. OrcaRouter exposes an OpenAI-compatible API and uses standard API-key authentication. For a fork-and-ship project like this, the useful parts are: many chat and reasoning models behind one endpoint, so a cheap/fast model can handle routine triage while a reasoning model does deep research without changing the graph; automatic routing with provider failover, which matters for an on-call bot where an outage should not silently drop a Slack mention; and usage tracking with per-team budgets when a whole workspace shares one bot.

Where it would plug in: agent/agent.py builds its model through LangChain's ChatOpenAI entirely from environment variables, so an OrcaRouter option would most plausibly be an optional model/base-URL configuration beside OPENAI_API_KEY. The agent currently targets the OpenAI Responses API (use_responses_api=True); how an OpenAI-compatible provider slot should fit that is exactly what I'd want your opinion on before writing anything — nothing here is implemented or tested.

OrcaRouter is also appearing across the open-source ecosystem — projects such as RAGFlow, Dify, and NocoBase integrate with it (see https://www.orcarouter.ai/built-with). One transparency note: OrcaRouter runs an optional open-source partner program under which approved projects can receive a 5% revenue share from usage attributed to their integration. Participation is not a prerequisite for integrating, and I'd happily follow any disclosure or governance rules this repo prefers.

I'm an engineer on the OrcaRouter team. If maintainers think an optional provider slot fits OpenTag's goals, I'd be glad to submit an implementation PR for review; if not, I'd still welcome your thoughts. Thanks for building something teams can actually fork and ship.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da agent/agent.py, dove ChatOpenAI viene configurato a partire dalle variabili d’ambiente, e verifica in che modo use_responses_api=True influisce sulla configurazione attuale del modello. Chiarisci la configurazione opzionale del provider e le aspettative di compatibilità prima dell’implementazione; l’implementazione deve preservare il comportamento predefinito di OpenAI e il contratto esistente delle variabili d’ambiente, aggiungendo al contempo una selezione del provider verificata con test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
ai, api, backend
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Attiva
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.