examples/high-level-api.mjs
Rama master · réplica de lectura del repositorio original.
#!/usr/bin/env node
import { agent, generateImage, generateText, streamText } from '../dist/index.js';
// Set a provider and AgentOS picks the best default model. Pin a specific
// model whenever you need it. Requires the matching env var to be set
// (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.).
const provider = process.env.AGENTOS_PROVIDER || 'openai';
const model = process.env.AGENTOS_MODEL; // optional override
async function main() {
console.log(`Using provider: ${provider}${model ? ` model: ${model}` : ' (default model)'}`);
console.log('\n=== generateText() — provider, default model ===');
const quick = await generateText({
provider,
prompt: 'Explain what QUIC is in 3 concise bullet points.',
});
console.log(quick.text);
console.log('\n=== generateText() — provider + pinned model ===');
const pinned = await generateText({
provider: 'openai',
model: 'gpt-4o',
prompt: 'What is TCP in one sentence?',
});
console.log(pinned.text);
console.log('\n=== streamText() — provider-first ===');
const live = streamText({
provider,
prompt: 'Stream a short explanation of how QUIC differs from TCP.',
});
for await (const delta of live.textStream) {
process.stdout.write(delta);
}
process.stdout.write('\n');
console.log('\n=== generateImage() — provider-first ===');
const image = await generateImage({
provider: 'openai',
prompt: 'A clean technical illustration of packets moving through a network switch.',
});
console.log(`provider=${image.provider} images=${image.images.length}`);
console.log('\n=== agent() — provider-first ===');
// Each session keeps its message history. Cognitive memory needs
// runtime: 'gmi' and an embedding model (memory.embedding); agent() does not
// read the other MemoryConfig fields, such as types or working: { enabled: true }.
const assistant = agent({
provider,
instructions: 'You are a concise networking tutor.',
maxSteps: 3,
});
const session = assistant.session('high-level-api-demo');
const first = await session.send('What problem was QUIC designed to solve?');
console.log(first.text);
const second = await session.send('Now compare QUIC and TCP in one short paragraph.');
console.log(second.text);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});