# Mojentic v1.2.0 - Table of Contents An LLM integration framework for Elixir ## Pages - Use Cases - [Structured Output](structured_output.md) - [Chat Sessions](chat_sessions.md) - Examples - [Example: File Tools](file_tools.md) - [Example: Task Management](task_management.md) - [Example: Web Search](web_search.md) - Guides - [Introduction](introduction.md) - [Getting Started](getting_started.md) - [Broker Guide](broker.md) - [Tool Usage](tool_usage.md) - [Streaming](streaming.md) - [Embeddings](embeddings.md) - [OpenAI Model Registry](openai_model_registry.md) - Project Info - [Overview](readme.md) - [AI Assistant Guidelines](agents.md) ## Modules - [Mojentic.Agents.AsyncAggregatorAgent](Mojentic.Agents.AsyncAggregatorAgent.md): GenServer-based agent that aggregates events by correlation ID. - [Mojentic.Agents.AsyncLLMAgent](Mojentic.Agents.AsyncLLMAgent.md): Asynchronous agent that uses an LLM to generate responses. - [Mojentic.Agents.BaseAgent](Mojentic.Agents.BaseAgent.md): Behaviour for synchronous agents that process events. - [Mojentic.Agents.BaseAsyncAgent](Mojentic.Agents.BaseAsyncAgent.md): Behaviour for asynchronous agents that process events. - [Mojentic.Agents.BaseLLMAgent](Mojentic.Agents.BaseLLMAgent.md): A basic LLM agent with behaviour, tools, and broker. - [Mojentic.Agents.BaseLLMAgentWithMemory](Mojentic.Agents.BaseLLMAgentWithMemory.md): An LLM agent that uses SharedWorkingMemory to remember information. - [Mojentic.Agents.IterativeProblemSolver](Mojentic.Agents.IterativeProblemSolver.md): An agent that iteratively attempts to solve a problem using available tools. - [Mojentic.Agents.SimpleRecursiveAgent](Mojentic.Agents.SimpleRecursiveAgent.md): A simple recursive agent that uses events and async to solve problems. - [Mojentic.Agents.SimpleRecursiveAgent.EventEmitter](Mojentic.Agents.SimpleRecursiveAgent.EventEmitter.md): A GenServer-based event emitter that allows subscribing to and emitting events. - [Mojentic.Agents.SimpleRecursiveAgent.GoalAchievedEvent](Mojentic.Agents.SimpleRecursiveAgent.GoalAchievedEvent.md): Event triggered when a problem is solved. - [Mojentic.Agents.SimpleRecursiveAgent.GoalFailedEvent](Mojentic.Agents.SimpleRecursiveAgent.GoalFailedEvent.md): Event triggered when a problem cannot be solved. - [Mojentic.Agents.SimpleRecursiveAgent.GoalState](Mojentic.Agents.SimpleRecursiveAgent.GoalState.md): Represents the state of a problem-solving process. - [Mojentic.Agents.SimpleRecursiveAgent.GoalSubmittedEvent](Mojentic.Agents.SimpleRecursiveAgent.GoalSubmittedEvent.md): Event triggered when a problem is submitted for solving. - [Mojentic.Agents.SimpleRecursiveAgent.IterationCompletedEvent](Mojentic.Agents.SimpleRecursiveAgent.IterationCompletedEvent.md): Event triggered when an iteration of the problem-solving process is completed. - [Mojentic.Agents.SimpleRecursiveAgent.TimeoutEvent](Mojentic.Agents.SimpleRecursiveAgent.TimeoutEvent.md): Event triggered when the problem-solving process times out. - [Mojentic.AsyncDispatcher](Mojentic.AsyncDispatcher.md): GenServer-based async event dispatcher for the agent system. - [Mojentic.Context.SharedWorkingMemory](Mojentic.Context.SharedWorkingMemory.md): A shared working memory context for agents. - [Mojentic.Event](Mojentic.Event.md): Base event structure for agent communication. - [Mojentic.Events.TerminateEvent](Mojentic.Events.TerminateEvent.md): Special event that signals the dispatcher to stop processing. - [Mojentic.Examples.React.DecisioningAgent](Mojentic.Examples.React.DecisioningAgent.md): Decision-making agent for the ReAct pattern. - [Mojentic.Examples.React.Events](Mojentic.Examples.React.Events.md): Event definitions for the ReAct pattern. - [Mojentic.Examples.React.Events.FailureOccurred](Mojentic.Examples.React.Events.FailureOccurred.md): Event to signal a failure in the ReAct loop. - [Mojentic.Examples.React.Events.FinishAndSummarize](Mojentic.Examples.React.Events.FinishAndSummarize.md): Event to trigger the completion and summarization phase. - [Mojentic.Examples.React.Events.InvokeDecisioning](Mojentic.Examples.React.Events.InvokeDecisioning.md): Event to trigger the decision-making phase. - [Mojentic.Examples.React.Events.InvokeThinking](Mojentic.Examples.React.Events.InvokeThinking.md): Event to trigger the thinking/planning phase. - [Mojentic.Examples.React.Events.InvokeToolCall](Mojentic.Examples.React.Events.InvokeToolCall.md): Event to trigger a tool invocation. - [Mojentic.Examples.React.Formatters](Mojentic.Examples.React.Formatters.md): Formatting utilities for the ReAct pattern implementation. - [Mojentic.Examples.React.Models](Mojentic.Examples.React.Models.md): Data models for the ReAct pattern. - [Mojentic.Examples.React.Models.CurrentContext](Mojentic.Examples.React.Models.CurrentContext.md): The complete context for a ReAct session. - [Mojentic.Examples.React.Models.NextAction](Mojentic.Examples.React.Models.NextAction.md): Enumeration of possible next actions in the ReAct loop. - [Mojentic.Examples.React.Models.Plan](Mojentic.Examples.React.Models.Plan.md): A structured plan for solving a user query. - [Mojentic.Examples.React.Models.ThoughtActionObservation](Mojentic.Examples.React.Models.ThoughtActionObservation.md): A single step in the ReAct loop capturing thought, action, and observation. - [Mojentic.Examples.React.OutputAgent](Mojentic.Examples.React.OutputAgent.md): Output agent for the ReAct pattern. - [Mojentic.Examples.React.SummarizationAgent](Mojentic.Examples.React.SummarizationAgent.md): Summarization agent for the ReAct pattern. - [Mojentic.Examples.React.ThinkingAgent](Mojentic.Examples.React.ThinkingAgent.md): Planning agent for the ReAct pattern. - [Mojentic.Examples.React.ToolCallAgent](Mojentic.Examples.React.ToolCallAgent.md): Tool execution agent for the ReAct pattern. - [Mojentic.LLM.ChatSession](Mojentic.LLM.ChatSession.md): Manages stateful conversation sessions with an LLM. - [Mojentic.LLM.Gateways.OpenAI](Mojentic.LLM.Gateways.OpenAI.md): Gateway for OpenAI LLM service. - [Mojentic.LLM.Gateways.OpenAIMessagesAdapter](Mojentic.LLM.Gateways.OpenAIMessagesAdapter.md): Adapter for converting LLM messages to OpenAI format. - [Mojentic.LLM.Gateways.OpenAIModelRegistry](Mojentic.LLM.Gateways.OpenAIModelRegistry.md): OpenAI Model Registry for managing model-specific configurations and capabilities. - [Mojentic.LLM.Tools.AskUser](Mojentic.LLM.Tools.AskUser.md): Tool for asking the user a question and receiving their input. - [Mojentic.LLM.Tools.CreateDirectoryTool](Mojentic.LLM.Tools.CreateDirectoryTool.md): Tool for creating a new directory. - [Mojentic.LLM.Tools.CurrentDatetime](Mojentic.LLM.Tools.CurrentDatetime.md): Tool for getting the current date and time. - [Mojentic.LLM.Tools.EphemeralTaskManager](Mojentic.LLM.Tools.EphemeralTaskManager.md): Ephemeral Task Manager tools for managing a list of tasks. - [Mojentic.LLM.Tools.EphemeralTaskManager.AppendTask](Mojentic.LLM.Tools.EphemeralTaskManager.AppendTask.md): Tool for appending a new task to the end of the ephemeral task manager list. - [Mojentic.LLM.Tools.EphemeralTaskManager.ClearTasks](Mojentic.LLM.Tools.EphemeralTaskManager.ClearTasks.md): Tool for clearing all tasks from the ephemeral task manager. - [Mojentic.LLM.Tools.EphemeralTaskManager.CompleteTask](Mojentic.LLM.Tools.EphemeralTaskManager.CompleteTask.md): Tool for completing a task in the ephemeral task manager. - [Mojentic.LLM.Tools.EphemeralTaskManager.InsertTaskAfter](Mojentic.LLM.Tools.EphemeralTaskManager.InsertTaskAfter.md): Tool for inserting a new task after an existing task in the ephemeral task manager list. - [Mojentic.LLM.Tools.EphemeralTaskManager.ListTasks](Mojentic.LLM.Tools.EphemeralTaskManager.ListTasks.md): Tool for listing all tasks in the ephemeral task manager. - [Mojentic.LLM.Tools.EphemeralTaskManager.PrependTask](Mojentic.LLM.Tools.EphemeralTaskManager.PrependTask.md): Tool for prepending a new task to the beginning of the ephemeral task manager list. - [Mojentic.LLM.Tools.EphemeralTaskManager.StartTask](Mojentic.LLM.Tools.EphemeralTaskManager.StartTask.md): Tool for starting a task in the ephemeral task manager. - [Mojentic.LLM.Tools.EphemeralTaskManager.Task](Mojentic.LLM.Tools.EphemeralTaskManager.Task.md): Represents a task with an identifier, description, and status. - [Mojentic.LLM.Tools.EphemeralTaskManager.TaskList](Mojentic.LLM.Tools.EphemeralTaskManager.TaskList.md): Manages a list of tasks for the ephemeral task manager. - [Mojentic.LLM.Tools.FilesystemGateway](Mojentic.LLM.Tools.FilesystemGateway.md): A gateway for interacting with the filesystem within a sandboxed base path. - [Mojentic.LLM.Tools.FindFilesByGlobTool](Mojentic.LLM.Tools.FindFilesByGlobTool.md): Tool for finding files matching a glob pattern. - [Mojentic.LLM.Tools.FindFilesContainingTool](Mojentic.LLM.Tools.FindFilesContainingTool.md): Tool for finding files containing text matching a regex pattern. - [Mojentic.LLM.Tools.FindLinesMatchingTool](Mojentic.LLM.Tools.FindLinesMatchingTool.md): Tool for finding all lines in a file matching a regex pattern. - [Mojentic.LLM.Tools.ListAllFilesTool](Mojentic.LLM.Tools.ListAllFilesTool.md): Tool for listing all files recursively in a directory. - [Mojentic.LLM.Tools.ListFilesTool](Mojentic.LLM.Tools.ListFilesTool.md): Tool for listing files in a directory (non-recursive). - [Mojentic.LLM.Tools.ReadFileTool](Mojentic.LLM.Tools.ReadFileTool.md): Tool for reading the entire content of a file. - [Mojentic.LLM.Tools.TellUser](Mojentic.LLM.Tools.TellUser.md): Tool for displaying messages to the user without expecting a response. - [Mojentic.LLM.Tools.ToolWrapper](Mojentic.LLM.Tools.ToolWrapper.md): Wraps a BaseLLMAgent as a Tool for delegation patterns. - [Mojentic.LLM.Tools.WriteFileTool](Mojentic.LLM.Tools.WriteFileTool.md): Tool for writing content to a file, completely overwriting any existing content. - [Mojentic.Router](Mojentic.Router.md): Routes events to agents based on event type. - [Mojentic.Tracer](Mojentic.Tracer.md): Public API for the Mojentic Tracer System. - [Mojentic.Tracer.EventStore](Mojentic.Tracer.EventStore.md): GenServer for storing and querying tracer events. - [Mojentic.Tracer.NullTracer](Mojentic.Tracer.NullTracer.md): A no-op implementation of TracerSystem following the Null Object Pattern. - [Mojentic.Tracer.TracerEvents](Mojentic.Tracer.TracerEvents.md): Defines tracer event types for tracking system interactions. - [Mojentic.Tracer.TracerEvents.AgentInteractionTracerEvent](Mojentic.Tracer.TracerEvents.AgentInteractionTracerEvent.md): Records interactions between agents. - [Mojentic.Tracer.TracerEvents.LLMCallTracerEvent](Mojentic.Tracer.TracerEvents.LLMCallTracerEvent.md): Records when an LLM is called with specific messages. - [Mojentic.Tracer.TracerEvents.LLMResponseTracerEvent](Mojentic.Tracer.TracerEvents.LLMResponseTracerEvent.md): Records when an LLM responds to a call. - [Mojentic.Tracer.TracerEvents.ToolCallTracerEvent](Mojentic.Tracer.TracerEvents.ToolCallTracerEvent.md): Records when a tool is called during agent execution. - [Mojentic.Tracer.TracerEvents.TracerEvent](Mojentic.Tracer.TracerEvents.TracerEvent.md): Base structure for all tracer events. - [Mojentic.Tracer.TracerSystem](Mojentic.Tracer.TracerSystem.md): Central system for capturing and querying tracer events. - Core - [Mojentic](Mojentic.md): Mojentic is an LLM integration framework for Elixir. - [Mojentic.Error](Mojentic.Error.md): Standardized error types and helpers for the Mojentic framework. - LLM Integration - [Mojentic.LLM.Broker](Mojentic.LLM.Broker.md): Main interface for LLM interactions. - [Mojentic.LLM.CompletionConfig](Mojentic.LLM.CompletionConfig.md): Configuration for LLM completion requests. - [Mojentic.LLM.Gateway](Mojentic.LLM.Gateway.md): Behaviour for LLM gateway implementations. - [Mojentic.LLM.GatewayResponse](Mojentic.LLM.GatewayResponse.md): Represents a response from an LLM gateway. - [Mojentic.LLM.Message](Mojentic.LLM.Message.md): Represents a message in an LLM conversation. - [Mojentic.LLM.ToolCall](Mojentic.LLM.ToolCall.md): Represents a tool call from an LLM. - Gateways - [Mojentic.LLM.Gateways.Ollama](Mojentic.LLM.Gateways.Ollama.md): Gateway for Ollama local LLM service. - [Mojentic.LLM.Gateways.TokenizerGateway](Mojentic.LLM.Gateways.TokenizerGateway.md): Gateway for tokenizing and detokenizing text using Hugging Face tokenizers. - Tools - [Mojentic.LLM.Tools.DateResolver](Mojentic.LLM.Tools.DateResolver.md): Tool for resolving relative dates to absolute dates. - [Mojentic.LLM.Tools.Tool](Mojentic.LLM.Tools.Tool.md): Behaviour for LLM tool implementations. - [Mojentic.LLM.Tools.WebSearchTool](Mojentic.LLM.Tools.WebSearchTool.md): Tool for searching the web using DuckDuckGo.