Skip to content

API Reference

Full API reference for all confused-ai modules.

Run result (AgenticRunResult)

Every agent.run() call returns this object:

FieldTypeDescription
textstringFinal assistant text response
markdown{ name, content, mimeType, type }Response as a ready-to-save markdown artifact
structuredOutputunknown?Parsed output when responseModel was provided
messagesMessage[]Full conversation including tool calls / results
stepsnumberNumber of LLM steps taken
finishReasonstring'stop' | 'max_steps' | 'timeout' | 'error'
usage{ promptTokens?, completionTokens?, totalTokens? }?Token counts
runIdstring?Run ID when provided in config
traceIdstring?Trace ID for distributed tracing

Using result.markdown

ts
import { agent } from 'confused-ai';
import { writeFile } from 'node:fs/promises';

const ai = agent({ instructions: 'You write technical docs.' });
const result = await ai.run('Explain async/await in TypeScript');

// Use text directly
console.log(result.text);

// Save as a .md file
await writeFile('response.md', result.markdown.content);

// The artifact shape
console.log(result.markdown.name);      // e.g. "response-1234567890.md"
console.log(result.markdown.mimeType);  // "text/markdown"
console.log(result.markdown.type);      // "markdown"

Core

ExportTypeDescription
agent(config)FunctionCreate an agent — recommended default
defineAgent(config)FunctionChainable agent builder with .use(), .hooks(), .noDefaults()
createAgent(config)FunctionFactory-style agent creation
bare(config)FunctionZero-defaults raw agent
compose(...hookSets)FunctionMerge multiple hook sets
pipe(...hookSets)FunctionChain hook transformations sequentially
AgentClassBase agent class for extension

Tools

ExportTypeDescription
defineTool()Function → ToolBuilderFluent tool builder
tool(config)FunctionConfig-object tool definition
createTool(config)AliasSame as tool(), Mastra-compatible
createTools(defs)FunctionBatch tool factory
ToolBuilderClassFluent builder class (from defineTool())
LightweightToolInterfaceReturn type of all tool factories

Knowledge

ExportFromDescription
KnowledgeEngineconfused-ai/knowledgeRAG engine
TextLoaderconfused-ai/knowledgeLoad .txt / .md files
JSONLoaderconfused-ai/knowledgeLoad .json files
CSVLoaderconfused-ai/knowledgeLoad .csv files
URLLoaderconfused-ai/knowledgeLoad web pages
OpenAIEmbeddingProviderconfused-ai/memoryText embeddings via OpenAI
InMemoryVectorStoreconfused-ai/memoryIn-process vector store
DocumentLoaderconfused-ai/knowledgeLoader interface
KnowledgeEngineConfigconfused-ai/knowledgeEngine config type

Memory

ExportFromDescription
InMemoryStoreconfused-ai/memoryIn-memory conversation history
VectorMemoryStoreconfused-ai/memorySemantic long-term memory
OpenAIEmbeddingProviderconfused-ai/memoryText embeddings
InMemoryVectorStoreconfused-ai/memoryIn-process vector store

Storage

ExportFromDescription
createStorage(options?)confused-ai/storageCreate a storage instance
MemoryStorageAdapterconfused-ai/storageIn-memory adapter
FileStorageAdapterconfused-ai/storageFile-system adapter
Storageconfused-ai/storageHigh-level storage interface
StorageAdapterconfused-ai/storageLow-level adapter interface
StorageOptionsconfused-ai/storagecreateStorage() options type

Session

ExportFromDescription
InMemorySessionStoreconfused-ai/sessionIn-memory sessions
SqlSessionStoreconfused-ai/sessionSQL-backed sessions
createSqliteSessionStoreconfused-ai/sessionSQLite session factory
SessionDbDriverconfused-ai/sessionDB driver interface

Orchestration

