Skip to main content

Agent Types

interface AgentInput {
  message: string;
  file?: MediaFile;
  companyId?: string;
  userId?: string;
  sessionId?: string;
  executionId?: string;
  threadId?: string;
  entityType?: string;
  entityValue?: string;
  channel?: string;
  messages?: Message[];
  metadata?: Record<string, any>;
}

interface AgentOutput {
  message: string;
  metadata?: Record<string, any>;
}

interface AgentConfig {
  name: string;
  instructions: string | PromptRef;
  model: ModelProvider;
  modelConfig?: ModelConfig;
  tools?: Record<string, RunflowTool>;
  maxToolIterations?: number;
  rag?: RAGConfig;
  memory?: MemoryConfig;
  media?: MediaConfig;
  streaming?: StreamingConfig;
  agents?: Record<string, AgentConfig>;
  debug?: boolean | DebugConfig;
  observability?: ObservabilityMode | ObservabilityConfig;
}

interface ModelConfig {
  temperature?: number;
  maxTokens?: number;
  topP?: number;
  frequencyPenalty?: number;
  presencePenalty?: number;
  stop?: string[];
  seed?: number;
}

interface DebugConfig {
  enabled: boolean;
  logMessages?: boolean;
  logLLMCalls?: boolean;
  logToolCalls?: boolean;
  logRAG?: boolean;
  logMemory?: boolean;
  truncateAt?: number;
}

Next Steps