# talk_box > Build production AI assistants with battle-tested personas, structured conversations, and built-in quality assurance ## Docs ### API Reference #### Getting Started > Core classes for building AI assistants - [ChatBot](https://rich-iannone.github.io/talk-box/reference/ChatBot.html): Main entry point for building and managing conversational AI chatbots with integrated - [Conversation](https://rich-iannone.github.io/talk-box/reference/Conversation.html): Manages sequences of messages in conversational AI interactions, primarily returned by ChatBot methods - [Message](https://rich-iannone.github.io/talk-box/reference/Message.html): Represents a single message in a conversational AI interaction, discovered through Conversation objects #### ChatBot Methods > Configuration and interaction methods for the ChatBot class - [ChatBot.model](https://rich-iannone.github.io/talk-box/reference/ChatBot.model.html) - [ChatBot.provider_model](https://rich-iannone.github.io/talk-box/reference/ChatBot.provider_model.html) - [ChatBot.preset](https://rich-iannone.github.io/talk-box/reference/ChatBot.preset.html) - [ChatBot.temperature](https://rich-iannone.github.io/talk-box/reference/ChatBot.temperature.html) - [ChatBot.max_tokens](https://rich-iannone.github.io/talk-box/reference/ChatBot.max_tokens.html) - [ChatBot.persona](https://rich-iannone.github.io/talk-box/reference/ChatBot.persona.html) - [ChatBot.system_prompt](https://rich-iannone.github.io/talk-box/reference/ChatBot.system_prompt.html) - [ChatBot.get_system_prompt](https://rich-iannone.github.io/talk-box/reference/ChatBot.get_system_prompt.html) - [ChatBot.avoid](https://rich-iannone.github.io/talk-box/reference/ChatBot.avoid.html) - [ChatBot.get_avoid_topics](https://rich-iannone.github.io/talk-box/reference/ChatBot.get_avoid_topics.html) - [ChatBot.tools](https://rich-iannone.github.io/talk-box/reference/ChatBot.tools.html) - [ChatBot.add_tools](https://rich-iannone.github.io/talk-box/reference/ChatBot.add_tools.html) - [ChatBot.verbose](https://rich-iannone.github.io/talk-box/reference/ChatBot.verbose.html) - [ChatBot.chat](https://rich-iannone.github.io/talk-box/reference/ChatBot.chat.html) - [ChatBot.start_conversation](https://rich-iannone.github.io/talk-box/reference/ChatBot.start_conversation.html) - [ChatBot.continue_conversation](https://rich-iannone.github.io/talk-box/reference/ChatBot.continue_conversation.html) - [ChatBot.show](https://rich-iannone.github.io/talk-box/reference/ChatBot.show.html) - [ChatBot.get_config_summary](https://rich-iannone.github.io/talk-box/reference/ChatBot.get_config_summary.html) - [ChatBot.get_config](https://rich-iannone.github.io/talk-box/reference/ChatBot.get_config.html) - [ChatBot.prompt_builder](https://rich-iannone.github.io/talk-box/reference/ChatBot.prompt_builder.html) - [ChatBot.structured_prompt](https://rich-iannone.github.io/talk-box/reference/ChatBot.structured_prompt.html) - [ChatBot.chain_prompts](https://rich-iannone.github.io/talk-box/reference/ChatBot.chain_prompts.html) - [ChatBot.check_llm_status](https://rich-iannone.github.io/talk-box/reference/ChatBot.check_llm_status.html) - [ChatBot.quick_start](https://rich-iannone.github.io/talk-box/reference/ChatBot.quick_start.html) - [ChatBot.create_chat_session](https://rich-iannone.github.io/talk-box/reference/ChatBot.create_chat_session.html) #### Prompt Engineering > Attention-optimized prompt construction - [PromptBuilder](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.html): Builds structured prompts using attention mechanisms and cognitive principles - [PromptBuilder.persona](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.persona.html) - [PromptBuilder.task_context](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.task_context.html) - [PromptBuilder.focus_on](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.focus_on.html) - [PromptBuilder.critical_constraint](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.critical_constraint.html) - [PromptBuilder.constraint](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.constraint.html) - [PromptBuilder.core_analysis](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.core_analysis.html) - [PromptBuilder.structured_section](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.structured_section.html) - [PromptBuilder.avoid_topics](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.avoid_topics.html) - [PromptBuilder.output_format](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.output_format.html) - [PromptBuilder.example](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.example.html) - [PromptBuilder.final_emphasis](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.final_emphasis.html) - [PromptBuilder.vocabulary](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.vocabulary.html) - [PromptBuilder.pathways](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.pathways.html) - [PromptBuilder.print](https://rich-iannone.github.io/talk-box/reference/PromptBuilder.print.html) - [Priority](https://rich-iannone.github.io/talk-box/reference/Priority.html): Control where a prompt section is placed relative to other sections - [PromptSection](https://rich-iannone.github.io/talk-box/reference/PromptSection.html): Represents a structured section of an attention-optimized prompt with priority and ordering - [VocabularyTerm](https://rich-iannone.github.io/talk-box/reference/VocabularyTerm.html): Define domain-specific terminology with multilingual support for consistent AI understanding - [architectural_analysis_prompt](https://rich-iannone.github.io/talk-box/reference/architectural_analysis_prompt.html): Create a pre-configured `PromptBuilder` for architectural analysis - [code_review_prompt](https://rich-iannone.github.io/talk-box/reference/code_review_prompt.html): Create a pre-configured `PromptBuilder` for code review - [debugging_prompt](https://rich-iannone.github.io/talk-box/reference/debugging_prompt.html): Create a pre-configured `PromptBuilder` for debugging #### Conversation Pathways > State-machine conversation flows with branching and fallbacks - [Pathways](https://rich-iannone.github.io/talk-box/reference/Pathways.html): Chainable builder for defining structured conversational pathways - [Pathways.state](https://rich-iannone.github.io/talk-box/reference/Pathways.state.html) - [Pathways.required](https://rich-iannone.github.io/talk-box/reference/Pathways.required.html) - [Pathways.optional](https://rich-iannone.github.io/talk-box/reference/Pathways.optional.html) - [Pathways.tools](https://rich-iannone.github.io/talk-box/reference/Pathways.tools.html) - [Pathways.success_condition](https://rich-iannone.github.io/talk-box/reference/Pathways.success_condition.html) - [Pathways.next_state](https://rich-iannone.github.io/talk-box/reference/Pathways.next_state.html) - [Pathways.branch_on](https://rich-iannone.github.io/talk-box/reference/Pathways.branch_on.html) - [Pathways.fallback](https://rich-iannone.github.io/talk-box/reference/Pathways.fallback.html) - [Pathways.agent](https://rich-iannone.github.io/talk-box/reference/Pathways.agent.html) - [Pathways.register_agent](https://rich-iannone.github.io/talk-box/reference/Pathways.register_agent.html) - [Pathways.get_agent](https://rich-iannone.github.io/talk-box/reference/Pathways.get_agent.html) - [Pathways.visualize](https://rich-iannone.github.io/talk-box/reference/Pathways.visualize.html) #### Conversation Methods > Methods for managing conversation history - [Conversation.add_message](https://rich-iannone.github.io/talk-box/reference/Conversation.add_message.html) - [Conversation.add_user_message](https://rich-iannone.github.io/talk-box/reference/Conversation.add_user_message.html) - [Conversation.add_assistant_message](https://rich-iannone.github.io/talk-box/reference/Conversation.add_assistant_message.html) - [Conversation.add_system_message](https://rich-iannone.github.io/talk-box/reference/Conversation.add_system_message.html) - [Conversation.get_messages](https://rich-iannone.github.io/talk-box/reference/Conversation.get_messages.html) - [Conversation.get_last_message](https://rich-iannone.github.io/talk-box/reference/Conversation.get_last_message.html) - [Conversation.clear_messages](https://rich-iannone.github.io/talk-box/reference/Conversation.clear_messages.html) - [Conversation.set_context_window](https://rich-iannone.github.io/talk-box/reference/Conversation.set_context_window.html) - [Conversation.get_context_messages](https://rich-iannone.github.io/talk-box/reference/Conversation.get_context_messages.html) - [Conversation.get_message_count](https://rich-iannone.github.io/talk-box/reference/Conversation.get_message_count.html) - [Conversation.to_dict](https://rich-iannone.github.io/talk-box/reference/Conversation.to_dict.html) - [Conversation.from_dict](https://rich-iannone.github.io/talk-box/reference/Conversation.from_dict.html) #### File Attachments > Multi-modal file handling for conversations - [Attachments](https://rich-iannone.github.io/talk-box/reference/Attachments.html): File attachment handler for Talk Box conversations - [Attachments.with_prompt](https://rich-iannone.github.io/talk-box/reference/Attachments.with_prompt.html) - [Attachments.to_chat_contents](https://rich-iannone.github.io/talk-box/reference/Attachments.to_chat_contents.html) - [Attachments.get_metadata](https://rich-iannone.github.io/talk-box/reference/Attachments.get_metadata.html) - [Attachments.summary](https://rich-iannone.github.io/talk-box/reference/Attachments.summary.html) - [AttachmentMetadata](https://rich-iannone.github.io/talk-box/reference/AttachmentMetadata.html): Metadata for individual file attachments #### Tools > Tool registration, execution, and built-in utilities - [tool](https://rich-iannone.github.io/talk-box/reference/tool.html): Register a function as a Talk Box tool - [ToolCategory](https://rich-iannone.github.io/talk-box/reference/ToolCategory.html): Categorize tools by their primary function - [ToolContext](https://rich-iannone.github.io/talk-box/reference/ToolContext.html): Provide runtime context to every tool execution - [ToolResult](https://rich-iannone.github.io/talk-box/reference/ToolResult.html): Represent the outcome of a tool execution - [get_global_registry](https://rich-iannone.github.io/talk-box/reference/get_global_registry.html): Return the process-wide `ToolRegistry` singleton - [load_tool_box](https://rich-iannone.github.io/talk-box/reference/load_tool_box.html): Register all built-in Tool Box tools in the global registry - [get_builtin_tool](https://rich-iannone.github.io/talk-box/reference/get_builtin_tool.html): Get a specific built-in tool by name - [load_selected_tools](https://rich-iannone.github.io/talk-box/reference/load_selected_tools.html): Register a subset of the built-in Tool Box tools #### Testing & Validation > Automated testing for chatbot quality assurance - [autotest_avoid_topics](https://rich-iannone.github.io/talk-box/reference/autotest_avoid_topics.html): Comprehensive avoid topics testing with automated violation detection - [autotest_pathways](https://rich-iannone.github.io/talk-box/reference/autotest_pathways.html): Automated testing for pathway adherence in chatbots - [TestResults](https://rich-iannone.github.io/talk-box/reference/TestResults.html): Enhanced test results container with rich reporting and analysis capabilities - [TestResults.to_dataframe](https://rich-iannone.github.io/talk-box/reference/TestResults.to_dataframe.html) - [TestResults.to_great_table](https://rich-iannone.github.io/talk-box/reference/TestResults.to_great_table.html) - [PathwayTestResults](https://rich-iannone.github.io/talk-box/reference/PathwayTestResults.html): Aggregate and summarize the outcomes of a `autotest_pathways()` run - [ToolEnabledConversation](https://rich-iannone.github.io/talk-box/reference/ToolEnabledConversation.html): Extend `Conversation` with automatic tool invocation support - [create_tool_conversation](https://rich-iannone.github.io/talk-box/reference/create_tool_conversation.html): Create a `ToolEnabledConversation` with default settings #### Guardrails > Composable input/output validation for chatbot messages - [Guard](https://rich-iannone.github.io/talk-box/reference/Guard.html): A configured guardrail ready to be attached to a ChatBot - [Guard.check](https://rich-iannone.github.io/talk-box/reference/Guard.check.html) - [GuardAction](https://rich-iannone.github.io/talk-box/reference/GuardAction.html): The outcome of a guard check - [GuardPhase](https://rich-iannone.github.io/talk-box/reference/GuardPhase.html): When the guard runs in the message lifecycle - [GuardResult](https://rich-iannone.github.io/talk-box/reference/GuardResult.html): The result of evaluating a guardrail against a message - [GuardPipeline](https://rich-iannone.github.io/talk-box/reference/GuardPipeline.html): Ordered pipeline of guards that processes messages sequentially - [GuardPipeline.add](https://rich-iannone.github.io/talk-box/reference/GuardPipeline.add.html) - [GuardPipeline.run](https://rich-iannone.github.io/talk-box/reference/GuardPipeline.run.html) - [GuardPipelineResult](https://rich-iannone.github.io/talk-box/reference/GuardPipelineResult.html): Result of running a message through the full guard pipeline - [guardrail](https://rich-iannone.github.io/talk-box/reference/guardrail.html): Decorator that turns a function into a composable guardrail - [ChatBot.guardrail](https://rich-iannone.github.io/talk-box/reference/ChatBot.guardrail.html) - [ChatBot.guard_stats](https://rich-iannone.github.io/talk-box/reference/ChatBot.guard_stats.html) - [no_pii](https://rich-iannone.github.io/talk-box/reference/no_pii.html): Guard that detects and handles Personally Identifiable Information - [max_response_length](https://rich-iannone.github.io/talk-box/reference/max_response_length.html): Guard that enforces a maximum response length - [max_input_length](https://rich-iannone.github.io/talk-box/reference/max_input_length.html): Guard that rejects user messages exceeding a character limit - [tone_check](https://rich-iannone.github.io/talk-box/reference/tone_check.html): Guard that flags responses not matching the expected tone - [disclaimer_required](https://rich-iannone.github.io/talk-box/reference/disclaimer_required.html): Guard that ensures a required disclaimer appears in the response - [must_cite_sources](https://rich-iannone.github.io/talk-box/reference/must_cite_sources.html): Guard that requires responses to contain source citations - [keyword_block](https://rich-iannone.github.io/talk-box/reference/keyword_block.html): Guard that blocks messages containing any of the specified keywords #### Evaluation > Prompt evaluation, scoring, and regression detection - [eval.HAS_PANDAS](https://rich-iannone.github.io/talk-box/reference/eval.HAS_PANDAS.html) - [eval.HAS_GREAT_TABLES](https://rich-iannone.github.io/talk-box/reference/eval.HAS_GREAT_TABLES.html) - [eval.DEFAULT_DIMENSIONS](https://rich-iannone.github.io/talk-box/reference/eval.DEFAULT_DIMENSIONS.html) - [eval.ScorerFn](https://rich-iannone.github.io/talk-box/reference/eval.ScorerFn.html) - [eval_regression](https://rich-iannone.github.io/talk-box/reference/eval_regression.html): Compare two bot versions and flag regressions - [eval_model_update](https://rich-iannone.github.io/talk-box/reference/eval_model_update.html): Compare persona behavior across two model versions - [eval_suite](https://rich-iannone.github.io/talk-box/reference/eval_suite.html): Evaluate a persona across multiple models (model comparison matrix) - [EvalCase](https://rich-iannone.github.io/talk-box/reference/EvalCase.html): A single evaluation test case - [EvalDimension](https://rich-iannone.github.io/talk-box/reference/EvalDimension.html): Scoring dimensions for evaluation - [EvalResults](https://rich-iannone.github.io/talk-box/reference/EvalResults.html): Collection of evaluation results with reporting capabilities - [EvalResults.summary](https://rich-iannone.github.io/talk-box/reference/EvalResults.summary.html) - [EvalResults.passed](https://rich-iannone.github.io/talk-box/reference/EvalResults.passed.html) - [EvalResults.regressions](https://rich-iannone.github.io/talk-box/reference/EvalResults.regressions.html) - [EvalResults.scores_by_variant](https://rich-iannone.github.io/talk-box/reference/EvalResults.scores_by_variant.html) - [EvalResults.to_dataframe](https://rich-iannone.github.io/talk-box/reference/EvalResults.to_dataframe.html) - [EvalResults.to_great_table](https://rich-iannone.github.io/talk-box/reference/EvalResults.to_great_table.html) - [EvalResults.to_scorecard](https://rich-iannone.github.io/talk-box/reference/EvalResults.to_scorecard.html) - [EvalResult](https://rich-iannone.github.io/talk-box/reference/EvalResult.html): Results for a single query evaluated against a single bot variant - [EvalScore](https://rich-iannone.github.io/talk-box/reference/EvalScore.html): A score on a single dimension for a single response - [scorecard_table](https://rich-iannone.github.io/talk-box/reference/scorecard_table.html): Render a scorecard as a polished Great Table - [sweep_table](https://rich-iannone.github.io/talk-box/reference/sweep_table.html): Render an eval sweep summary as a polished Great Table #### Model Profiles > Model capability registry for routing, eval, and prompt optimization. - [ModelProfile](https://rich-iannone.github.io/talk-box/reference/ModelProfile.html): Capability profile for a specific LLM model - [ModelProfile.key](https://rich-iannone.github.io/talk-box/reference/ModelProfile.key.html) - [ModelProfile.name](https://rich-iannone.github.io/talk-box/reference/ModelProfile.name.html) - [ModelProfile.supports](https://rich-iannone.github.io/talk-box/reference/ModelProfile.supports.html) - [CostTier](https://rich-iannone.github.io/talk-box/reference/CostTier.html): Relative cost tier for a model - [get_model_profile](https://rich-iannone.github.io/talk-box/reference/get_model_profile.html): Look up a model's capability profile - [list_models](https://rich-iannone.github.io/talk-box/reference/list_models.html): List known model profiles, optionally filtered - [register_model](https://rich-iannone.github.io/talk-box/reference/register_model.html): Register a custom model profile - [model_profiles_table](https://rich-iannone.github.io/talk-box/reference/model_profiles_table.html): Render all known model profiles as a Great Table #### Ollama Detection > Auto-detect local Ollama instances and register available models. - [OllamaStatus](https://rich-iannone.github.io/talk-box/reference/OllamaStatus.html): Status of the local Ollama instance - [detect_ollama](https://rich-iannone.github.io/talk-box/reference/detect_ollama.html): Detect whether a local Ollama instance is running - [list_ollama_models](https://rich-iannone.github.io/talk-box/reference/list_ollama_models.html): Query Ollama for available models and return their profiles - [sync_ollama_models](https://rich-iannone.github.io/talk-box/reference/sync_ollama_models.html): Detect Ollama models and register them in the profile registry #### Context Window Management > Token-aware fitting of prompts and messages within model context limits. - [ContextWindow](https://rich-iannone.github.io/talk-box/reference/ContextWindow.html): Manages fitting content into a model's token budget - [ContextWindow.fit_messages](https://rich-iannone.github.io/talk-box/reference/ContextWindow.fit_messages.html) - [ContextWindow.fit_prompt](https://rich-iannone.github.io/talk-box/reference/ContextWindow.fit_prompt.html) - [ContextWindow.count_tokens](https://rich-iannone.github.io/talk-box/reference/ContextWindow.count_tokens.html) - [ContextWindow.fits](https://rich-iannone.github.io/talk-box/reference/ContextWindow.fits.html) - [ContextWindow.overflow](https://rich-iannone.github.io/talk-box/reference/ContextWindow.overflow.html) - [FitResult](https://rich-iannone.github.io/talk-box/reference/FitResult.html): Result of fitting content into a context window budget - [PromptFitResult](https://rich-iannone.github.io/talk-box/reference/PromptFitResult.html): Result of fitting a PromptBuilder output into a token budget - [FitStrategy](https://rich-iannone.github.io/talk-box/reference/FitStrategy.html): Strategy for fitting content into a token budget - [estimate_tokens](https://rich-iannone.github.io/talk-box/reference/estimate_tokens.html): Estimate the token count for a string using a character-based heuristic #### Prompt Optimization > Reduce prompt token usage without losing semantic meaning. - [optimize_prompt](https://rich-iannone.github.io/talk-box/reference/optimize_prompt.html): Optimize a prompt for reduced token usage - [OptimizationLevel](https://rich-iannone.github.io/talk-box/reference/OptimizationLevel.html): How aggressively to compress prompts - [OptimizeResult](https://rich-iannone.github.io/talk-box/reference/OptimizeResult.html): Result of prompt optimization #### Hybrid Routing > Route tasks between local and cloud models based on complexity and cost. - [route](https://rich-iannone.github.io/talk-box/reference/route.html): Route a task to the best available model - [classify_complexity](https://rich-iannone.github.io/talk-box/reference/classify_complexity.html): Estimate the complexity of a task from its prompt text - [Router](https://rich-iannone.github.io/talk-box/reference/Router.html): Configurable model router for hybrid local/cloud routing - [Router.route](https://rich-iannone.github.io/talk-box/reference/Router.route.html) - [RoutingStrategy](https://rich-iannone.github.io/talk-box/reference/RoutingStrategy.html): Strategy that governs how the router selects models - [RoutingResult](https://rich-iannone.github.io/talk-box/reference/RoutingResult.html): Result of routing a task to a model - [TaskComplexity](https://rich-iannone.github.io/talk-box/reference/TaskComplexity.html): Estimated complexity of a task or prompt #### Consensus Mode > Query multiple models, compare outputs, and resolve disagreements. - [consensus](https://rich-iannone.github.io/talk-box/reference/consensus.html): Determine consensus across multiple model responses - [find_disagreements](https://rich-iannone.github.io/talk-box/reference/find_disagreements.html): Detect disagreements between model responses - [ConsensusStrategy](https://rich-iannone.github.io/talk-box/reference/ConsensusStrategy.html): Strategy for resolving consensus across multiple model responses - [ConsensusResult](https://rich-iannone.github.io/talk-box/reference/ConsensusResult.html): Result of running consensus across multiple model responses - [ModelResponse](https://rich-iannone.github.io/talk-box/reference/ModelResponse.html): A single model's response to a prompt - [Disagreement](https://rich-iannone.github.io/talk-box/reference/Disagreement.html): A detected disagreement between model responses #### Cascade Consensus > Start with one model, fan out to additional models when confidence is low. - [cascade.Responder](https://rich-iannone.github.io/talk-box/reference/cascade.Responder.html) - [estimate_confidence](https://rich-iannone.github.io/talk-box/reference/estimate_confidence.html): Estimate confidence in a model response based on textual signals - [CascadeResult](https://rich-iannone.github.io/talk-box/reference/CascadeResult.html): Result of a cascade consensus execution - [CascadeRound](https://rich-iannone.github.io/talk-box/reference/CascadeRound.html): Record of a single round in a cascade execution #### Memory Tiers > Working, short-term, and long-term memory for conversations. - [MemoryStore](https://rich-iannone.github.io/talk-box/reference/MemoryStore.html): Unified memory interface across all three tiers - [MemoryStore.remember](https://rich-iannone.github.io/talk-box/reference/MemoryStore.remember.html) - [MemoryStore.recall](https://rich-iannone.github.io/talk-box/reference/MemoryStore.recall.html) - [MemoryStore.forget](https://rich-iannone.github.io/talk-box/reference/MemoryStore.forget.html) - [MemoryStore.search](https://rich-iannone.github.io/talk-box/reference/MemoryStore.search.html) - [WorkingMemory](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.html): In-conversation key-value memory, lost when the conversation ends - [ShortTermMemory](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.html): Recent session memory with TTL and max-entry eviction - [LongTermMemory](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.html): Persistent memory backed by SQLite - [MemoryEntry](https://rich-iannone.github.io/talk-box/reference/MemoryEntry.html): A single memory entry across any tier - [MemoryTier](https://rich-iannone.github.io/talk-box/reference/MemoryTier.html): Which memory tier an entry belongs to #### WorkingMemory Methods > Methods for the WorkingMemory class - [WorkingMemory.set](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.set.html) - [WorkingMemory.get](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.get.html) - [WorkingMemory.has](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.has.html) - [WorkingMemory.delete](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.delete.html) - [WorkingMemory.keys](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.keys.html) - [WorkingMemory.entries](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.entries.html) - [WorkingMemory.search](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.search.html) - [WorkingMemory.clear](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.clear.html) - [WorkingMemory.__len__](https://rich-iannone.github.io/talk-box/reference/WorkingMemory.__len__.html) #### ShortTermMemory Methods > Methods for the ShortTermMemory class - [ShortTermMemory.set](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.set.html) - [ShortTermMemory.get](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.get.html) - [ShortTermMemory.has](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.has.html) - [ShortTermMemory.delete](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.delete.html) - [ShortTermMemory.keys](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.keys.html) - [ShortTermMemory.entries](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.entries.html) - [ShortTermMemory.search](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.search.html) - [ShortTermMemory.clear](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.clear.html) - [ShortTermMemory.__len__](https://rich-iannone.github.io/talk-box/reference/ShortTermMemory.__len__.html) #### LongTermMemory Methods > Methods for the LongTermMemory class - [LongTermMemory.set](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.set.html) - [LongTermMemory.get](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.get.html) - [LongTermMemory.has](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.has.html) - [LongTermMemory.delete](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.delete.html) - [LongTermMemory.keys](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.keys.html) - [LongTermMemory.entries](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.entries.html) - [LongTermMemory.search](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.search.html) - [LongTermMemory.clear](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.clear.html) - [LongTermMemory.close](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.close.html) - [LongTermMemory.__len__](https://rich-iannone.github.io/talk-box/reference/LongTermMemory.__len__.html) #### Agent > Self-contained AI agent bundling persona, memory, tools, and conversation history. - [Agent](https://rich-iannone.github.io/talk-box/reference/Agent.html): A self-contained AI agent bundling persona, memory, and conversation history - [Agent.from_persona](https://rich-iannone.github.io/talk-box/reference/Agent.from_persona.html) - [Agent.respond](https://rich-iannone.github.io/talk-box/reference/Agent.respond.html) - [Agent.remember](https://rich-iannone.github.io/talk-box/reference/Agent.remember.html) - [Agent.recall](https://rich-iannone.github.io/talk-box/reference/Agent.recall.html) - [Agent.retention](https://rich-iannone.github.io/talk-box/reference/Agent.retention.html) - [Agent.conversation](https://rich-iannone.github.io/talk-box/reference/Agent.conversation.html) - [Agent.reset_conversation](https://rich-iannone.github.io/talk-box/reference/Agent.reset_conversation.html) #### Agent Methods > Methods for the Agent class - [Agent.__post_init__](https://rich-iannone.github.io/talk-box/reference/Agent.__post_init__.html) - [Agent.from_persona](https://rich-iannone.github.io/talk-box/reference/Agent.from_persona.html) - [Agent.respond](https://rich-iannone.github.io/talk-box/reference/Agent.respond.html) - [Agent.remember](https://rich-iannone.github.io/talk-box/reference/Agent.remember.html) - [Agent.recall](https://rich-iannone.github.io/talk-box/reference/Agent.recall.html) - [Agent.reset_conversation](https://rich-iannone.github.io/talk-box/reference/Agent.reset_conversation.html) #### Human-in-the-Loop > Pause agent workflows for human review, approval, or revision. - [human_review](https://rich-iannone.github.io/talk-box/reference/human_review.html): Create a human-in-the-loop review request - [approve](https://rich-iannone.github.io/talk-box/reference/approve.html): Approve a pending review - [reject](https://rich-iannone.github.io/talk-box/reference/reject.html): Reject a pending review - [revise](https://rich-iannone.github.io/talk-box/reference/revise.html): Revise the content and approve the review - [HumanReview](https://rich-iannone.github.io/talk-box/reference/HumanReview.html): A request for human review before proceeding - [HumanReview.status](https://rich-iannone.github.io/talk-box/reference/HumanReview.status.html) - [HumanReview.decision](https://rich-iannone.github.io/talk-box/reference/HumanReview.decision.html) - [HumanReview.is_pending](https://rich-iannone.github.io/talk-box/reference/HumanReview.is_pending.html) - [HumanReview.is_resolved](https://rich-iannone.github.io/talk-box/reference/HumanReview.is_resolved.html) - [HumanReview.is_approved](https://rich-iannone.github.io/talk-box/reference/HumanReview.is_approved.html) - [HumanReview.final_content](https://rich-iannone.github.io/talk-box/reference/HumanReview.final_content.html) - [ReviewDecision](https://rich-iannone.github.io/talk-box/reference/ReviewDecision.html): A human's decision on a review request - [ReviewStatus](https://rich-iannone.github.io/talk-box/reference/ReviewStatus.html): Status of a human-in-the-loop review - [ReviewQueue](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.html): Collects and tracks multiple review requests #### ReviewQueue Methods > Methods for the ReviewQueue class - [ReviewQueue.add](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.add.html) - [ReviewQueue.pending](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.pending.html) - [ReviewQueue.resolved](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.resolved.html) - [ReviewQueue.by_agent](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.by_agent.html) - [ReviewQueue.by_status](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.by_status.html) - [ReviewQueue.__len__](https://rich-iannone.github.io/talk-box/reference/ReviewQueue.__len__.html) #### Skill System > Loadable capability packs for agents. - [SkillDefinition](https://rich-iannone.github.io/talk-box/reference/SkillDefinition.html): A loadable skill pack that adds capabilities to an agent - [create_skill](https://rich-iannone.github.io/talk-box/reference/create_skill.html): Create a skill definition programmatically - [get_skill](https://rich-iannone.github.io/talk-box/reference/get_skill.html): Get a skill definition by name - [list_skills](https://rich-iannone.github.io/talk-box/reference/list_skills.html): List all available skill names - [register_skill](https://rich-iannone.github.io/talk-box/reference/register_skill.html): Register a skill definition in the global registry - [load_skill](https://rich-iannone.github.io/talk-box/reference/load_skill.html): Load a skill from an arbitrary YAML file - [skill_categories](https://rich-iannone.github.io/talk-box/reference/skill_categories.html): Get all skills grouped by category #### Structured Outputs > Extract typed data from LLM responses using Pydantic models. - [ExtractResult](https://rich-iannone.github.io/talk-box/reference/ExtractResult.html): Result of extracting structured data from an LLM response - [extract](https://rich-iannone.github.io/talk-box/reference/extract.html): Extract structured data from an LLM response - [schema_to_dict](https://rich-iannone.github.io/talk-box/reference/schema_to_dict.html): Convert a Pydantic model class to a JSON Schema dictionary #### Persona Traits > Composable modifiers that add constraints, expertise, and tools to any persona. - [TraitDefinition](https://rich-iannone.github.io/talk-box/reference/TraitDefinition.html): A composable modifier that can be applied to any persona - [apply_trait](https://rich-iannone.github.io/talk-box/reference/apply_trait.html): Apply a trait to a persona, returning a new modified persona - [create_trait](https://rich-iannone.github.io/talk-box/reference/create_trait.html): Create a trait definition programmatically - [get_trait](https://rich-iannone.github.io/talk-box/reference/get_trait.html): Get a registered trait by name - [list_traits](https://rich-iannone.github.io/talk-box/reference/list_traits.html): List all available trait names - [register_trait](https://rich-iannone.github.io/talk-box/reference/register_trait.html): Register a trait so it can be retrieved with ``get_trait()`` - [load_trait](https://rich-iannone.github.io/talk-box/reference/load_trait.html): Load a trait from an arbitrary YAML file path - [trait_categories](https://rich-iannone.github.io/talk-box/reference/trait_categories.html): Get all traits grouped by category #### MCP Bridge > Bidirectional bridge between Talk Box tools and the Model Context Protocol. - [MCPToolInfo](https://rich-iannone.github.io/talk-box/reference/MCPToolInfo.html): Description of an MCP tool discovered from a remote server - [MCPBridgeServer](https://rich-iannone.github.io/talk-box/reference/MCPBridgeServer.html): An MCP server that exposes Talk Box tools over the MCP protocol - [MCPBridgeServer.tool_names](https://rich-iannone.github.io/talk-box/reference/MCPBridgeServer.tool_names.html) - [MCPBridgeServer.build](https://rich-iannone.github.io/talk-box/reference/MCPBridgeServer.build.html) - [MCPBridgeServer.run](https://rich-iannone.github.io/talk-box/reference/MCPBridgeServer.run.html) - [tools_to_mcp_server](https://rich-iannone.github.io/talk-box/reference/tools_to_mcp_server.html): Create an ``MCPBridgeServer`` from a list of Talk Box tools - [mcp_tool_to_talk_box](https://rich-iannone.github.io/talk-box/reference/mcp_tool_to_talk_box.html): Convert an ``MCPToolInfo`` into a ``TalkBoxTool`` - [list_mcp_tools](https://rich-iannone.github.io/talk-box/reference/list_mcp_tools.html): Convert raw MCP tool dicts into ``MCPToolInfo`` objects - [discover_mcp_tools](https://rich-iannone.github.io/talk-box/reference/discover_mcp_tools.html): Discover tools from a live MCP client session #### Knowledge Graph > SQLite-backed knowledge graph with nodes, edges, traversal, search, and embedding support. - [KnowledgeGraph](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.html): SQLite-backed knowledge graph with nodes, edges, and optional embeddings - [KnowledgeGraph.add_node](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.add_node.html) - [KnowledgeGraph.get_node](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.get_node.html) - [KnowledgeGraph.delete_node](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.delete_node.html) - [KnowledgeGraph.list_nodes](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.list_nodes.html) - [KnowledgeGraph.node_count](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.node_count.html) - [KnowledgeGraph.add_edge](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.add_edge.html) - [KnowledgeGraph.get_edges](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.get_edges.html) - [KnowledgeGraph.delete_edge](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.delete_edge.html) - [KnowledgeGraph.edge_count](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.edge_count.html) - [KnowledgeGraph.neighbors](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.neighbors.html) - [KnowledgeGraph.search](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.search.html) - [KnowledgeGraph.stats](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.stats.html) - [KnowledgeGraph.health](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.health.html) - [KnowledgeGraph.pending_questions](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.pending_questions.html) - [KnowledgeGraph.answer_question](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.answer_question.html) - [KnowledgeGraph.dismiss_question](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.dismiss_question.html) - [KnowledgeGraph.question_stats](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.question_stats.html) - [KnowledgeGraph.clear](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.clear.html) - [KnowledgeGraph.close](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.close.html) - [Node](https://rich-iannone.github.io/talk-box/reference/Node.html): A node in the knowledge graph - [Edge](https://rich-iannone.github.io/talk-box/reference/Edge.html): A directed relationship between two nodes - [NodeType](https://rich-iannone.github.io/talk-box/reference/NodeType.html): Type of a knowledge graph node - [cosine_similarity](https://rich-iannone.github.io/talk-box/reference/cosine_similarity.html): Compute cosine similarity between two vectors #### KnowledgeGraph Methods > Methods for the KnowledgeGraph class - [KnowledgeGraph.add_node](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.add_node.html) - [KnowledgeGraph.get_node](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.get_node.html) - [KnowledgeGraph.delete_node](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.delete_node.html) - [KnowledgeGraph.list_nodes](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.list_nodes.html) - [KnowledgeGraph.node_count](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.node_count.html) - [KnowledgeGraph.add_edge](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.add_edge.html) - [KnowledgeGraph.get_edges](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.get_edges.html) - [KnowledgeGraph.delete_edge](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.delete_edge.html) - [KnowledgeGraph.edge_count](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.edge_count.html) - [KnowledgeGraph.neighbors](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.neighbors.html) - [KnowledgeGraph.search](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.search.html) - [KnowledgeGraph.stats](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.stats.html) - [KnowledgeGraph.health](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.health.html) - [KnowledgeGraph.pending_questions](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.pending_questions.html) - [KnowledgeGraph.answer_question](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.answer_question.html) - [KnowledgeGraph.dismiss_question](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.dismiss_question.html) - [KnowledgeGraph.question_stats](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.question_stats.html) - [KnowledgeGraph.clear](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.clear.html) - [KnowledgeGraph.close](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.close.html) - [KnowledgeGraph.__repr__](https://rich-iannone.github.io/talk-box/reference/KnowledgeGraph.__repr__.html) #### KG Visualization > Render knowledge graphs as Mermaid diagrams or interactive HTML pages. - [VisNode](https://rich-iannone.github.io/talk-box/reference/VisNode.html): A node prepared for visualization - [VisEdge](https://rich-iannone.github.io/talk-box/reference/VisEdge.html): An edge prepared for visualization - [VisGraph](https://rich-iannone.github.io/talk-box/reference/VisGraph.html): A complete graph prepared for visualization - [VisGraph.node_count](https://rich-iannone.github.io/talk-box/reference/VisGraph.node_count.html) - [VisGraph.edge_count](https://rich-iannone.github.io/talk-box/reference/VisGraph.edge_count.html) - [VisGraph.to_dict](https://rich-iannone.github.io/talk-box/reference/VisGraph.to_dict.html) - [prepare_vis_graph](https://rich-iannone.github.io/talk-box/reference/prepare_vis_graph.html): Prepare a knowledge graph for visualization - [to_mermaid](https://rich-iannone.github.io/talk-box/reference/to_mermaid.html): Render a knowledge graph as a Mermaid diagram string - [to_html](https://rich-iannone.github.io/talk-box/reference/to_html.html): Render a knowledge graph as an interactive HTML page - [visualize](https://rich-iannone.github.io/talk-box/reference/visualize.html): Render a knowledge graph and open it in the browser #### Connectors > Ingest documents from files, directories, and Apple Notes into the knowledge graph. - [Document](https://rich-iannone.github.io/talk-box/reference/Document.html): A document to ingest into the knowledge graph - [Connector](https://rich-iannone.github.io/talk-box/reference/Connector.html): Base class for knowledge graph connectors - [Connector.scan](https://rich-iannone.github.io/talk-box/reference/Connector.scan.html) - [MarkdownDir](https://rich-iannone.github.io/talk-box/reference/MarkdownDir.html): Ingest Markdown files from a directory - [MarkdownDir.scan](https://rich-iannone.github.io/talk-box/reference/MarkdownDir.scan.html) - [DirectoryConnector](https://rich-iannone.github.io/talk-box/reference/DirectoryConnector.html): Ingest text-based files from a directory by extension - [DirectoryConnector.scan](https://rich-iannone.github.io/talk-box/reference/DirectoryConnector.scan.html) - [AppleNotes](https://rich-iannone.github.io/talk-box/reference/AppleNotes.html): Ingest notes from macOS Apple Notes (read-only) - [AppleNotes.scan](https://rich-iannone.github.io/talk-box/reference/AppleNotes.scan.html) - [SyncResult](https://rich-iannone.github.io/talk-box/reference/SyncResult.html): Result of a connector sync operation - [SyncResult.total](https://rich-iannone.github.io/talk-box/reference/SyncResult.total.html) - [connector](https://rich-iannone.github.io/talk-box/reference/connector.html): Create a connector from a generator function - [sync](https://rich-iannone.github.io/talk-box/reference/sync.html): Sync documents from connectors into a knowledge graph #### Enrichment > Extract entities, topics, relationships, and summaries from documents in the knowledge graph. - [ExtractedEntity](https://rich-iannone.github.io/talk-box/reference/ExtractedEntity.html): An entity extracted from a document - [ExtractedRelationship](https://rich-iannone.github.io/talk-box/reference/ExtractedRelationship.html): A relationship extracted between two entities - [EnrichmentResult](https://rich-iannone.github.io/talk-box/reference/EnrichmentResult.html): Complete enrichment output for a single document - [EnrichmentResult.entity_names](https://rich-iannone.github.io/talk-box/reference/EnrichmentResult.entity_names.html) - [EnrichmentResult.entity_count](https://rich-iannone.github.io/talk-box/reference/EnrichmentResult.entity_count.html) - [EnrichmentResult.topic_count](https://rich-iannone.github.io/talk-box/reference/EnrichmentResult.topic_count.html) - [EnrichmentResult.relationship_count](https://rich-iannone.github.io/talk-box/reference/EnrichmentResult.relationship_count.html) - [EnrichmentPipeline](https://rich-iannone.github.io/talk-box/reference/EnrichmentPipeline.html): Configurable pipeline for enriching documents in a knowledge graph - [EnrichmentPipeline.run](https://rich-iannone.github.io/talk-box/reference/EnrichmentPipeline.run.html) - [PipelineResult](https://rich-iannone.github.io/talk-box/reference/PipelineResult.html): Result of running the enrichment pipeline - [PipelineResult.total](https://rich-iannone.github.io/talk-box/reference/PipelineResult.total.html) - [EnrichmentConfig](https://rich-iannone.github.io/talk-box/reference/EnrichmentConfig.html): Configuration for how enrichment results are applied - [regex_enricher](https://rich-iannone.github.io/talk-box/reference/regex_enricher.html): Simple regex-based enrichment (no LLM required) #### Compliance Export > Export conversation transcripts as auditable JSON or HTML files. - [export_json](https://rich-iannone.github.io/talk-box/reference/export_json.html): Export a conversation capture as an auditable JSON file - [export_html](https://rich-iannone.github.io/talk-box/reference/export_html.html): Export a conversation capture as a human-readable HTML transcript #### CLI > Command-line interface for managing and testing AI assistants. - [cli.main](https://rich-iannone.github.io/talk-box/reference/cli.main.html) - [cli.info](https://rich-iannone.github.io/talk-box/reference/cli.info.html) - [cli.personas](https://rich-iannone.github.io/talk-box/reference/cli.personas.html) - [cli.models](https://rich-iannone.github.io/talk-box/reference/cli.models.html) - [cli.test_cmd](https://rich-iannone.github.io/talk-box/reference/cli.test_cmd.html) #### Configuration > Layered configuration system with profiles, environment overrides, and CLI flags. - [TalkBoxConfig](https://rich-iannone.github.io/talk-box/reference/TalkBoxConfig.html): Complete Talk Box configuration - [TalkBoxConfig.resolve](https://rich-iannone.github.io/talk-box/reference/TalkBoxConfig.resolve.html) - [TalkBoxConfig.to_dict](https://rich-iannone.github.io/talk-box/reference/TalkBoxConfig.to_dict.html) - [TalkBoxConfig.validate_model](https://rich-iannone.github.io/talk-box/reference/TalkBoxConfig.validate_model.html) - [TalkBoxConfig.is_cloud_model](https://rich-iannone.github.io/talk-box/reference/TalkBoxConfig.is_cloud_model.html) - [ProfileConfig](https://rich-iannone.github.io/talk-box/reference/ProfileConfig.html): A named profile bundling model + persona + settings - [ProfileConfig.to_dict](https://rich-iannone.github.io/talk-box/reference/ProfileConfig.to_dict.html) - [ResolvedConfig](https://rich-iannone.github.io/talk-box/reference/ResolvedConfig.html): The final resolved configuration after all layers are merged - [TUIMode](https://rich-iannone.github.io/talk-box/reference/TUIMode.html): TUI display mode - [load_config](https://rich-iannone.github.io/talk-box/reference/load_config.html): Load and merge the full config stack - [save_config](https://rich-iannone.github.io/talk-box/reference/save_config.html): Write a config to a YAML file - [load_profile](https://rich-iannone.github.io/talk-box/reference/load_profile.html): Load a named profile from the profiles directory - [save_profile](https://rich-iannone.github.io/talk-box/reference/save_profile.html): Save a named profile to the profiles directory - [list_profiles](https://rich-iannone.github.io/talk-box/reference/list_profiles.html): List available profile names from the profiles directory