backend_architecture.puml 6.0 KB

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