ExportFromDescription
AgentRouterconfused-ai/orchestrationRoute to matching agent
createHandoffconfused-ai/orchestrationCreate handoff protocol
ConsensusProtocolconfused-ai/orchestrationMulti-agent voting
Supervisorconfused-ai/orchestrationSupervisor + workers
Swarmconfused-ai/orchestrationPeer-to-peer agent swarm
Pipelineconfused-ai/orchestrationSequential agent pipeline
MessageBusconfused-ai/orchestrationPub/sub message bus
LoadBalancerconfused-ai/orchestrationDistribute across agent pool
McpClientconfused-ai/orchestrationMCP server client
HttpA2AClientconfused-ai/orchestrationOutbound A2A message client (POST to broker)
createHttpA2AClientconfused-ai/orchestrationFactory for HttpA2AClient
A2AClientconfused-ai/orchestrationA2A client interface
A2AMessageconfused-ai/orchestrationA2A message shape
teamconfused-aiParallel agent team

Production

ExportFromDescription
ResilientAgentconfused-ai/productionRetries + circuit breaker
HealthMonitorconfused-ai/productionAgent health checks
createFallbackChainconfused-ai/llmLLM failover chain
CostTrackerconfused-ai/llmTrack LLM spending
ContextWindowManagerconfused-ai/llmToken limit management
LLMRouterconfused-ai/llmIntelligent model router (task-aware, strategy-based)
createSmartRouterconfused-ai/llmAdaptive multi-criteria routing (recommended)
scoreTaskTypesForRoutingconfused-ai/llmInspect / reuse built-in task scores
createBalancedRouterconfused-ai/llmBalanced routing factory
createCostOptimizedRouterconfused-ai/llmCost-first routing factory
createQualityFirstRouterconfused-ai/llmQuality-first routing factory
createSpeedOptimizedRouterconfused-ai/llmSpeed-first routing factory

Observability

ExportFromDescription
ConsoleLoggerconfused-ai/observabilityStructured console logging
OtlpExporterconfused-ai/observabilityOTLP trace exporter
Metricsconfused-ai/observabilityMetrics collection
evaluateconfused-ai/observabilityAgent evaluation runner

Guardrails

ExportFromDescription
createGuardrailsconfused-ai/guardrailsCreate guardrail config
GuardrailValidatorconfused-ai/guardrailsCustom validator interface

Adapters

All adapter interfaces and built-in implementations. Import from confused-ai/adapters.

ExportDescription
createAdapterRegistry()Create a central adapter registry
createProductionSetup(opts?)Opinionated full-stack production wiring
Built-in adapters
InMemorySqlAdapterSQL (in-memory)
InMemoryNoSqlAdapterNoSQL (in-memory)
InMemoryVectorAdapterVector store (in-memory)
InMemoryAnalyticsAdapterAnalytics (in-memory)
InMemorySearchAdapterSearch (in-memory)
InMemoryCacheAdapterCache (in-memory)
InMemoryObjectStorageAdapterObject storage (in-memory)
InMemoryTimeSeriesAdapterTime-series (in-memory)
InMemoryGraphAdapterGraph (in-memory)
InMemoryMessageQueueAdapterMessage queue (in-memory)
ConsoleObservabilityAdapterObservability (console)
NullObservabilityAdapterObservability (no-op)
InMemoryEmbeddingAdapterEmbedding (in-memory)
InMemorySessionStoreAdapterSession store (in-memory)
InMemoryMemoryStoreAdapterMemory store (in-memory)
PassThroughGuardrailAdapterGuardrail (pass-through, dev only)
InMemoryRagAdapterRAG pipeline (in-memory, keyword)
InMemoryToolRegistryAdapterTool registry (in-memory)
NoOpAuthAdapterAuth (no-op, dev only)
InMemoryRateLimitAdapterRate limiter (token-bucket, in-memory)
InMemoryAuditLogAdapterAudit log (ring-buffer, in-memory)
Interfaces
SessionStoreAdapterSession store contract
MemoryStoreAdapterMemory store contract
GuardrailAdapterGuardrail contract
RagAdapterRAG pipeline contract
ToolRegistryAdapterTool registry contract
AuthAdapterAuth contract
RateLimitAdapterRate-limit contract
AuditLogAdapterAudit log contract
AdapterBindingsPer-module binding map
AdapterRegistryCentral registry interface

