feat: initial bootstrap — structure, task_brief, blackboard, adapter bases, escalation, prompts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
50
adapters/base/llm.py
Normal file
50
adapters/base/llm.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""
|
||||
adapters/base/llm.py
|
||||
Abstract base class for all LLM adapters.
|
||||
"""
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
|
||||
class LLMAdapter(ABC):
|
||||
"""
|
||||
Contract that every LLM provider adapter must fulfil.
|
||||
|
||||
Capability strings
|
||||
------------------
|
||||
"reasoning-heavy" — tasks requiring deep chain-of-thought (e.g. T1, T2)
|
||||
"capable" — general-purpose capable model (e.g. T3, T4)
|
||||
"fast-cheap" — high-volume, low-latency tasks (e.g. T5 quick checks)
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def complete(self, prompt: str, capability: str, context: dict) -> str:
|
||||
"""
|
||||
Send a prompt to the model and return the text response.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
prompt : The full prompt string (system + user combined or just user).
|
||||
capability : One of "reasoning-heavy" | "capable" | "fast-cheap".
|
||||
context : Arbitrary key/value bag passed to the adapter (e.g. system
|
||||
prompt override, temperature, max_tokens).
|
||||
|
||||
Returns
|
||||
-------
|
||||
The model's text completion as a plain string.
|
||||
"""
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
def resolve_model(self, capability: str) -> str:
|
||||
"""
|
||||
Map a capability string to the concrete model identifier for this provider.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
capability : One of "reasoning-heavy" | "capable" | "fast-cheap".
|
||||
|
||||
Returns
|
||||
-------
|
||||
Model identifier string (e.g. "claude-opus-4-6", "gpt-4o").
|
||||
"""
|
||||
...
|
||||
Reference in New Issue
Block a user