backend_architecture.puml 6.7 KB

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