Skip to content

OpenAI Agent

Objective: compose a practical runtime using optional packages.

import "dotenv/config";
import { resolve } from "node:path";
import { createHarnessSessionStore } from "@harness-kernel/core/runner";
import { ConsoleLogSink } from "@harness-kernel/core/runner/logging";
import { OpenAIProvider } from "@harness-kernel/provider-openai";
import { LocalSandbox } from "@harness-kernel/sandbox-local";
import { FileSessionStorage } from "@harness-kernel/storage-file";
import { agent } from "./agent.js";
for (const mode of agent.modes) mode.toolApproval = "ask";
const store = await createHarnessSessionStore({
agent: { definition: agent },
providers: [new OpenAIProvider()],
defaultModel: process.env.HARNESS_KERNEL_MODEL ?? "openai/gpt-5.1-mini",
storage: new FileSessionStorage(),
sandbox: new LocalSandbox({ workDir: resolve(process.cwd()) }),
logging: {
sinks: [new ConsoleLogSink({ level: "info" })],
},
});
try {
const result = await store.send("openai-example", "Summarize this project.");
console.log(result.answer);
} finally {
await store.close();
}

Set OPENAI_API_KEY in the host environment. OpenAIProvider owns the openai namespace; defaultModel selects a provider model through the namespaced ref.

Boundary note: the agent package does not own credentials or provider instances. The host does.

API: Provider OpenAI and Session Store.