Guides
Integration Examples
Real-world examples of integrating CogniKin into different frameworks.
Next.js App Router
app/api/agent/route.ts
import { CogniKin } from '@cognikin/client';
import OpenAI from 'openai';
const brain = new CogniKin({ apiKey: process.env.COGNIKIN_API_KEY });
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
export async function POST(request: Request) {
const { userId, query } = await request.json();
// Get knowledge context
const context = await brain.getContext({
userId,
task: query
});
// Adapt system prompt
const systemPrompt = `You are a helpful assistant.
Communication: ${context.communicationStyle}
Framing: ${context.suggestedFraming}
Detail level: ${context.complexity}`;
// Generate response
const completion = await openai.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: query }
]
});
// Report outcome (fire and forget)
brain.reportOutcome({
requestId: context.requestId,
started: true,
completed: true
}).catch(console.error);
return Response.json({
response: completion.choices[0].message.content
});
}Express.js
server.ts
import express from 'express';
import { CogniKin } from '@cognikin/client';
const app = express();
const brain = new CogniKin({ apiKey: process.env.COGNIKIN_API_KEY });
app.post('/api/agent', async (req, res) => {
const { userId, query } = req.body;
const context = await brain.getContext({ userId, task: query });
// Use context to adapt response
const response = await generateResponse(query, context);
res.json({ response });
// Report outcome in background
trackUserBehaviour(userId, context.requestId);
});Python FastAPI
main.py
from fastapi import FastAPI
from cognikin import CogniKin
import os
app = FastAPI()
brain = CogniKin(api_key=os.getenv("COGNIKIN_API_KEY"))
@app.post("/api/agent")
async def handle_query(request: dict):
user_id = request["userId"]
query = request["query"]
# Get context
context = await brain.get_context(
user_id=user_id,
task=query
)
# Adapt response based on context
response = await generate_response(query, context)
# Report outcome
await brain.report_outcome(
request_id=context.request_id,
started=True,
completed=True
)
return {"response": response}LangChain Integration
from langchain.agents import Agent
from cognikin import CogniKin
brain = CogniKin(api_key=os.getenv("COGNIKIN_API_KEY"))
class CogniKinAgent(Agent):
def run(self, user_id: str, task: str):
# Get CogniKin context
context = brain.get_context(user_id=user_id, task=task)
# Adapt agent behaviour
if context.complexity == "break_into_steps":
return self.run_step_by_step(task)
else:
return self.run_direct(task)