Plugins

ExportFromDescription
loggingPluginconfused-ai/pluginsStructured logging
rateLimitPluginconfused-ai/pluginsRate limiting
telemetryPluginconfused-ai/pluginsOpenTelemetry integration
AgentPluginconfused-ai/pluginsPlugin type

Background Queues

ExportFromDescription
queueHookconfused-ai/backgroundWrap a hook to dispatch tasks to a queue
InMemoryBackgroundQueueconfused-ai/backgroundIn-process queue (dev/test)
BullMQBackgroundQueueconfused-ai/backgroundRedis-backed durable queue
KafkaBackgroundQueueconfused-ai/backgroundKafka high-throughput queue
RabbitMQBackgroundQueueconfused-ai/backgroundAMQP queue
SQSBackgroundQueueconfused-ai/backgroundAWS SQS queue
RedisPubSubBackgroundQueueconfused-ai/backgroundRedis Pub/Sub fanout queue
BackgroundQueueconfused-ai/backgroundInterface — bring any backend
BackgroundTaskconfused-ai/backgroundTask shape (type)
BackgroundTaskHandlerconfused-ai/backgroundWorker handler type
EnqueueOptionsconfused-ai/backgroundEnqueue options type
QueuedHookconfused-ai/backgroundHook wrapper return type

Voice

ExportFromDescription
createVoiceProviderconfused-ai/voiceFactory — auto-selects provider from env
OpenAIVoiceProviderconfused-ai/voiceOpenAI TTS-1 / Whisper
ElevenLabsVoiceProviderconfused-ai/voiceElevenLabs premium voices
VoiceProviderconfused-ai/voiceInterface — bring any provider
VoiceConfigconfused-ai/voiceConfiguration type
TTSResultconfused-ai/voiceTTS result shape
STTResultconfused-ai/voiceSTT result shape
OpenAIVoiceconfused-ai/voiceUnion of OpenAI voice names

Budget Enforcement

ExportFromDescription
BudgetEnforcerconfused-ai/productionEnforces budget caps on agent runs
BudgetExceededErrorconfused-ai/productionThrown when a cap is exceeded
InMemoryBudgetStoreconfused-ai/productionIn-memory budget store
BudgetConfigconfused-ai/productionBudget configuration type
BudgetStoreconfused-ai/productionInterface — bring any backend
estimateCostUsdFromBudgetconfused-ai/productionEstimate cost from token counts

Agent Checkpointing

ExportFromDescription
InMemoryCheckpointStoreconfused-ai/productionIn-memory checkpoint store (dev/test)
SqliteCheckpointStoreconfused-ai/productionSQLite-backed checkpoint store
createSqliteCheckpointStoreconfused-ai/productionSQLite checkpoint factory
AgentCheckpointStoreconfused-ai/productionInterface — bring any backend
AgentRunStateconfused-ai/productionCheckpoint snapshot shape

Idempotency

ExportFromDescription
InMemoryIdempotencyStoreconfused-ai/productionIn-memory idempotency store
IdempotencyStoreconfused-ai/productionInterface — bring any backend
IdempotencyOptionsconfused-ai/productionConfig type for createHttpService
IdempotencyEntryconfused-ai/productionCached response entry type

Audit Log

ExportFromDescription
InMemoryAuditStoreconfused-ai/productionIn-memory audit store (dev/test)
createSqliteAuditStoreconfused-ai/productionSQLite audit store factory
AuditStoreconfused-ai/productionInterface — bring any backend
AuditEntryconfused-ai/productionAudit log entry shape
AuditFilterconfused-ai/productionQuery filter type

Human-in-the-Loop (HITL)

