@startuml
package "smolagents" {
class Tool {
+name: str
+description: str
+inputs: dict
+output_type: str
+forward()
+setup()
+save(output_dir: str)
+push_to_hub(repo_id: str)
+from_hub(repo_id: str)
+from_space(space_id: str)
+from_gradio(gradio_tool)
+from_langchain(langchain_tool)
}
class PythonInterpreterTool extends Tool
class FinalAnswerTool extends Tool
class UserInputTool extends Tool
class DuckDuckGoSearchTool extends Tool
class GoogleSearchTool extends Tool
class VisitWebpageTool extends Tool
class SpeechToTextTool extends Tool
class MultiStepAgent {
+tools: list
+model: callable
+run(task: str)
+step(log_entry: ActionStep)
}
class ToolCallingAgent extends MultiStepAgent
class CodeAgent extends MultiStepAgent
class Toolbox {
+tools: dict
+add_tool(tool: Tool)
+remove_tool(tool_name: str)
+update_tool(tool: Tool)
+clear_toolbox()
}
class GradioUI {
+agent: MultiStepAgent
+interact_with_agent(prompt: str, messages: list)
+launch()
}
class Model {
+generate(messages: list)
+get_tool_call(messages: list, available_tools: list)
}
class HfApiModel extends Model
class TransformersModel extends Model
class LiteLLMModel extends Model
}
Toolbox --> Tool
MultiStepAgent --> Tool
GradioUI --> MultiStepAgent
HfApiModel --> Model
TransformersModel --> Model
LiteLLMModel --> Model
@enduml
Created
January 7, 2025 09:43
-
-
Save xianminx/ca509e25c7a1e773234956e3e7228a6a to your computer and use it in GitHub Desktop.
SmolAgents architecture
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment