Bygge agenter

BlixAI har alt du trenger for agentarbeid: tool calling, strømming og store kontekstvinduer — med dataene i Norge.

Agentprimitivene

En agent er i praksis en løkke: modellen tenker, kaller verktøy, får resultater tilbake, og fortsetter til oppgaven er løst. BlixAI støtter begge deler du trenger:

Komplett agentløkke i Python

Et minimalt, kjørbart eksempel med OpenAI-SDK-et — bytt bare base_url og nøkkel:

Python
import json
from openai import OpenAI

client = OpenAI(
    base_url="https://models.blixai.com/v1",
    api_key="sk-blix-din-nokkel-her",
)

TOOLS = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Hent været for en norsk by",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "Bynavn, f.eks. Oslo"}
            },
            "required": ["city"],
        },
    },
}]

def get_weather(city: str) -> str:
    # Erstatt med ekte integrasjon
    return json.dumps({"city": city, "temp_c": 12, "condition": "lettskyet"})

def run_agent(question: str, max_turns: int = 5):
    messages = [{"role": "user", "content": question}]
    for _ in range(max_turns):
        response = client.chat.completions.create(
            model="Qwen/Qwen3.8-Flash-Next-FP8",
            messages=messages,
            tools=TOOLS,
            max_tokens=2048,
        )
        msg = response.choices[0].message
        if response.choices[0].finish_reason == "tool_calls":
            messages.append(msg)  # assistant-meldingen med tool_calls
            for call in msg.tool_calls:
                args = json.loads(call.function.arguments)
                result = get_weather(**args)
                messages.append({
                    "role": "tool",
                    "tool_call_id": call.id,
                    "content": result,
                })
            continue  # ny runde med verktøyresultatene
        return msg.content  # ferdig svar
    return "Agenten nådde tur-grensen."

print(run_agent("Hvordan er været i Oslo?"))

Løkken er bevisst enkel. I produksjon bør du legge til feilhåndtering per verktøykall, timeout og maks antall turer for å styre kostnader.

Rammeverk via base URL

De fleste agent-rammeverkene aksepterer OpenAI-kompatible endepunkter via miljøvariabler:

Bash
export OPENAI_BASE_URL="https://models.blixai.com/v1"
export OPENAI_API_KEY="sk-blix-din-nokkel-her"

Deretter peker du rammeverkets modellvalg mot en BlixAI-modell-ID:

RammeverkModellkonfigurasjon
LangGraph / LangChainChatOpenAI(model="Qwen/Qwen3.8-Flash-Next-FP8") leser OPENAI_BASE_URL
CrewAILLM(model="Qwen/Qwen3.8-Flash-Next-FP8", base_url="https://models.blixai.com/v1")
OpenAI Agents SDKset_default_openai_client(client) med BlixAI-base-URL

Resonneringsmodeller i agenter

Strømming i agent-UI

For chat-agenter med UI: strøm med stream=True og vis delta.content. Ignér delta.reasoning om du ikke vil vise tankerekken:

Python
stream = client.chat.completions.create(
    model="Qwen/Qwen3.8-Flash-Next-FP8",
    messages=[{"role": "user", "content": "Skriv en kort oppsummering"}],
    stream=True,
    max_tokens=1024,
)
for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.content:
        print(delta.content, end="", flush=True)

Agent-sjekkliste

  1. Sett max_tokens til 2048+ i turer med verktøy.
  2. Send alltid verktøyresultatet tilbake med riktig tool_call_id.
  3. Begrens turlengde og ha en fallback for «agenten nårdde grensen».
  4. Logg usage per tur — resonnering kan øke forbruket mer du tror.
  5. Vurder personvern før du sender agentdata til verktøy-API-er.

Sist oppdatert: 19. september 2026