@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
65 lines • 2.82 kB
JavaScript
import { Agent } from "../agent.mjs";
import { SANDBOX_AGENT_BRAND } from "./brand.mjs";
import { Capabilities } from "./capabilities/index.mjs";
import { cloneManifest, Manifest } from "./manifest.mjs";
import { normalizeUser } from "./users.mjs";
export class SandboxAgent extends Agent {
[SANDBOX_AGENT_BRAND] = true;
defaultManifest;
baseInstructions;
capabilities;
runAs;
runtimeManifest;
constructor(config) {
super(config);
if (config.baseInstructions !== undefined &&
typeof config.baseInstructions !== 'string' &&
typeof config.baseInstructions !== 'function') {
throw new TypeError('SandboxAgent baseInstructions must be a string or function.');
}
this.defaultManifest = config.defaultManifest
? cloneManifest(config.defaultManifest)
: undefined;
this.baseInstructions = config.baseInstructions;
this.capabilities = config.capabilities ?? Capabilities.default();
this.runAs = normalizeRunAs(config.runAs);
this.runtimeManifest = this.defaultManifest ?? new Manifest();
}
clone(config) {
return new SandboxAgent({
name: config.name ?? this.name,
instructions: config.instructions ?? this.instructions,
prompt: config.prompt ?? this.prompt,
handoffDescription: config.handoffDescription ?? this.handoffDescription,
handoffs: config.handoffs ?? this.handoffs,
model: config.model ?? this.model,
modelSettings: config.modelSettings ?? this.modelSettings,
tools: config.tools ?? this.tools,
mcpServers: config.mcpServers ?? this.mcpServers,
mcpConfig: config.mcpConfig ?? this.mcpConfig,
inputGuardrails: config.inputGuardrails ?? this.inputGuardrails,
outputGuardrails: config.outputGuardrails ?? this.outputGuardrails,
outputType: config.outputType ?? this.outputType,
toolUseBehavior: config.toolUseBehavior ?? this.toolUseBehavior,
resetToolChoice: config.resetToolChoice ?? this.resetToolChoice,
defaultManifest: config.defaultManifest ?? this.defaultManifest,
baseInstructions: config.baseInstructions ?? this.baseInstructions,
capabilities: config.capabilities ?? this.capabilities,
runAs: config.runAs ?? this.runAs,
});
}
}
function normalizeRunAs(runAs) {
if (runAs === undefined) {
return undefined;
}
if (typeof runAs === 'string') {
const trimmed = runAs.trim();
if (!trimmed) {
throw new TypeError('SandboxAgent runAs must be non-empty.');
}
return trimmed;
}
return normalizeUser(runAs);
}
//# sourceMappingURL=agent.mjs.map