backend_architecture.puml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. @startuml openhands
  2. !pragma useIntermediatePackages false
  3. class openhands.action.agent.AgentEchoAction {
  4. content: str
  5. runnable: bool
  6. action: str
  7. }
  8. class openhands.action.agent.AgentFinishAction {
  9. runnable: bool
  10. action: str
  11. }
  12. class openhands.observation.AgentMessageObservation {
  13. role: str
  14. observation: str
  15. }
  16. class openhands.action.agent.AgentSummarizeAction {
  17. summary: str
  18. action: str
  19. }
  20. class openhands.action.agent.AgentThinkAction {
  21. thought: str
  22. runnable: bool
  23. action: str
  24. }
  25. class openhands.action.base.ExecutableAction {
  26. }
  27. class openhands.action.base.NotExecutableAction {
  28. }
  29. class openhands.observation.Observation {
  30. content: str
  31. }
  32. class openhands.action.base.Action {
  33. }
  34. class openhands.action.base.NullAction {
  35. action: str
  36. }
  37. class openhands.action.bash.CmdRunAction {
  38. command: str
  39. action: str
  40. }
  41. class openhands.action.browse.BrowseURLAction {
  42. url: str
  43. action: str
  44. }
  45. class openhands.observation.BrowserOutputObservation {
  46. url: str
  47. status_code: int
  48. error: bool
  49. observation: str
  50. }
  51. class openhands.action.fileop.FileReadAction {
  52. path: str
  53. action: str
  54. }
  55. class openhands.observation.FileReadObservation {
  56. path: str
  57. observation: str
  58. }
  59. class openhands.action.fileop.FileWriteAction {
  60. path: str
  61. contents: str
  62. action: str
  63. }
  64. class openhands.observation.FileWriteObservation {
  65. path: str
  66. observation: str
  67. }
  68. class openhands.action.tasks.AddTaskAction {
  69. parent: str
  70. goal: str
  71. subtasks: list
  72. action: str
  73. }
  74. class openhands.action.tasks.ModifyTaskAction {
  75. id: str
  76. state: str
  77. action: str
  78. }
  79. abstract class openhands.agent.Agent {
  80. _registry: Dict[str, Type[Agent]] {static}
  81. llm: LLM
  82. _complete: None
  83. }
  84. class openhands.llm.llm.LLM {
  85. model: None
  86. api_key: None
  87. base_url: None
  88. _debug_dir: None
  89. _debug_idx: None
  90. _debug_id: None
  91. _completion: None
  92. }
  93. class openhands.controller.agent_controller.AgentController {
  94. agent: Agent
  95. max_iterations: int
  96. workdir: str
  97. command_manager: CommandManager
  98. state: State
  99. plan: Plan
  100. callbacks: List[Callable]
  101. }
  102. class openhands.observation.AgentErrorObservation {
  103. observation: str
  104. }
  105. class openhands.controller.command_manager.CommandManager {
  106. directory: None
  107. shell: None
  108. }
  109. class openhands.observation.NullObservation {
  110. observation: str
  111. }
  112. class openhands.plan.Plan {
  113. main_goal: str {static}
  114. task: Task {static}
  115. main_goal: str
  116. task: None
  117. }
  118. class openhands.state.State {
  119. plan: Plan
  120. iteration: int
  121. history: List[Tuple[Action, Observation]]
  122. updated_info: List[Tuple[Action, Observation]]
  123. }
  124. class openhands.observation.CmdOutputObservation {
  125. command_id: int
  126. command: str
  127. exit_code: int
  128. observation: str
  129. }
  130. class openhands.sandbox.sandbox.DockerInteractive {
  131. instance_id: None
  132. instance_id: None
  133. workspace_dir: None
  134. workspace_dir: None
  135. workspace_dir: None
  136. timeout: int
  137. base_container_image: None
  138. container_name: None
  139. }
  140. class openhands.observation.UserMessageObservation {
  141. role: str
  142. observation: str
  143. }
  144. class openhands.plan.Task {
  145. id: str {static}
  146. goal: str {static}
  147. parent: Task | None {static}
  148. subtasks: List[Task] {static}
  149. id: None
  150. id: None
  151. parent: None
  152. goal: str
  153. subtasks: None
  154. }
  155. class openhands.server.session.Session {
  156. websocket: None
  157. controller: Optional[AgentController]
  158. agent: Optional[Agent]
  159. agent_task: None
  160. }
  161. openhands.action.base.ExecutableAction <|-- openhands.action.agent.AgentEchoAction
  162. openhands.action.base.NotExecutableAction <|-- openhands.action.agent.AgentFinishAction
  163. openhands.observation.Observation <|-- openhands.observation.AgentMessageObservation
  164. openhands.action.base.NotExecutableAction <|-- openhands.action.agent.AgentSummarizeAction
  165. openhands.action.base.NotExecutableAction <|-- openhands.action.agent.AgentThinkAction
  166. openhands.action.base.Action <|-- openhands.action.base.ExecutableAction
  167. openhands.action.base.Action <|-- openhands.action.base.NotExecutableAction
  168. openhands.action.base.NotExecutableAction <|-- openhands.action.base.NullAction
  169. openhands.action.base.ExecutableAction <|-- openhands.action.bash.CmdRunAction
  170. openhands.action.base.ExecutableAction <|-- openhands.action.browse.BrowseURLAction
  171. openhands.observation.Observation <|-- openhands.observation.BrowserOutputObservation
  172. openhands.action.base.ExecutableAction <|-- openhands.action.fileop.FileReadAction
  173. openhands.observation.Observation <|-- openhands.observation.FileReadObservation
  174. openhands.action.base.ExecutableAction <|-- openhands.action.fileop.FileWriteAction
  175. openhands.observation.Observation <|-- openhands.observation.FileWriteObservation
  176. openhands.action.base.NotExecutableAction <|-- openhands.action.tasks.AddTaskAction
  177. openhands.action.base.NotExecutableAction <|-- openhands.action.tasks.ModifyTaskAction
  178. openhands.agent.Agent *-- openhands.agent.Agent
  179. openhands.agent.Agent *-- openhands.llm.llm.LLM
  180. openhands.controller.agent_controller.AgentController *-- openhands.agent.Agent
  181. openhands.observation.Observation <|-- openhands.observation.AgentErrorObservation
  182. openhands.observation.Observation <|-- openhands.observation.NullObservation
  183. openhands.plan.Plan *-- openhands.plan.Task
  184. openhands.state.State *-- openhands.plan.Plan
  185. openhands.state.State *-- openhands.observation.CmdOutputObservation
  186. openhands.state.State *-- openhands.action.base.Action
  187. openhands.state.State *-- openhands.observation.Observation
  188. openhands.observation.Observation <|-- openhands.observation.CmdOutputObservation
  189. openhands.observation.Observation <|-- openhands.observation.UserMessageObservation
  190. openhands.plan.Task *-- openhands.plan.Task
  191. openhands.server.session.Session *-- openhands.controller.agent_controller.AgentController
  192. openhands.server.session.Session *-- openhands.agent.Agent
  193. openhands.controller.agent_controller.AgentController -> openhands.state.State
  194. openhands.controller.agent_controller.AgentController -> openhands.plan.Plan
  195. openhands.controller.agent_controller.AgentController -> openhands.controller.command_manager.CommandManager
  196. openhands.controller.command_manager.CommandManager -> openhands.sandbox.sandbox.DockerInteractive
  197. footer Based on f3fda42; Generated by //py2puml//
  198. @enduml