Introduction¶
Overview¶
The current EAA runtime is organized around a single base task manager that coordinates five concerns:
- model construction and invocation
- tool registration and serialized tool execution
- conversation state and checkpoint persistence
- optional long-term memory
- optional WebUI integration
At a high level the pieces connect like this:
user / browser
|
v
BaseTaskManager
|
+--> chat_graph / task_graph / custom workflow
|
+--> chat model built from an LLMConfig
|
+--> SerialToolExecutor --> BaseTool instances / MCPTool wrappers
|
+--> MemoryManager --> vector store (Chroma in the current built-in path)
|
+--> checkpoint SQLite DB + transcript SQLite DB
|
v
WebUI runtime API + FastAPI WebUI
Key components¶
BaseTaskManager: owns runtime state, graphs, persistence, model invocation, and tool execution.LLMConfig: declares how the chat model is created. The shipped subclasses areOpenAIConfig,AskSageConfig, andArgoConfig.BaseTool: declares stateful tool objects. Methods decorated with@toolbecome model-callable tools.MemoryManager: adds optional retrieval and saving of user memories on chat turns.WebUI: runs as a separate process. It reads from and writes to the same SQLite file used by the task manager.
Current workflow boundary¶
The base runtime ships the reusable chat graph.
The repository currently does not ship task-manager subclasses with their own
custom task_graph implementation. Instead, concrete managers mostly either
reuse the base chat graph or implement analytical workflows directly in Python
while still updating the shared transcript and WebUI state through task-manager
helpers.