void registerTool(std::shared_ptr< Tool > tool)
Register a tool.
const String & getSystemPrompt() const
Get the system prompt.
std::vector< std::shared_ptr< Tool > > getTools() const
Get all tools.
void setSystemPrompt(const String &system_prompt)
Set the system prompt.
std::shared_ptr< Memory > getMemory() const
Get the memory.
std::shared_ptr< LLMInterface > getLLM() const
Get the LLM.
Task< LLMResponse > chatWithTools(const String &user_message)
Run a chat completion with tools using coroutines.
Task< LLMResponse > chat(const String &user_message)
Run a chat completion with the current context using coroutines.
void setLLM(std::shared_ptr< LLMInterface > llm)
Set the LLM to use.
std::shared_ptr< Tool > getTool(const String &name) const
Get a tool by name.
Task< ToolResult > executeTool(const String &name, const JsonObject ¶ms)
Execute a tool by name using coroutines.
void addMessage(const Message &message)
Add a message to the conversation history.
std::vector< Message > getMessages() const
Get all messages in the conversation history.
AsyncGenerator< String > streamChat(const String &user_message)
Stream chat results with AsyncGenerator.