Model Context
Model Context is the foundation of intelligence in assistant-ui components. It provides configuration and capabilities to the assistant through a context provider system.
Core Concepts
System Instructions
System instructions define the base behavior and knowledge available to the assistant. These can be provided in several ways:
Tools
Tools are functions that the assistant can use to interact with your application. They can be provided through various mechanisms:
Context Provider System
The context provider system allows components to contribute to the model context. Here's a typical usage pattern:
Provider Composition
Multiple providers can be registered, and their contexts will be composed:
- System instructions are concatenated
- Tool sets are merged
- Nested readable components only contribute their context at the outermost level
Best Practices
-
System Instructions
- Keep them focused and specific to the component's purpose
- Use useAssistantInstructions for explicit instructions
- Let makeAssistantVisible handle component structure
-
Tools
- Use the tool() helper to define tool schemas and behavior
- Prefer makeAssistantTool for reusable tools
- Handle errors gracefully
- Consider async operations and loading states
- Use the built-in click tool when possible
-
Context Management
- Register providers in useEffect for proper cleanup
- Clean up providers when components unmount
- Avoid deeply nested readable components
- Consider performance implications of large HTML structures