Astreus

Fluxos de Trabalho Agendados

Construa fluxos de trabalho automatizados baseados em tempo com strings de agendamento simples e gerenciamento de dependências.

Construa fluxos de trabalho automatizados baseados em tempo com strings de agendamento simples e gerenciamento de dependências.

Início Rápido

Clonar o Exemplo Completo

A forma mais fácil de começar é clonar o repositório do exemplo completo:

git clone https://github.com/astreus-ai/examples
cd examples/scheduled-workflows
npm install

Ou Instalar Apenas o Pacote

Se preferir construir do zero:

npm install @astreus-ai/astreus

Configuração do Ambiente

# .env
OPENAI_API_KEY=sk-your-openai-api-key-here
DB_URL=sqlite://./astreus.db
NODE_ENV=development

Exemplo de Teste Rápido (Segundos)

import { Agent, Graph } from '@astreus-ai/astreus';

const agent = await Agent.create({
  name: 'ContentAgent',
  model: 'gpt-4o',
  systemPrompt: 'You are a content creation specialist.'
});

const graph = new Graph({
  name: 'Quick Test Pipeline',
  description: 'Test automated workflow with seconds interval',
  maxConcurrency: 2
}, agent);

// Executar após 5 segundos
const researchNode = graph.addTaskNode({
  name: 'Content Research',
  prompt: 'Research trending topics in AI and technology. Find 3-5 compelling topics for blog content.',
  schedule: 'after:5s'
});

// Executar após 10 segundos
const creationNode = graph.addTaskNode({
  name: 'Content Creation',
  prompt: 'Based on the research findings, create a short blog post summary on one of the trending topics.',
  schedule: 'after:10s',
  dependsOn: ['Content Research']
});

// Executar após 15 segundos
const seoNode = graph.addTaskNode({
  name: 'SEO Optimization',
  prompt: 'Optimize the blog post for SEO: add meta description and keywords.',
  schedule: 'after:15s',
  dependsOn: ['Content Creation']
});

// Executar após 20 segundos
const publishNode = graph.addTaskNode({
  name: 'Content Publishing',
  prompt: 'Create a social media post for the optimized content.',
  schedule: 'after:20s',
  dependsOn: ['SEO Optimization']
});

console.log('Starting scheduled workflow test...');
console.log('Tasks will run at:');
console.log('- Research: 5 seconds from now');
console.log('- Creation: 10 seconds from now');
console.log('- SEO: 15 seconds from now');
console.log('- Publishing: 20 seconds from now\n');

// Executar o grafo e obter os resultados
const result = await graph.run();

// Exibir os resultados da execução
console.log('\n=== Workflow Execution Results ===');
console.log('Success:', result.success);
console.log(`Completed: ${result.completedNodes} tasks`);
console.log(`Failed: ${result.failedNodes} tasks`);
console.log(`Duration: ${result.duration}ms`);

// Exibir o resultado de cada tarefa
if (result.results) {
  console.log('\n=== Task Results ===');
  for (const [nodeId, nodeResult] of Object.entries(result.results)) {
    console.log(`\n[${nodeId}]:`);
    console.log(nodeResult);
  }
}

// Verificar erros
if (result.errors && Object.keys(result.errors).length > 0) {
  console.log('\n=== Errors ===');
  for (const [nodeId, error] of Object.entries(result.errors)) {
    console.log(`[${nodeId}]: ${error}`);
  }
}

console.log('\n✅ Scheduled workflow test completed!');

Pipeline de Conteúdo Diário (Produção)

Para uso em produção com agendamentos diários reais:

// Exemplos de formato de agendamento:
// 'daily@06:00' - Every day at 6 AM
// 'weekly@monday@09:00' - Every Monday at 9 AM  
// 'monthly@15@10:00' - 15th of every month at 10 AM
// 'after:5s' - After 5 seconds (for testing)
// 'after:2h' - After 2 hours
// 'every:30m' - Every 30 minutes

const researchNode = graph.addTaskNode({
  name: 'Content Research',
  prompt: 'Research trending topics in AI and technology.',
  schedule: 'daily@06:00'
});

Executando o Exemplo

Se você clonou o repositório:

npm run dev

Se você construiu do zero, crie um arquivo index.ts com o código acima e execute:

npx tsx index.ts

Repositório

O exemplo completo está disponível no GitHub: examples/scheduled-workflows

Última atualização: 6 de julho de 2026