@falai/agent 0.8.1 → 0.9.0-alpha-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +332 -147
- package/dist/{adapters → cjs/src/adapters}/MemoryAdapter.d.ts +4 -4
- package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/MemoryAdapter.js +41 -21
- package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/{adapters → cjs/src/adapters}/MongoAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/MongoAdapter.js +2 -1
- package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/OpenSearchAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/OpenSearchAdapter.js +10 -13
- package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PostgreSQLAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PostgreSQLAdapter.js +1 -1
- package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PrismaAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/PrismaAdapter.js +35 -5
- package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/RedisAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/RedisAdapter.js +3 -2
- package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/{adapters → cjs/src/adapters}/SQLiteAdapter.d.ts +3 -3
- package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/cjs/{adapters → src/adapters}/SQLiteAdapter.js +2 -1
- package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/cjs/src/adapters/index.d.ts.map +1 -0
- package/dist/cjs/src/adapters/index.js.map +1 -0
- package/dist/cjs/src/constants/index.d.ts.map +1 -0
- package/dist/cjs/src/constants/index.js.map +1 -0
- package/dist/cjs/src/core/Agent.d.ts +223 -0
- package/dist/cjs/src/core/Agent.d.ts.map +1 -0
- package/dist/cjs/src/core/Agent.js +1660 -0
- package/dist/cjs/src/core/Agent.js.map +1 -0
- package/dist/cjs/src/core/Events.d.ts +26 -0
- package/dist/cjs/src/core/Events.d.ts.map +1 -0
- package/dist/cjs/src/core/Events.js +144 -0
- package/dist/cjs/src/core/Events.js.map +1 -0
- package/dist/{core → cjs/src/core}/PersistenceManager.d.ts +21 -19
- package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/cjs/{core → src/core}/PersistenceManager.js +73 -20
- package/dist/cjs/src/core/PersistenceManager.js.map +1 -0
- package/dist/cjs/src/core/PromptComposer.d.ts +27 -0
- package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -0
- package/dist/cjs/src/core/PromptComposer.js +157 -0
- package/dist/cjs/src/core/PromptComposer.js.map +1 -0
- package/dist/cjs/src/core/ResponseEngine.d.ts +32 -0
- package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponseEngine.js +84 -0
- package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts +171 -0
- package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/cjs/src/core/ResponsePipeline.js +514 -0
- package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
- package/dist/cjs/src/core/Route.d.ts +145 -0
- package/dist/cjs/src/core/Route.d.ts.map +1 -0
- package/dist/cjs/src/core/Route.js +343 -0
- package/dist/cjs/src/core/Route.js.map +1 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts +129 -0
- package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/cjs/{core → src/core}/RoutingEngine.js +215 -117
- package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
- package/dist/cjs/src/core/SessionManager.d.ts +86 -0
- package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
- package/dist/cjs/src/core/SessionManager.js +217 -0
- package/dist/cjs/src/core/SessionManager.js.map +1 -0
- package/dist/cjs/src/core/Step.d.ts +96 -0
- package/dist/cjs/src/core/Step.d.ts.map +1 -0
- package/dist/cjs/src/core/Step.js +206 -0
- package/dist/cjs/src/core/Step.js.map +1 -0
- package/dist/cjs/src/core/ToolExecutor.d.ts +45 -0
- package/dist/cjs/src/core/ToolExecutor.d.ts.map +1 -0
- package/dist/cjs/{core → src/core}/ToolExecutor.js +30 -19
- package/dist/cjs/src/core/ToolExecutor.js.map +1 -0
- package/dist/{index.d.ts → cjs/src/index.d.ts} +7 -15
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/{index.js → src/index.js} +21 -19
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/{providers → src/providers}/AnthropicProvider.d.ts +1 -1
- package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/AnthropicProvider.js +54 -2
- package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/{providers → cjs/src/providers}/GeminiProvider.d.ts +1 -1
- package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/GeminiProvider.js +65 -0
- package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
- package/dist/cjs/{providers → src/providers}/OpenAIProvider.d.ts +1 -1
- package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/OpenAIProvider.js +70 -1
- package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/{providers → cjs/src/providers}/OpenRouterProvider.d.ts +1 -1
- package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/cjs/{providers → src/providers}/OpenRouterProvider.js +76 -0
- package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/cjs/src/providers/index.d.ts.map +1 -0
- package/dist/cjs/src/providers/index.js.map +1 -0
- package/dist/cjs/{types → src/types}/agent.d.ts +80 -41
- package/dist/cjs/src/types/agent.d.ts.map +1 -0
- package/dist/cjs/src/types/agent.js.map +1 -0
- package/dist/cjs/{types → src/types}/ai.d.ts +7 -0
- package/dist/cjs/src/types/ai.d.ts.map +1 -0
- package/dist/cjs/src/types/ai.js.map +1 -0
- package/dist/{types → cjs/src/types}/history.d.ts +76 -18
- package/dist/cjs/src/types/history.d.ts.map +1 -0
- package/dist/cjs/src/types/history.js +33 -0
- package/dist/cjs/src/types/history.js.map +1 -0
- package/dist/cjs/src/types/index.d.ts +20 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/types/index.js +30 -0
- package/dist/cjs/src/types/index.js.map +1 -0
- package/dist/{types → cjs/src/types}/persistence.d.ts +38 -23
- package/dist/cjs/src/types/persistence.d.ts.map +1 -0
- package/dist/cjs/src/types/persistence.js.map +1 -0
- package/dist/cjs/src/types/route.d.ts +235 -0
- package/dist/cjs/src/types/route.d.ts.map +1 -0
- package/dist/cjs/{types → src/types}/route.js.map +1 -1
- package/dist/cjs/src/types/routing.d.ts.map +1 -0
- package/dist/{types → cjs/src/types}/routing.js.map +1 -1
- package/dist/cjs/src/types/schema.d.ts.map +1 -0
- package/dist/{types → cjs/src/types}/schema.js.map +1 -1
- package/dist/cjs/src/types/session.d.ts +65 -0
- package/dist/cjs/src/types/session.d.ts.map +1 -0
- package/dist/cjs/src/types/session.js +6 -0
- package/dist/cjs/src/types/session.js.map +1 -0
- package/dist/cjs/src/types/template.d.ts +30 -0
- package/dist/cjs/src/types/template.d.ts.map +1 -0
- package/dist/cjs/src/types/template.js +3 -0
- package/dist/cjs/src/types/template.js.map +1 -0
- package/dist/{types → cjs/src/types}/tool.d.ts +17 -13
- package/dist/cjs/src/types/tool.d.ts.map +1 -0
- package/dist/cjs/{types → src/types}/tool.js.map +1 -1
- package/dist/cjs/src/utils/clone.d.ts +8 -0
- package/dist/cjs/src/utils/clone.d.ts.map +1 -0
- package/dist/cjs/src/utils/clone.js +36 -0
- package/dist/cjs/src/utils/clone.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/event.d.ts +1 -1
- package/dist/cjs/src/utils/event.d.ts.map +1 -0
- package/dist/cjs/{utils → src/utils}/event.js +2 -2
- package/dist/cjs/src/utils/event.js.map +1 -0
- package/dist/cjs/src/utils/history.d.ts +31 -0
- package/dist/cjs/src/utils/history.d.ts.map +1 -0
- package/dist/cjs/src/utils/history.js +128 -0
- package/dist/cjs/src/utils/history.js.map +1 -0
- package/dist/cjs/src/utils/id.d.ts.map +1 -0
- package/dist/cjs/src/utils/id.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts +13 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/index.js +49 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/logger.d.ts.map +1 -0
- package/dist/cjs/src/utils/logger.js.map +1 -0
- package/dist/cjs/src/utils/retry.d.ts.map +1 -0
- package/dist/cjs/src/utils/retry.js.map +1 -0
- package/dist/cjs/src/utils/session.d.ts +51 -0
- package/dist/cjs/src/utils/session.d.ts.map +1 -0
- package/dist/cjs/{types → src/utils}/session.js +35 -32
- package/dist/cjs/src/utils/session.js.map +1 -0
- package/dist/cjs/src/utils/template.d.ts +107 -0
- package/dist/cjs/src/utils/template.d.ts.map +1 -0
- package/dist/cjs/src/utils/template.js +283 -0
- package/dist/cjs/src/utils/template.js.map +1 -0
- package/dist/{cjs → src}/adapters/MemoryAdapter.d.ts +4 -4
- package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/MemoryAdapter.js +41 -21
- package/dist/src/adapters/MemoryAdapter.js.map +1 -0
- package/dist/{cjs → src}/adapters/MongoAdapter.d.ts +3 -3
- package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/MongoAdapter.js +2 -1
- package/dist/src/adapters/MongoAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/OpenSearchAdapter.d.ts +3 -3
- package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/OpenSearchAdapter.js +10 -13
- package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/PostgreSQLAdapter.d.ts +3 -3
- package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/PostgreSQLAdapter.js +1 -1
- package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/PrismaAdapter.d.ts +3 -3
- package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/PrismaAdapter.js +35 -5
- package/dist/src/adapters/PrismaAdapter.js.map +1 -0
- package/dist/{adapters → src/adapters}/RedisAdapter.d.ts +3 -3
- package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/RedisAdapter.js +3 -2
- package/dist/src/adapters/RedisAdapter.js.map +1 -0
- package/dist/{cjs → src}/adapters/SQLiteAdapter.d.ts +3 -3
- package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/dist/{adapters → src/adapters}/SQLiteAdapter.js +2 -1
- package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/core/Agent.d.ts +223 -0
- package/dist/src/core/Agent.d.ts.map +1 -0
- package/dist/src/core/Agent.js +1656 -0
- package/dist/src/core/Agent.js.map +1 -0
- package/dist/src/core/Events.d.ts +26 -0
- package/dist/src/core/Events.d.ts.map +1 -0
- package/dist/src/core/Events.js +137 -0
- package/dist/src/core/Events.js.map +1 -0
- package/dist/{cjs → src}/core/PersistenceManager.d.ts +21 -19
- package/dist/src/core/PersistenceManager.d.ts.map +1 -0
- package/dist/{core → src/core}/PersistenceManager.js +71 -18
- package/dist/src/core/PersistenceManager.js.map +1 -0
- package/dist/src/core/PromptComposer.d.ts +27 -0
- package/dist/src/core/PromptComposer.d.ts.map +1 -0
- package/dist/src/core/PromptComposer.js +153 -0
- package/dist/src/core/PromptComposer.js.map +1 -0
- package/dist/src/core/ResponseEngine.d.ts +32 -0
- package/dist/src/core/ResponseEngine.d.ts.map +1 -0
- package/dist/src/core/ResponseEngine.js +80 -0
- package/dist/src/core/ResponseEngine.js.map +1 -0
- package/dist/src/core/ResponsePipeline.d.ts +171 -0
- package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
- package/dist/src/core/ResponsePipeline.js +510 -0
- package/dist/src/core/ResponsePipeline.js.map +1 -0
- package/dist/src/core/Route.d.ts +145 -0
- package/dist/src/core/Route.d.ts.map +1 -0
- package/dist/src/core/Route.js +339 -0
- package/dist/src/core/Route.js.map +1 -0
- package/dist/src/core/RoutingEngine.d.ts +129 -0
- package/dist/src/core/RoutingEngine.d.ts.map +1 -0
- package/dist/{core → src/core}/RoutingEngine.js +211 -113
- package/dist/src/core/RoutingEngine.js.map +1 -0
- package/dist/src/core/SessionManager.d.ts +86 -0
- package/dist/src/core/SessionManager.d.ts.map +1 -0
- package/dist/src/core/SessionManager.js +213 -0
- package/dist/src/core/SessionManager.js.map +1 -0
- package/dist/src/core/Step.d.ts +96 -0
- package/dist/src/core/Step.d.ts.map +1 -0
- package/dist/src/core/Step.js +202 -0
- package/dist/src/core/Step.js.map +1 -0
- package/dist/src/core/ToolExecutor.d.ts +45 -0
- package/dist/src/core/ToolExecutor.d.ts.map +1 -0
- package/dist/src/core/ToolExecutor.js +80 -0
- package/dist/src/core/ToolExecutor.js.map +1 -0
- package/dist/{cjs → src}/index.d.ts +7 -15
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +6 -7
- package/dist/src/index.js.map +1 -0
- package/dist/{providers → src/providers}/AnthropicProvider.d.ts +1 -1
- package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/{providers → src/providers}/AnthropicProvider.js +54 -2
- package/dist/src/providers/AnthropicProvider.js.map +1 -0
- package/dist/{cjs → src}/providers/GeminiProvider.d.ts +1 -1
- package/dist/{cjs → src}/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/{providers → src/providers}/GeminiProvider.js +65 -0
- package/dist/src/providers/GeminiProvider.js.map +1 -0
- package/dist/{providers → src/providers}/OpenAIProvider.d.ts +1 -1
- package/dist/{cjs → src}/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/{providers → src/providers}/OpenAIProvider.js +70 -1
- package/dist/src/providers/OpenAIProvider.js.map +1 -0
- package/dist/{cjs → src}/providers/OpenRouterProvider.d.ts +1 -1
- package/dist/{cjs → src}/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/{providers → src/providers}/OpenRouterProvider.js +76 -0
- package/dist/src/providers/OpenRouterProvider.js.map +1 -0
- package/dist/src/providers/index.js.map +1 -0
- package/dist/{types → src/types}/agent.d.ts +80 -41
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/{types → src/types}/ai.d.ts +7 -0
- package/dist/src/types/ai.d.ts.map +1 -0
- package/dist/{cjs → src}/types/ai.js.map +1 -1
- package/dist/{cjs → src}/types/history.d.ts +76 -18
- package/dist/src/types/history.d.ts.map +1 -0
- package/dist/src/types/history.js +30 -0
- package/dist/src/types/history.js.map +1 -0
- package/dist/src/types/index.d.ts +20 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +10 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/{cjs → src}/types/persistence.d.ts +38 -23
- package/dist/src/types/persistence.d.ts.map +1 -0
- package/dist/src/types/persistence.js.map +1 -0
- package/dist/src/types/route.d.ts +235 -0
- package/dist/src/types/route.d.ts.map +1 -0
- package/dist/{types → src/types}/route.js.map +1 -1
- package/dist/src/types/session.d.ts +65 -0
- package/dist/src/types/session.d.ts.map +1 -0
- package/dist/src/types/session.js +5 -0
- package/dist/src/types/session.js.map +1 -0
- package/dist/src/types/template.d.ts +30 -0
- package/dist/src/types/template.d.ts.map +1 -0
- package/dist/src/types/template.js +2 -0
- package/dist/src/types/template.js.map +1 -0
- package/dist/{cjs → src}/types/tool.d.ts +17 -13
- package/dist/src/types/tool.d.ts.map +1 -0
- package/dist/{types → src/types}/tool.js.map +1 -1
- package/dist/src/utils/clone.d.ts +8 -0
- package/dist/src/utils/clone.d.ts.map +1 -0
- package/dist/src/utils/clone.js +33 -0
- package/dist/src/utils/clone.js.map +1 -0
- package/dist/{cjs → src}/utils/event.d.ts +1 -1
- package/dist/{cjs → src}/utils/event.d.ts.map +1 -1
- package/dist/{utils → src/utils}/event.js +1 -1
- package/dist/src/utils/event.js.map +1 -0
- package/dist/src/utils/history.d.ts +31 -0
- package/dist/src/utils/history.d.ts.map +1 -0
- package/dist/src/utils/history.js +121 -0
- package/dist/src/utils/history.js.map +1 -0
- package/dist/src/utils/id.js.map +1 -0
- package/dist/src/utils/index.d.ts +13 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +19 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/retry.js.map +1 -0
- package/dist/src/utils/session.d.ts +51 -0
- package/dist/src/utils/session.d.ts.map +1 -0
- package/dist/{types → src/utils}/session.js +33 -32
- package/dist/src/utils/session.js.map +1 -0
- package/dist/src/utils/template.d.ts +107 -0
- package/dist/src/utils/template.d.ts.map +1 -0
- package/dist/src/utils/template.js +276 -0
- package/dist/src/utils/template.js.map +1 -0
- package/docs/README.md +174 -68
- package/docs/{API_REFERENCE.md → api/README.md} +925 -255
- package/docs/api/overview.md +952 -0
- package/docs/core/agent/README.md +787 -0
- package/docs/{CONTEXT_MANAGEMENT.md → core/agent/context-management.md} +175 -102
- package/docs/{ARCHITECTURE.md → core/agent/session-management.md} +117 -69
- package/docs/core/ai-integration/prompt-composition.md +220 -0
- package/docs/core/ai-integration/providers.md +515 -0
- package/docs/core/ai-integration/response-processing.md +176 -0
- package/docs/core/conversation-flows/data-collection.md +623 -0
- package/docs/core/conversation-flows/route-dsl.md +502 -0
- package/docs/core/conversation-flows/routes.md +117 -0
- package/docs/core/conversation-flows/step-transitions.md +595 -0
- package/docs/core/conversation-flows/steps.md +154 -0
- package/docs/{ADAPTERS.md → core/persistence/adapters.md} +1 -1
- package/docs/core/persistence/session-storage.md +644 -0
- package/docs/core/routing/intelligent-routing.md +348 -0
- package/docs/core/tools/tool-definition.md +346 -0
- package/docs/core/tools/tool-execution.md +815 -0
- package/docs/core/tools/tool-scoping.md +628 -0
- package/docs/guides/getting-started/README.md +406 -0
- package/examples/{company-qna-agent.ts → advanced-patterns/knowledge-based-agent.ts} +139 -95
- package/examples/{persistent-onboarding.ts → advanced-patterns/persistent-onboarding.ts} +244 -137
- package/examples/{rules-prohibitions.ts → advanced-patterns/route-lifecycle-hooks.ts} +130 -84
- package/examples/{streaming-agent.ts → advanced-patterns/streaming-responses.ts} +116 -90
- package/examples/ai-providers/anthropic-integration.ts +384 -0
- package/examples/{openai-agent.ts → ai-providers/openai-integration.ts} +57 -63
- package/examples/conversation-flows/completion-transitions.ts +277 -0
- package/examples/core-concepts/basic-agent.ts +443 -0
- package/examples/core-concepts/schema-driven-extraction.ts +305 -0
- package/examples/core-concepts/session-management.ts +406 -0
- package/examples/integrations/database-integration.ts +630 -0
- package/examples/integrations/healthcare-integration.ts +609 -0
- package/examples/{opensearch-persistence.ts → integrations/search-integration.ts} +199 -171
- package/examples/integrations/server-session-management.ts +307 -0
- package/examples/persistence/custom-adapter.ts +529 -0
- package/examples/{prisma-persistence.ts → persistence/database-persistence.ts} +215 -272
- package/examples/persistence/memory-sessions.ts +495 -0
- package/examples/{prisma-schema.example.prisma → persistence/prisma-schema.example.prisma} +1 -1
- package/examples/persistence/redis-persistence.ts +490 -0
- package/examples/tools/basic-tools.ts +561 -0
- package/examples/{extracted-data-modification.ts → tools/data-enrichment-tools.ts} +128 -117
- package/package.json +14 -10
- package/src/adapters/MemoryAdapter.ts +74 -46
- package/src/adapters/MongoAdapter.ts +33 -24
- package/src/adapters/OpenSearchAdapter.ts +41 -37
- package/src/adapters/PostgreSQLAdapter.ts +35 -24
- package/src/adapters/PrismaAdapter.ts +69 -27
- package/src/adapters/RedisAdapter.ts +38 -26
- package/src/adapters/SQLiteAdapter.ts +32 -22
- package/src/core/Agent.ts +1431 -526
- package/src/core/Events.ts +100 -112
- package/src/core/PersistenceManager.ts +103 -49
- package/src/core/PromptComposer.ts +158 -85
- package/src/core/ResponseEngine.ts +128 -46
- package/src/core/ResponsePipeline.ts +830 -0
- package/src/core/Route.ts +222 -53
- package/src/core/RoutingEngine.ts +345 -229
- package/src/core/SessionManager.ts +265 -0
- package/src/core/Step.ts +157 -67
- package/src/core/ToolExecutor.ts +52 -43
- package/src/index.ts +31 -37
- package/src/providers/AnthropicProvider.ts +71 -5
- package/src/providers/GeminiProvider.ts +83 -2
- package/src/providers/OpenAIProvider.ts +95 -3
- package/src/providers/OpenRouterProvider.ts +102 -2
- package/src/types/agent.ts +81 -46
- package/src/types/ai.ts +7 -0
- package/src/types/history.ts +91 -18
- package/src/types/index.ts +45 -7
- package/src/types/persistence.ts +45 -28
- package/src/types/route.ts +122 -57
- package/src/types/session.ts +20 -220
- package/src/types/template.ts +36 -0
- package/src/types/tool.ts +23 -19
- package/src/utils/clone.ts +36 -0
- package/src/utils/event.ts +1 -1
- package/src/utils/history.ts +143 -0
- package/src/utils/index.ts +53 -0
- package/src/utils/session.ts +204 -0
- package/src/utils/template.ts +335 -0
- package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/adapters/MemoryAdapter.js.map +0 -1
- package/dist/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/adapters/MongoAdapter.js.map +0 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/adapters/PrismaAdapter.js.map +0 -1
- package/dist/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/adapters/RedisAdapter.js.map +0 -1
- package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js.map +0 -1
- package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/cjs/adapters/index.js.map +0 -1
- package/dist/cjs/constants/index.js.map +0 -1
- package/dist/cjs/core/Agent.d.ts +0 -197
- package/dist/cjs/core/Agent.d.ts.map +0 -1
- package/dist/cjs/core/Agent.js +0 -966
- package/dist/cjs/core/Agent.js.map +0 -1
- package/dist/cjs/core/DomainRegistry.d.ts +0 -36
- package/dist/cjs/core/DomainRegistry.d.ts.map +0 -1
- package/dist/cjs/core/DomainRegistry.js +0 -72
- package/dist/cjs/core/DomainRegistry.js.map +0 -1
- package/dist/cjs/core/Events.d.ts +0 -41
- package/dist/cjs/core/Events.d.ts.map +0 -1
- package/dist/cjs/core/Events.js +0 -99
- package/dist/cjs/core/Events.js.map +0 -1
- package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
- package/dist/cjs/core/PersistenceManager.js.map +0 -1
- package/dist/cjs/core/PromptComposer.d.ts +0 -24
- package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
- package/dist/cjs/core/PromptComposer.js +0 -127
- package/dist/cjs/core/PromptComposer.js.map +0 -1
- package/dist/cjs/core/ResponseEngine.d.ts +0 -14
- package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
- package/dist/cjs/core/ResponseEngine.js +0 -56
- package/dist/cjs/core/ResponseEngine.js.map +0 -1
- package/dist/cjs/core/Route.d.ts +0 -90
- package/dist/cjs/core/Route.d.ts.map +0 -1
- package/dist/cjs/core/Route.js +0 -203
- package/dist/cjs/core/Route.js.map +0 -1
- package/dist/cjs/core/RoutingEngine.d.ts +0 -109
- package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
- package/dist/cjs/core/RoutingEngine.js.map +0 -1
- package/dist/cjs/core/Step.d.ts +0 -72
- package/dist/cjs/core/Step.d.ts.map +0 -1
- package/dist/cjs/core/Step.js +0 -150
- package/dist/cjs/core/Step.js.map +0 -1
- package/dist/cjs/core/Tool.d.ts +0 -39
- package/dist/cjs/core/Tool.d.ts.map +0 -1
- package/dist/cjs/core/Tool.js +0 -34
- package/dist/cjs/core/Tool.js.map +0 -1
- package/dist/cjs/core/ToolExecutor.d.ts +0 -29
- package/dist/cjs/core/ToolExecutor.d.ts.map +0 -1
- package/dist/cjs/core/ToolExecutor.js.map +0 -1
- package/dist/cjs/core/Transition.d.ts +0 -32
- package/dist/cjs/core/Transition.d.ts.map +0 -1
- package/dist/cjs/core/Transition.js +0 -89
- package/dist/cjs/core/Transition.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts.map +0 -1
- package/dist/cjs/providers/AnthropicProvider.js.map +0 -1
- package/dist/cjs/providers/GeminiProvider.js.map +0 -1
- package/dist/cjs/providers/OpenAIProvider.js.map +0 -1
- package/dist/cjs/providers/OpenRouterProvider.js.map +0 -1
- package/dist/cjs/providers/index.js.map +0 -1
- package/dist/cjs/types/agent.d.ts.map +0 -1
- package/dist/cjs/types/agent.js.map +0 -1
- package/dist/cjs/types/ai.d.ts.map +0 -1
- package/dist/cjs/types/history.d.ts.map +0 -1
- package/dist/cjs/types/history.js +0 -37
- package/dist/cjs/types/history.js.map +0 -1
- package/dist/cjs/types/index.d.ts +0 -12
- package/dist/cjs/types/index.d.ts.map +0 -1
- package/dist/cjs/types/index.js +0 -12
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/persistence.d.ts.map +0 -1
- package/dist/cjs/types/persistence.js.map +0 -1
- package/dist/cjs/types/route.d.ts +0 -175
- package/dist/cjs/types/route.d.ts.map +0 -1
- package/dist/cjs/types/session.d.ts +0 -104
- package/dist/cjs/types/session.d.ts.map +0 -1
- package/dist/cjs/types/session.js.map +0 -1
- package/dist/cjs/types/tool.d.ts.map +0 -1
- package/dist/cjs/utils/event.js.map +0 -1
- package/dist/cjs/utils/id.js.map +0 -1
- package/dist/cjs/utils/logger.js.map +0 -1
- package/dist/cjs/utils/retry.js.map +0 -1
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/index.js.map +0 -1
- package/dist/core/Agent.d.ts +0 -197
- package/dist/core/Agent.d.ts.map +0 -1
- package/dist/core/Agent.js +0 -962
- package/dist/core/Agent.js.map +0 -1
- package/dist/core/DomainRegistry.d.ts +0 -36
- package/dist/core/DomainRegistry.d.ts.map +0 -1
- package/dist/core/DomainRegistry.js +0 -68
- package/dist/core/DomainRegistry.js.map +0 -1
- package/dist/core/Events.d.ts +0 -41
- package/dist/core/Events.d.ts.map +0 -1
- package/dist/core/Events.js +0 -94
- package/dist/core/Events.js.map +0 -1
- package/dist/core/PersistenceManager.d.ts.map +0 -1
- package/dist/core/PersistenceManager.js.map +0 -1
- package/dist/core/PromptComposer.d.ts +0 -24
- package/dist/core/PromptComposer.d.ts.map +0 -1
- package/dist/core/PromptComposer.js +0 -123
- package/dist/core/PromptComposer.js.map +0 -1
- package/dist/core/ResponseEngine.d.ts +0 -14
- package/dist/core/ResponseEngine.d.ts.map +0 -1
- package/dist/core/ResponseEngine.js +0 -52
- package/dist/core/ResponseEngine.js.map +0 -1
- package/dist/core/Route.d.ts +0 -90
- package/dist/core/Route.d.ts.map +0 -1
- package/dist/core/Route.js +0 -199
- package/dist/core/Route.js.map +0 -1
- package/dist/core/RoutingEngine.d.ts +0 -109
- package/dist/core/RoutingEngine.d.ts.map +0 -1
- package/dist/core/RoutingEngine.js.map +0 -1
- package/dist/core/Step.d.ts +0 -72
- package/dist/core/Step.d.ts.map +0 -1
- package/dist/core/Step.js +0 -146
- package/dist/core/Step.js.map +0 -1
- package/dist/core/Tool.d.ts +0 -39
- package/dist/core/Tool.d.ts.map +0 -1
- package/dist/core/Tool.js +0 -31
- package/dist/core/Tool.js.map +0 -1
- package/dist/core/ToolExecutor.d.ts +0 -29
- package/dist/core/ToolExecutor.d.ts.map +0 -1
- package/dist/core/ToolExecutor.js +0 -69
- package/dist/core/ToolExecutor.js.map +0 -1
- package/dist/core/Transition.d.ts +0 -32
- package/dist/core/Transition.d.ts.map +0 -1
- package/dist/core/Transition.js +0 -85
- package/dist/core/Transition.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers/AnthropicProvider.d.ts.map +0 -1
- package/dist/providers/AnthropicProvider.js.map +0 -1
- package/dist/providers/GeminiProvider.d.ts.map +0 -1
- package/dist/providers/GeminiProvider.js.map +0 -1
- package/dist/providers/OpenAIProvider.d.ts.map +0 -1
- package/dist/providers/OpenAIProvider.js.map +0 -1
- package/dist/providers/OpenRouterProvider.d.ts.map +0 -1
- package/dist/providers/OpenRouterProvider.js.map +0 -1
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js.map +0 -1
- package/dist/types/agent.d.ts.map +0 -1
- package/dist/types/agent.js.map +0 -1
- package/dist/types/ai.d.ts.map +0 -1
- package/dist/types/ai.js.map +0 -1
- package/dist/types/history.d.ts.map +0 -1
- package/dist/types/history.js +0 -34
- package/dist/types/history.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/types/persistence.d.ts.map +0 -1
- package/dist/types/persistence.js.map +0 -1
- package/dist/types/route.d.ts +0 -175
- package/dist/types/route.d.ts.map +0 -1
- package/dist/types/routing.d.ts.map +0 -1
- package/dist/types/schema.d.ts.map +0 -1
- package/dist/types/session.d.ts +0 -104
- package/dist/types/session.d.ts.map +0 -1
- package/dist/types/session.js.map +0 -1
- package/dist/types/tool.d.ts.map +0 -1
- package/dist/utils/event.d.ts.map +0 -1
- package/dist/utils/event.js.map +0 -1
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js.map +0 -1
- package/docs/AGENT.md +0 -535
- package/docs/DOCS.md +0 -263
- package/docs/DOMAINS.md +0 -735
- package/docs/EXAMPLES.md +0 -467
- package/docs/GETTING_STARTED.md +0 -424
- package/docs/PERSISTENCE.md +0 -815
- package/docs/PROVIDERS.md +0 -612
- package/docs/ROUTES.md +0 -1085
- package/docs/STEPS.md +0 -883
- package/examples/business-onboarding.ts +0 -791
- package/examples/custom-database-persistence.ts +0 -574
- package/examples/declarative-agent.ts +0 -401
- package/examples/domain-scoping.ts +0 -366
- package/examples/healthcare-agent.ts +0 -511
- package/examples/redis-persistence.ts +0 -525
- package/examples/route-transitions.ts +0 -266
- package/examples/travel-agent.ts +0 -584
- package/src/core/DomainRegistry.ts +0 -80
- package/src/core/Tool.ts +0 -112
- package/src/core/Transition.ts +0 -115
- /package/dist/{adapters → cjs/src/adapters}/index.d.ts +0 -0
- /package/dist/cjs/{adapters → src/adapters}/index.js +0 -0
- /package/dist/cjs/{constants → src/constants}/index.d.ts +0 -0
- /package/dist/cjs/{constants → src/constants}/index.js +0 -0
- /package/dist/cjs/{providers → src/providers}/index.d.ts +0 -0
- /package/dist/cjs/{providers → src/providers}/index.js +0 -0
- /package/dist/cjs/{types → src/types}/agent.js +0 -0
- /package/dist/cjs/{types → src/types}/ai.js +0 -0
- /package/dist/cjs/{types → src/types}/persistence.js +0 -0
- /package/dist/cjs/{types → src/types}/route.js +0 -0
- /package/dist/cjs/{types → src/types}/routing.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/routing.js +0 -0
- /package/dist/cjs/{types → src/types}/schema.d.ts +0 -0
- /package/dist/cjs/{types → src/types}/schema.js +0 -0
- /package/dist/cjs/{types → src/types}/tool.js +0 -0
- /package/dist/cjs/{utils → src/utils}/id.d.ts +0 -0
- /package/dist/cjs/{utils → src/utils}/id.js +0 -0
- /package/dist/cjs/{utils → src/utils}/logger.d.ts +0 -0
- /package/dist/cjs/{utils → src/utils}/logger.js +0 -0
- /package/dist/cjs/{utils → src/utils}/retry.d.ts +0 -0
- /package/dist/cjs/{utils → src/utils}/retry.js +0 -0
- /package/dist/{cjs → src}/adapters/index.d.ts +0 -0
- /package/dist/{cjs → src}/adapters/index.d.ts.map +0 -0
- /package/dist/{adapters → src/adapters}/index.js +0 -0
- /package/dist/{constants → src/constants}/index.d.ts +0 -0
- /package/dist/{cjs → src}/constants/index.d.ts.map +0 -0
- /package/dist/{constants → src/constants}/index.js +0 -0
- /package/dist/{providers → src/providers}/index.d.ts +0 -0
- /package/dist/{cjs → src}/providers/index.d.ts.map +0 -0
- /package/dist/{providers → src/providers}/index.js +0 -0
- /package/dist/{types → src/types}/agent.js +0 -0
- /package/dist/{types → src/types}/ai.js +0 -0
- /package/dist/{types → src/types}/persistence.js +0 -0
- /package/dist/{types → src/types}/route.js +0 -0
- /package/dist/{types → src/types}/routing.d.ts +0 -0
- /package/dist/{cjs → src}/types/routing.d.ts.map +0 -0
- /package/dist/{types → src/types}/routing.js +0 -0
- /package/dist/{cjs → src}/types/routing.js.map +0 -0
- /package/dist/{types → src/types}/schema.d.ts +0 -0
- /package/dist/{cjs → src}/types/schema.d.ts.map +0 -0
- /package/dist/{types → src/types}/schema.js +0 -0
- /package/dist/{cjs → src}/types/schema.js.map +0 -0
- /package/dist/{types → src/types}/tool.js +0 -0
- /package/dist/{utils → src/utils}/id.d.ts +0 -0
- /package/dist/{cjs → src}/utils/id.d.ts.map +0 -0
- /package/dist/{utils → src/utils}/id.js +0 -0
- /package/dist/{utils → src/utils}/logger.d.ts +0 -0
- /package/dist/{cjs → src}/utils/logger.d.ts.map +0 -0
- /package/dist/{utils → src/utils}/logger.js +0 -0
- /package/dist/{utils → src/utils}/retry.d.ts +0 -0
- /package/dist/{cjs → src}/utils/retry.d.ts.map +0 -0
- /package/dist/{utils → src/utils}/retry.js +0 -0
- /package/docs/{PUBLISHING.md → guides/advanced-patterns/publishing.md} +0 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic Provider Integration Example
|
|
3
|
+
*
|
|
4
|
+
* This example demonstrates how to use the Anthropic provider with Claude models
|
|
5
|
+
* for building conversational agents. Shows provider configuration, model selection,
|
|
6
|
+
* and Claude-specific features.
|
|
7
|
+
*
|
|
8
|
+
* Key concepts:
|
|
9
|
+
* - Anthropic provider setup
|
|
10
|
+
* - Claude model configuration
|
|
11
|
+
* - Temperature and other parameters
|
|
12
|
+
* - Streaming responses
|
|
13
|
+
* - Tool calling with Claude
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { Agent, AnthropicProvider, type Tool } from "../../src";
|
|
17
|
+
|
|
18
|
+
// Define data types for our example
|
|
19
|
+
interface ResearchData {
|
|
20
|
+
topic: string;
|
|
21
|
+
depth: "overview" | "detailed" | "comprehensive";
|
|
22
|
+
sources: number;
|
|
23
|
+
format: "summary" | "bullet_points" | "structured";
|
|
24
|
+
researchId?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Research tool that Claude can use
|
|
28
|
+
const conductResearch: Tool<unknown, ResearchData, unknown[], unknown> = {
|
|
29
|
+
id: "conduct_research",
|
|
30
|
+
description: "Conduct comprehensive research on a given topic",
|
|
31
|
+
parameters: {
|
|
32
|
+
type: "object",
|
|
33
|
+
properties: {},
|
|
34
|
+
},
|
|
35
|
+
handler: async ({ data }) => {
|
|
36
|
+
console.log(
|
|
37
|
+
`Conducting ${data?.depth} research on: ${data?.topic}`
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const researchId = `RES-${Date.now()}`;
|
|
41
|
+
|
|
42
|
+
// Simulate research process
|
|
43
|
+
const findings = {
|
|
44
|
+
overview: `Found ${data?.sources || 3} sources about ${
|
|
45
|
+
data?.topic
|
|
46
|
+
}`,
|
|
47
|
+
key_points: [
|
|
48
|
+
"Latest developments in the field",
|
|
49
|
+
"Current trends and challenges",
|
|
50
|
+
"Future outlook and predictions",
|
|
51
|
+
],
|
|
52
|
+
sources: ["academic papers", "industry reports", "expert interviews"],
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
return Promise.resolve({
|
|
56
|
+
data: `Research completed (ID: ${researchId}). ${findings.overview}`,
|
|
57
|
+
dataUpdate: {
|
|
58
|
+
researchId,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Define research schema
|
|
65
|
+
const researchSchema = {
|
|
66
|
+
type: "object",
|
|
67
|
+
properties: {
|
|
68
|
+
topic: { type: "string", description: "The research topic" },
|
|
69
|
+
depth: {
|
|
70
|
+
type: "string",
|
|
71
|
+
enum: ["overview", "detailed", "comprehensive"],
|
|
72
|
+
default: "detailed",
|
|
73
|
+
},
|
|
74
|
+
sources: {
|
|
75
|
+
type: "number",
|
|
76
|
+
minimum: 1,
|
|
77
|
+
maximum: 20,
|
|
78
|
+
default: 5,
|
|
79
|
+
description: "Number of sources to analyze",
|
|
80
|
+
},
|
|
81
|
+
format: {
|
|
82
|
+
type: "string",
|
|
83
|
+
enum: ["summary", "bullet_points", "structured"],
|
|
84
|
+
default: "structured",
|
|
85
|
+
description: "Output format preference",
|
|
86
|
+
},
|
|
87
|
+
researchId: { type: "string" },
|
|
88
|
+
},
|
|
89
|
+
required: ["topic"],
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// Create agent with Anthropic provider
|
|
93
|
+
const agent = new Agent<unknown, ResearchData>({
|
|
94
|
+
name: "ClaudeResearcher",
|
|
95
|
+
description: "A research assistant powered by Claude",
|
|
96
|
+
provider: new AnthropicProvider({
|
|
97
|
+
apiKey: process.env.ANTHROPIC_API_KEY!,
|
|
98
|
+
model: "claude-sonnet-4-5", // Latest Claude model
|
|
99
|
+
config: {
|
|
100
|
+
temperature: 0.7, // Balanced creativity vs consistency
|
|
101
|
+
max_tokens: 4096,
|
|
102
|
+
top_p: 0.9,
|
|
103
|
+
},
|
|
104
|
+
}),
|
|
105
|
+
// NEW: Agent-level schema
|
|
106
|
+
schema: researchSchema,
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Create research route
|
|
110
|
+
const researchRoute = agent.createRoute({
|
|
111
|
+
title: "Research Assistant",
|
|
112
|
+
description: "Conduct research using Claude's analytical capabilities",
|
|
113
|
+
// NEW: Required fields for route completion
|
|
114
|
+
requiredFields: ["topic"],
|
|
115
|
+
// NEW: Optional fields that enhance the experience
|
|
116
|
+
optionalFields: ["depth", "sources", "format", "researchId"],
|
|
117
|
+
identity: `You are Claude, an AI research assistant created by Anthropic.
|
|
118
|
+
You have access to extensive knowledge and can conduct thorough research.
|
|
119
|
+
Always be helpful, truthful, and provide well-reasoned analysis.`,
|
|
120
|
+
initialStep: {
|
|
121
|
+
prompt: `Hello! I'm Claude, your AI research assistant. I can help you research any topic thoroughly.
|
|
122
|
+
|
|
123
|
+
What would you like me to research today? For best results, include:
|
|
124
|
+
- The specific topic or question
|
|
125
|
+
- How deep you want the research (overview, detailed, or comprehensive)
|
|
126
|
+
- What format you'd prefer (summary, bullet points, or structured)
|
|
127
|
+
|
|
128
|
+
For example: "Research the impact of artificial intelligence on healthcare, comprehensive analysis, structured format"`,
|
|
129
|
+
collect: ["topic"],
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// Build research conversation flow
|
|
134
|
+
const askTopic = researchRoute.initialStep.nextStep({
|
|
135
|
+
prompt: "What topic would you like me to research?",
|
|
136
|
+
collect: ["topic"],
|
|
137
|
+
skipIf: (data) => !!data.topic,
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
const askDepth = askTopic.nextStep({
|
|
141
|
+
prompt:
|
|
142
|
+
"How deep should I go with this research? (overview, detailed, or comprehensive)",
|
|
143
|
+
collect: ["depth"],
|
|
144
|
+
requires: ["topic"],
|
|
145
|
+
skipIf: (data) => !!data.depth,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
const askSources = askDepth.nextStep({
|
|
149
|
+
prompt: "How many sources should I analyze? (1-20, default is 5)",
|
|
150
|
+
collect: ["sources"],
|
|
151
|
+
requires: ["topic"],
|
|
152
|
+
skipIf: (data) => data.sources !== undefined,
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
const askFormat = askSources.nextStep({
|
|
156
|
+
prompt:
|
|
157
|
+
"What format would you prefer for the results? (summary, bullet_points, or structured)",
|
|
158
|
+
collect: ["format"],
|
|
159
|
+
requires: ["topic"],
|
|
160
|
+
skipIf: (data) => !!data.format,
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
askFormat.nextStep({
|
|
164
|
+
prompt: ({ session }) => {
|
|
165
|
+
const data = session?.data;
|
|
166
|
+
return `I'll now conduct ${data?.depth || "detailed"} research on "${
|
|
167
|
+
data?.topic
|
|
168
|
+
}" using ${data?.sources || 5} sources. This may take a moment...`;
|
|
169
|
+
},
|
|
170
|
+
tools: [conductResearch],
|
|
171
|
+
requires: ["topic"],
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// Demonstrate Claude's research capabilities
|
|
175
|
+
async function demonstrateClaudeResearch() {
|
|
176
|
+
console.log("=== Claude Research Assistant Demo ===\n");
|
|
177
|
+
|
|
178
|
+
// Example 1: Comprehensive research request
|
|
179
|
+
console.log("Example 1: Comprehensive AI research");
|
|
180
|
+
console.log(
|
|
181
|
+
"User: Research the impact of artificial intelligence on healthcare, comprehensive analysis, structured format"
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
const response1 = await agent.respond({
|
|
185
|
+
history: [
|
|
186
|
+
{
|
|
187
|
+
role: "user",
|
|
188
|
+
content:
|
|
189
|
+
"Research the impact of artificial intelligence on healthcare, comprehensive analysis, structured format",
|
|
190
|
+
name: "Researcher",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
console.log("Claude:", response1.message);
|
|
196
|
+
console.log(
|
|
197
|
+
"Collected data:",
|
|
198
|
+
JSON.stringify(response1.session?.data, null, 2)
|
|
199
|
+
);
|
|
200
|
+
console.log();
|
|
201
|
+
|
|
202
|
+
// Example 2: Step-by-step research configuration
|
|
203
|
+
console.log("Example 2: Step-by-step configuration");
|
|
204
|
+
console.log("User: I want to research renewable energy");
|
|
205
|
+
|
|
206
|
+
const response2a = await agent.respond({
|
|
207
|
+
history: [
|
|
208
|
+
{
|
|
209
|
+
role: "user",
|
|
210
|
+
content: "I want to research renewable energy",
|
|
211
|
+
name: "Student",
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
console.log("Claude:", response2a.message);
|
|
217
|
+
|
|
218
|
+
console.log("User: Make it detailed with 8 sources");
|
|
219
|
+
const response2b = await agent.respond({
|
|
220
|
+
history: [
|
|
221
|
+
{
|
|
222
|
+
role: "user",
|
|
223
|
+
content: "I want to research renewable energy",
|
|
224
|
+
name: "Student",
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
role: "assistant",
|
|
228
|
+
content: response2a.message,
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
role: "user",
|
|
232
|
+
content: "Make it detailed with 8 sources",
|
|
233
|
+
name: "Student",
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
session: response2a.session,
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
console.log("Claude:", response2b.message);
|
|
240
|
+
|
|
241
|
+
console.log("User: Use bullet points format");
|
|
242
|
+
const response2c = await agent.respond({
|
|
243
|
+
history: [
|
|
244
|
+
{
|
|
245
|
+
role: "user",
|
|
246
|
+
content: "I want to research renewable energy",
|
|
247
|
+
name: "Student",
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
role: "assistant",
|
|
251
|
+
content: response2a.message,
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
role: "user",
|
|
255
|
+
content: "Make it detailed with 8 sources",
|
|
256
|
+
name: "Student",
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
role: "assistant",
|
|
260
|
+
content: response2b.message,
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
role: "user",
|
|
264
|
+
content: "Use bullet points format",
|
|
265
|
+
name: "Student",
|
|
266
|
+
},
|
|
267
|
+
],
|
|
268
|
+
session: response2b.session,
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
console.log("Claude:", response2c.message);
|
|
272
|
+
console.log(
|
|
273
|
+
"Final collected data:",
|
|
274
|
+
JSON.stringify(response2c.session?.data, null, 2)
|
|
275
|
+
);
|
|
276
|
+
console.log("Research complete:", response2c.isRouteComplete);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Demonstrate streaming with Claude
|
|
280
|
+
async function demonstrateClaudeStreaming() {
|
|
281
|
+
console.log("\n=== Claude Streaming Demo ===\n");
|
|
282
|
+
|
|
283
|
+
console.log("User: Give me a comprehensive overview of quantum computing");
|
|
284
|
+
|
|
285
|
+
let accumulatedResponse = "";
|
|
286
|
+
for await (const chunk of agent.respondStream({
|
|
287
|
+
history: [
|
|
288
|
+
{
|
|
289
|
+
role: "user",
|
|
290
|
+
content: "Give me a comprehensive overview of quantum computing",
|
|
291
|
+
name: "Scientist",
|
|
292
|
+
},
|
|
293
|
+
],
|
|
294
|
+
})) {
|
|
295
|
+
// Show streaming in real-time
|
|
296
|
+
process.stdout.write(chunk.delta);
|
|
297
|
+
accumulatedResponse += chunk.delta;
|
|
298
|
+
|
|
299
|
+
if (chunk.done) {
|
|
300
|
+
console.log("\n\nStreaming complete!");
|
|
301
|
+
console.log("Total length:", accumulatedResponse.length, "characters");
|
|
302
|
+
console.log(
|
|
303
|
+
"Session data:",
|
|
304
|
+
JSON.stringify(chunk.session?.data, null, 2)
|
|
305
|
+
);
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Show different Claude model configurations
|
|
312
|
+
function demonstrateModelConfigurations() {
|
|
313
|
+
console.log("\n=== Claude Model Configurations ===\n");
|
|
314
|
+
|
|
315
|
+
const configurations = [
|
|
316
|
+
{
|
|
317
|
+
name: "Creative Writing Assistant",
|
|
318
|
+
model: "claude-sonnet-4.5",
|
|
319
|
+
temperature: 0.9,
|
|
320
|
+
maxTokens: 8192,
|
|
321
|
+
useCase: "High creativity, long-form content",
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: "Code Review Bot",
|
|
325
|
+
model: "claude-haiku-4.5",
|
|
326
|
+
temperature: 0.3,
|
|
327
|
+
maxTokens: 4096,
|
|
328
|
+
useCase: "Fast, consistent code analysis",
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
name: "Data Analyst",
|
|
332
|
+
model: "claude-sonnet-4.5",
|
|
333
|
+
temperature: 0.1,
|
|
334
|
+
maxTokens: 16384,
|
|
335
|
+
useCase: "Precise analysis, complex reasoning",
|
|
336
|
+
},
|
|
337
|
+
];
|
|
338
|
+
|
|
339
|
+
configurations.forEach((config, index) => {
|
|
340
|
+
console.log(`${index + 1}. ${config.name}`);
|
|
341
|
+
console.log(` Model: ${config.model}`);
|
|
342
|
+
console.log(` Temperature: ${config.temperature}`);
|
|
343
|
+
console.log(` Max Tokens: ${config.maxTokens}`);
|
|
344
|
+
console.log(` Use Case: ${config.useCase}`);
|
|
345
|
+
console.log();
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
console.log("Example configuration code:");
|
|
349
|
+
console.log(
|
|
350
|
+
`
|
|
351
|
+
const creativeWriter = new AnthropicProvider({
|
|
352
|
+
apiKey: process.env.ANTHROPIC_API_KEY!,
|
|
353
|
+
model: "claude-sonnet-4.5",
|
|
354
|
+
temperature: 0.9, // High creativity
|
|
355
|
+
maxTokens: 8192, // Long responses
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
const codeReviewer = new AnthropicProvider({
|
|
359
|
+
apiKey: process.env.ANTHROPIC_API_KEY!,
|
|
360
|
+
model: "claude-haiku-4.5",
|
|
361
|
+
temperature: 0.3, // Low creativity, high consistency
|
|
362
|
+
maxTokens: 4096, // Shorter responses
|
|
363
|
+
});
|
|
364
|
+
`.trim()
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// Run demonstrations
|
|
369
|
+
async function main() {
|
|
370
|
+
try {
|
|
371
|
+
demonstrateModelConfigurations();
|
|
372
|
+
await demonstrateClaudeResearch();
|
|
373
|
+
await demonstrateClaudeStreaming();
|
|
374
|
+
} catch (error) {
|
|
375
|
+
console.error("Error:", error);
|
|
376
|
+
console.log(
|
|
377
|
+
"\nNote: Make sure to set ANTHROPIC_API_KEY environment variable"
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
383
|
+
main().catch(console.error);
|
|
384
|
+
}
|
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
import {
|
|
7
7
|
Agent,
|
|
8
8
|
OpenAIProvider,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
EventSource,
|
|
12
|
-
createSession,
|
|
9
|
+
type Tool,
|
|
10
|
+
userMessage,
|
|
13
11
|
END_ROUTE,
|
|
14
|
-
} from "
|
|
12
|
+
} from "../../src";
|
|
15
13
|
|
|
16
14
|
// Custom context type
|
|
17
15
|
interface CustomerContext {
|
|
@@ -28,32 +26,30 @@ interface WeatherData {
|
|
|
28
26
|
}
|
|
29
27
|
|
|
30
28
|
// Define a tool that can access collected data
|
|
31
|
-
const getWeather =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
const getWeather: Tool<CustomerContext, WeatherData, unknown[], unknown> = {
|
|
30
|
+
id: "get_weather",
|
|
31
|
+
description: "Get current weather for a location",
|
|
32
|
+
parameters: {
|
|
33
|
+
type: "object",
|
|
34
|
+
properties: {
|
|
35
|
+
location: { type: "string", description: "City name" },
|
|
36
|
+
},
|
|
37
|
+
required: ["location"],
|
|
38
|
+
},
|
|
39
|
+
handler: ({ data }, location) => {
|
|
38
40
|
// Use data location if available, otherwise use args
|
|
39
|
-
const
|
|
41
|
+
const finalLocation = data?.location || location;
|
|
40
42
|
|
|
41
43
|
// Simulate API call
|
|
42
44
|
return {
|
|
43
45
|
data: {
|
|
44
|
-
location,
|
|
46
|
+
location: finalLocation,
|
|
45
47
|
temperature: 72,
|
|
46
48
|
condition: "Sunny",
|
|
47
49
|
},
|
|
48
50
|
};
|
|
49
51
|
},
|
|
50
|
-
|
|
51
|
-
description: "Get current weather for a location",
|
|
52
|
-
parameters: {
|
|
53
|
-
location: { type: "string", description: "City name" },
|
|
54
|
-
},
|
|
55
|
-
}
|
|
56
|
-
);
|
|
52
|
+
};
|
|
57
53
|
|
|
58
54
|
async function main() {
|
|
59
55
|
// Initialize OpenAI provider
|
|
@@ -74,17 +70,38 @@ async function main() {
|
|
|
74
70
|
});
|
|
75
71
|
|
|
76
72
|
// Create agent with OpenAI
|
|
77
|
-
const agent = new Agent<CustomerContext>({
|
|
73
|
+
const agent = new Agent<CustomerContext, WeatherData>({
|
|
78
74
|
name: "Assistant",
|
|
79
75
|
description:
|
|
80
76
|
"A helpful AI assistant that can check weather and answer questions",
|
|
81
77
|
goal: "Assist users with information and weather queries",
|
|
78
|
+
identity:
|
|
79
|
+
"I am the Assistant, an intelligent AI powered by OpenAI's advanced language models. With access to real-time information and deep reasoning capabilities, I'm here to help you with weather updates, questions, and any information you need.",
|
|
82
80
|
context: {
|
|
83
81
|
customerId: "user123",
|
|
84
82
|
name: "Alice",
|
|
85
83
|
preferences: ["concise answers", "weather updates"],
|
|
86
84
|
},
|
|
87
85
|
provider: openaiProvider,
|
|
86
|
+
|
|
87
|
+
schema: {
|
|
88
|
+
type: "object",
|
|
89
|
+
properties: {
|
|
90
|
+
location: {
|
|
91
|
+
type: "string",
|
|
92
|
+
description: "City or location for weather check",
|
|
93
|
+
},
|
|
94
|
+
temperature: {
|
|
95
|
+
type: "number",
|
|
96
|
+
description: "Temperature in Fahrenheit",
|
|
97
|
+
},
|
|
98
|
+
condition: {
|
|
99
|
+
type: "string",
|
|
100
|
+
description: "Weather condition (sunny, cloudy, rainy, etc.)",
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
required: ["location"],
|
|
104
|
+
},
|
|
88
105
|
});
|
|
89
106
|
|
|
90
107
|
// Add domain knowledge
|
|
@@ -107,46 +124,28 @@ async function main() {
|
|
|
107
124
|
});
|
|
108
125
|
|
|
109
126
|
// Create weather route with data extraction schema
|
|
110
|
-
const weatherRoute = agent.createRoute
|
|
127
|
+
const weatherRoute = agent.createRoute({
|
|
111
128
|
title: "Check Weather",
|
|
112
129
|
description: "Help user check weather for a location",
|
|
113
130
|
conditions: ["User wants to know the weather"],
|
|
114
|
-
schema: {
|
|
115
|
-
type: "object",
|
|
116
|
-
properties: {
|
|
117
|
-
location: {
|
|
118
|
-
type: "string",
|
|
119
|
-
description: "City or location for weather check",
|
|
120
|
-
},
|
|
121
|
-
temperature: {
|
|
122
|
-
type: "number",
|
|
123
|
-
description: "Temperature in Fahrenheit",
|
|
124
|
-
},
|
|
125
|
-
condition: {
|
|
126
|
-
type: "string",
|
|
127
|
-
description: "Weather condition (sunny, cloudy, rainy, etc.)",
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
required: ["location"],
|
|
131
|
-
},
|
|
132
131
|
});
|
|
133
132
|
|
|
134
133
|
// Step 1: Collect location
|
|
135
134
|
const askLocation = weatherRoute.initialStep.nextStep({
|
|
136
|
-
|
|
135
|
+
prompt: "Ask which city they want weather for",
|
|
137
136
|
collect: ["location"],
|
|
138
137
|
skipIf: (data) => !!data.location,
|
|
139
138
|
});
|
|
140
139
|
|
|
141
140
|
// Step 2: Get weather data
|
|
142
141
|
const fetchWeather = askLocation.nextStep({
|
|
143
|
-
|
|
142
|
+
tools: [getWeather],
|
|
144
143
|
requires: ["location"],
|
|
145
144
|
});
|
|
146
145
|
|
|
147
146
|
// Step 3: Present weather information
|
|
148
147
|
const showWeather = fetchWeather.nextStep({
|
|
149
|
-
|
|
148
|
+
prompt:
|
|
150
149
|
"Present the weather information in a friendly way with temperature and condition",
|
|
151
150
|
});
|
|
152
151
|
|
|
@@ -155,22 +154,18 @@ async function main() {
|
|
|
155
154
|
// Example conversation with session step management
|
|
156
155
|
console.log("🤖 Starting OpenAI Agent Example\n");
|
|
157
156
|
|
|
158
|
-
//
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
// Build history
|
|
162
|
-
const history = [
|
|
163
|
-
createMessageEvent(
|
|
164
|
-
EventSource.CUSTOMER,
|
|
165
|
-
"Alice",
|
|
166
|
-
"What's the weather like in San Francisco?"
|
|
167
|
-
),
|
|
168
|
-
];
|
|
157
|
+
// Session is automatically managed by the agent
|
|
158
|
+
console.log("✨ Session ready:", agent.session.id);
|
|
169
159
|
|
|
170
160
|
try {
|
|
171
|
-
// Turn 1: Process weather query with session
|
|
172
|
-
console.log("📤 Processing with session
|
|
173
|
-
|
|
161
|
+
// Turn 1: Process weather query with session management
|
|
162
|
+
console.log("📤 Processing with session management...");
|
|
163
|
+
|
|
164
|
+
await agent.session.addMessage("user", "What's the weather like in San Francisco?", "Alice");
|
|
165
|
+
|
|
166
|
+
const response = await agent.respond({
|
|
167
|
+
history: agent.session.getHistory()
|
|
168
|
+
});
|
|
174
169
|
|
|
175
170
|
console.log("\n✅ Agent Configuration:");
|
|
176
171
|
console.log(` AI Provider: ${openaiProvider.name}`);
|
|
@@ -182,18 +177,17 @@ async function main() {
|
|
|
182
177
|
);
|
|
183
178
|
|
|
184
179
|
console.log("\n💬 Conversation:");
|
|
185
|
-
console.log(` Customer:
|
|
180
|
+
console.log(` Customer: What's the weather like in San Francisco?`);
|
|
186
181
|
console.log(` Agent: ${response.message}`);
|
|
187
182
|
console.log(` Route: ${response.session?.currentRoute?.title}`);
|
|
188
|
-
console.log(` Data:`,
|
|
183
|
+
console.log(` Data:`, agent.session.getData());
|
|
189
184
|
|
|
190
|
-
|
|
191
|
-
session = response.session!;
|
|
185
|
+
await agent.session.addMessage("assistant", response.message);
|
|
192
186
|
|
|
193
187
|
// Check for route completion
|
|
194
188
|
if (response.isRouteComplete) {
|
|
195
189
|
console.log("\n✅ Weather route complete!");
|
|
196
|
-
await logWeatherRequest(agent.getData(
|
|
190
|
+
await logWeatherRequest(agent.session.getData());
|
|
197
191
|
}
|
|
198
192
|
|
|
199
193
|
console.log("\n✨ Session step benefits:");
|