ExportFromDescription
waitForApprovalconfused-ai/productionPoll store until human decides (or times out)
createSqliteApprovalStoreconfused-ai/productionSQLite-backed approval store
InMemoryApprovalStoreconfused-ai/productionIn-memory approval store (tests)
SqliteApprovalStoreconfused-ai/productionClass-based SQLite approval store
ApprovalRejectedErrorconfused-ai/productionThrown when approval is rejected or times out
ApprovalStoreconfused-ai/productionInterface — bring any backend
HitlRequestconfused-ai/productionPending approval request shape
ApprovalDecisionconfused-ai/productionDecision shape
ApprovalStatusconfused-ai/production'pending' | 'approved' | 'rejected' | 'expired'

Multi-Tenancy

ExportFromDescription
createTenantContextconfused-ai/productionCreate a tenant-scoped context
TenantScopedSessionStoreconfused-ai/productionPrefix-wrapping session store
TenantContextconfused-ai/productionContext shape (type)
TenantContextOptionsconfused-ai/productionConfig type

Redis Rate Limiter

ExportFromDescription
RedisRateLimiterconfused-ai/productionDistributed fixed-window rate limiter
RedisRateLimiterConfigconfused-ai/productionConfig type

Extension Contracts

All pluggable interfaces, in one place. Import from confused-ai/contracts/extensions.

InterfaceDescription
SessionStoreSession persistence
StorageAdapterKey-value storage
UserProfileStoreLong-term user profiles
MemoryStoreAgent memory (short + long-term)
BudgetStoreUSD spend tracking
AgentCheckpointStoreDurable step-level state
IdempotencyStoreRequest deduplication
AuditStoreStructured audit trail
ApprovalStoreHITL approval queue
TenantContextPer-tenant isolation
RateLimiterConfigRate limiter config
CircuitBreakerConfigCircuit breaker config
TracerDistributed tracing
MetricsCollectorMetrics collection
TraceContextW3C Trace Context
AuthMiddlewareOptionsAuth middleware
ToolTool definition
RAGEngineRAG / knowledge engine
LLMProviderLLM provider
ts
// Import any extension interface:
import type { BudgetStore } from 'confused-ai/contracts/extensions';
import type { SessionStore } from 'confused-ai/contracts/extensions';
import type { LLMProvider } from 'confused-ai/contracts/extensions';

Subpath imports

All modules are available as top-level exports from confused-ai and as dedicated subpath imports:

ts
// Top-level (everything)
import { agent, defineTool, KnowledgeEngine, createStorage } from 'confused-ai';

// Subpath (tree-shakeable, faster)
import { defineTool } from 'confused-ai/tool';
import { KnowledgeEngine } from 'confused-ai/knowledge';
import { createStorage } from 'confused-ai/storage';
import { InMemorySessionStore } from 'confused-ai/session';
import { AgentRouter } from 'confused-ai/workflow';
import { ResilientAgent } from 'confused-ai/guard';
import { LLMRouter, createSmartRouter, createBalancedRouter } from 'confused-ai/model';
import { ConsoleLogger } from 'confused-ai/observe';
import { queueHook, InMemoryBackgroundQueue, BullMQBackgroundQueue } from 'confused-ai/background';
import { createVoiceProvider, OpenAIVoiceProvider } from 'confused-ai/voice';
import {
  BudgetEnforcer, BudgetExceededError,
  createSqliteCheckpointStore,
  createSqliteIdempotencyStore,
  createSqliteAuditStore,
  createSqliteApprovalStore,
  waitForApproval,
  createTenantContext,
  RedisRateLimiter,
} from 'confused-ai/guard';
import {
  createAdapterRegistry,
  createProductionSetup,
  InMemoryCacheAdapter,
  InMemorySessionStoreAdapter,
  InMemoryRateLimitAdapter,
  InMemoryAuditLogAdapter,
} from 'confused-ai/adapters';

// Extension interfaces — bring-your-own implementations
import type { BudgetStore, SessionStore, LLMProvider, Tool } from 'confused-ai/contracts/extensions';

Released under the MIT License.