Переглянути джерело

Abstraction that allows us to develop different agents, frontend, backend, and evaluation in parallel (#68)

* move agent to langchains_agent

* remove old .env

* remove the old agent folder

* add preliminary version of Agent abstraction

* add preliminary version of the main.py

* merge controlloop and main into a Agent class

* add init

* fix json import

* fix missing arg

* get langchains_agent working after abstraction

* rename `research` to `agenthub`

* rename: rename research to agenthub

---------

Co-authored-by: huybery <huybery@gmail.com>
Xingyao Wang 1 рік тому
батько
коміт
0380070e98
100 змінених файлів з 140 додано та 121 видалено
  1. 0 9
      agent/build-and-run.sh
  2. 0 6
      agent/lib/actions/__init__.py
  3. 0 18
      agent/lib/controlloop.py
  4. 0 83
      agent/main.py
  5. 6 0
      agenthub/README.md
  6. 1 0
      agenthub/__init__.py
  7. 0 0
      agenthub/langchains_agent/.dockerignore
  8. 1 4
      agenthub/langchains_agent/Dockerfile
  9. 2 1
      agenthub/langchains_agent/README.md
  10. 0 0
      agenthub/langchains_agent/TODO.md
  11. 111 0
      agenthub/langchains_agent/__init__.py
  12. 19 0
      agenthub/langchains_agent/build-and-run.sh
  13. 0 0
      agenthub/langchains_agent/regression/.gitignore
  14. 0 0
      agenthub/langchains_agent/regression/README.md
  15. 0 0
      agenthub/langchains_agent/regression/cases/client-server/logs.txt
  16. 0 0
      agenthub/langchains_agent/regression/cases/client-server/task.txt
  17. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/.env
  18. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/.gitignore
  19. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/README.md
  20. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/package-lock.json
  21. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/package.json
  22. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/favicon.ico
  23. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/index.html
  24. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/logo192.png
  25. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/logo512.png
  26. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/manifest.json
  27. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/robots.txt
  28. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/App.css
  29. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/App.js
  30. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/App.test.js
  31. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/index.css
  32. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/index.js
  33. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/logo.svg
  34. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/reportWebVitals.js
  35. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/setupTests.js
  36. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/package-lock.json
  37. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/package.json
  38. 0 0
      agenthub/langchains_agent/regression/cases/client-server/workspace/server.js
  39. 0 0
      agenthub/langchains_agent/regression/cases/express/logs.txt
  40. 0 0
      agenthub/langchains_agent/regression/cases/express/task.txt
  41. 0 0
      agenthub/langchains_agent/regression/cases/express/workspace/index.js
  42. 0 0
      agenthub/langchains_agent/regression/cases/express/workspace/package-lock.json
  43. 0 0
      agenthub/langchains_agent/regression/cases/express/workspace/package.json
  44. 0 0
      agenthub/langchains_agent/regression/cases/hello-name/logs.txt
  45. 0 0
      agenthub/langchains_agent/regression/cases/hello-name/start/hello_world.sh
  46. 0 0
      agenthub/langchains_agent/regression/cases/hello-name/task.txt
  47. 0 0
      agenthub/langchains_agent/regression/cases/hello-name/workspace/hello_world.sh
  48. 0 0
      agenthub/langchains_agent/regression/cases/hello-world/logs.txt
  49. 0 0
      agenthub/langchains_agent/regression/cases/hello-world/task.txt
  50. 0 0
      agenthub/langchains_agent/regression/cases/hello-world/workspace/hello_world.sh
  51. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/logs.txt
  52. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/length.py
  53. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/lowercase.py
  54. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/reverse.py
  55. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/scramble.py
  56. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/spongebob.py
  57. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/uppercase.py
  58. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/string_cli.py
  59. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/task.txt
  60. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/cli.js
  61. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/index.js
  62. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/length.js
  63. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/length.py
  64. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/lowercase.js
  65. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/lowercase.py
  66. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/reverse.js
  67. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/reverse.py
  68. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/scramble.js
  69. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/scramble.py
  70. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/spongebob.js
  71. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/spongebob.py
  72. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/uppercase.js
  73. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/uppercase.py
  74. 0 0
      agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/string_cli.py
  75. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/logs.txt
  76. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/length.py
  77. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/lowercase.py
  78. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/reverse.py
  79. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/scramble.py
  80. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/spongebob.py
  81. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/uppercase.py
  82. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/start/string_cli.py
  83. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/task.txt
  84. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/length.py
  85. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/lowercase.py
  86. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/reverse.py
  87. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/scramble.py
  88. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/spongebob.py
  89. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/uppercase.py
  90. 0 0
      agenthub/langchains_agent/regression/cases/python-cli-help/workspace/string_cli.py
  91. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/logs.txt
  92. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/task.txt
  93. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/length.py
  94. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/lowercase.py
  95. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/reverse.py
  96. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/scramble.py
  97. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/spongebob.py
  98. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/uppercase.py
  99. 0 0
      agenthub/langchains_agent/regression/cases/python-cli/workspace/string_cli.py
  100. 0 0
      agenthub/langchains_agent/regression/cases/react-todo/logs.txt

+ 0 - 9
agent/build-and-run.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-set -eo pipefail
-
-rm -rf `pwd`/workspace
-mkdir -p `pwd`/workspace
-
-docker build -t control-loop .
-docker run -e DEBUG=$DEBUG -e OPENAI_API_KEY=$OPENAI_API_KEY -v `pwd`/workspace:/workspace control-loop python /app/main.py -d /workspace -t "${1}"
-

+ 0 - 6
agent/lib/actions/__init__.py

@@ -1,6 +0,0 @@
-from lib.actions.run import run
-from lib.actions.kill import kill
-from lib.actions.browse import browse
-from lib.actions.write import write
-from lib.actions.read import read
-

+ 0 - 18
agent/lib/controlloop.py

@@ -1,18 +0,0 @@
-def run_loop(agent, max_iterations=100):
-    for i in range(max_iterations):
-        print("STEP", i, flush=True)
-        log_events = agent.get_background_logs()
-        for event in log_events:
-            print(event, flush=True)
-        action = agent.get_next_action()
-        if action.action == 'finish':
-            print("Done!", flush=True)
-            break
-        print(action, flush=True)
-        print("---", flush=True)
-        out = agent.maybe_perform_latest_action()
-        print(out, flush=True)
-        print("==============", flush=True)
-
-
-

+ 0 - 83
agent/main.py

@@ -1,83 +0,0 @@
-import os
-import argparse
-
-from lib.agent import Agent
-from lib.event import Event
-from lib.controlloop import run_loop
-
-INITIAL_THOUGHTS = [
-"I exist!",
-"Hmm...looks like I can type in a command line prompt",
-"Looks like I have a web browser too!",
-"Here's what I want to do: $TASK",
-"How am I going to get there though?",
-"It seems like I have some kind of short term memory.",
-"Each of my thoughts seems to be stored in a numbered list.",
-"It seems whatever I say next will be added to the list.",
-"But no one has perfect short-term memory. My list of thoughts will be summarized and condensed over time, losing information in the process.",
-"Fortunately I have long term memory!",
-"I can just say RECALL, followed by the thing I want to remember. And then related thoughts just spill out!",
-"Sometimes they're random thoughts that don't really have to do with what I wanted to remember. But usually they're exactly what I need!",
-"Let's try it out!",
-"RECALL what it is I want to do",
-"Here's what I want to do: $TASK",
-"How am I going to get there though?",
-"Neat! And it looks like it's easy for me to use the command line too! I just have to say RUN followed by the command I want to run. The command output just jumps into my head!",
-"RUN echo \"hello world\"",
-"hello world",
-"Cool! I bet I can read and edit files too.",
-"RUN echo \"console.log('hello world')\" > test.js",
-"",
-"I just created test.js. I'll try and run it now.",
-"RUN node test.js",
-"hello world",
-"it works!",
-"And if I want to use the browser, I just need to say BROWSE, followed by a website I want to visit, or an action I want to take on the current site",
-"Let's try that...",
-"BROWSE google.com",
-"<form><input type=\"text\"></input><button type=\"submit\"></button></form>",
-"Very cool. Now to accomplish my task.",
-"I'll need a strategy. And as I make progress, I'll need to keep refining that strategy. I'll need to set goals, and break them into sub-goals.",
-"In between actions, I must always take some time to think, strategize, and set new goals. I should never take two actions in a row.",
-"OK so my task is to $TASK. I haven't made any progress yet. Where should I start?",
-"It seems like there might be an existing project here. I should probably start by running `ls` to see what's here.",
-]
-
-def main():
-    parser = argparse.ArgumentParser(description="Run an agent with a specific task")
-    parser.add_argument("-d", "--directory", required=True, type=str, help="The working directory for the agent")
-    parser.add_argument("-t", "--task", required=True, type=str, help="The task for the agent to perform")
-    args = parser.parse_args()
-
-    print("Working in directory:", args.directory)
-    os.chdir(args.directory)
-
-    agent = Agent(args.task)
-    next_is_output = False
-    for thought in INITIAL_THOUGHTS:
-        thought = thought.replace("$TASK", args.task)
-        if next_is_output:
-            event = Event('output', {'output': thought})
-            next_is_output = False
-        else:
-            if thought.startswith("RUN"):
-                command = thought.split("RUN ")[1]
-                event = Event('run', {'command': command})
-                next_is_output = True
-            elif thought.startswith("RECALL"):
-                query = thought.split("RECALL ")[1]
-                event = Event('recall', {'query': query})
-                next_is_output = True
-            elif thought.startswith("BROWSE"):
-                url = thought.split("BROWSE ")[1]
-                event = Event('browse', {'url': url})
-                next_is_output = True
-            else:
-                event = Event('think', {'thought': thought})
-
-        agent.add_event(event)
-    run_loop(agent)
-
-if __name__ == "__main__":
-    main()
-

+ 6 - 0
agenthub/README.md

@@ -0,0 +1,6 @@
+# Agent Framework Research
+
+In this folder, there may exist multiple implementations of `Agent` that will be used by the 
+
+For example, `agenthub/langchain_agent`, `agenthub/metagpt_agent`, `agenthub/codeact_agent`, etc.
+Contributors from different backgrounds and interests can choose to contribute to any (or all!) of these directions.

+ 1 - 0
agenthub/__init__.py

@@ -0,0 +1 @@
+from . import langchains_agent

+ 0 - 0
agent/.dockerignore → agenthub/langchains_agent/.dockerignore


+ 1 - 4
agent/Dockerfile → agenthub/langchains_agent/Dockerfile

@@ -14,10 +14,7 @@ WORKDIR /app
 COPY requirements.txt ./requirements.txt
 RUN python -m pip install -r requirements.txt
 
-COPY lib ./lib
-COPY main.py ./main.py
-
 WORKDIR /workspace
 
-CMD ["python", "/app/main.py", "/workspace"]
+CMD ["python", "/app/opendevin/main.py", "/workspace"]
 

+ 2 - 1
agent/README.md → agenthub/langchains_agent/README.md

@@ -3,5 +3,6 @@ This is currently a standalone utility. It will need to be integrated into OpenD
 
 ## Usage
 ```bash
-./build-and-run.sh "write a bash script that prints 'hello world'"
+# Run this in project root
+./agenthub/langchains_agent/build-and-run.sh "write a bash script that prints 'hello world'"
 ```

+ 0 - 0
agent/TODO.md → agenthub/langchains_agent/TODO.md


+ 111 - 0
agenthub/langchains_agent/__init__.py

@@ -0,0 +1,111 @@
+import os
+import argparse
+
+from opendevin.agent import Agent, Message
+
+from agenthub.langchains_agent.utils.agent import Agent as LangchainsAgentImpl
+from agenthub.langchains_agent.utils.event import Event
+
+INITIAL_THOUGHTS = [
+    "I exist!",
+    "Hmm...looks like I can type in a command line prompt",
+    "Looks like I have a web browser too!",
+    "Here's what I want to do: $TASK",
+    "How am I going to get there though?",
+    "It seems like I have some kind of short term memory.",
+    "Each of my thoughts seems to be stored in a numbered list.",
+    "It seems whatever I say next will be added to the list.",
+    "But no one has perfect short-term memory. My list of thoughts will be summarized and condensed over time, losing information in the process.",
+    "Fortunately I have long term memory!",
+    "I can just say RECALL, followed by the thing I want to remember. And then related thoughts just spill out!",
+    "Sometimes they're random thoughts that don't really have to do with what I wanted to remember. But usually they're exactly what I need!",
+    "Let's try it out!",
+    "RECALL what it is I want to do",
+    "Here's what I want to do: $TASK",
+    "How am I going to get there though?",
+    "Neat! And it looks like it's easy for me to use the command line too! I just have to say RUN followed by the command I want to run. The command output just jumps into my head!",
+    'RUN echo "hello world"',
+    "hello world",
+    "Cool! I bet I can read and edit files too.",
+    "RUN echo \"console.log('hello world')\" > test.js",
+    "",
+    "I just created test.js. I'll try and run it now.",
+    "RUN node test.js",
+    "hello world",
+    "it works!",
+    "And if I want to use the browser, I just need to say BROWSE, followed by a website I want to visit, or an action I want to take on the current site",
+    "Let's try that...",
+    "BROWSE google.com",
+    '<form><input type="text"></input><button type="submit"></button></form>',
+    "Very cool. Now to accomplish my task.",
+    "I'll need a strategy. And as I make progress, I'll need to keep refining that strategy. I'll need to set goals, and break them into sub-goals.",
+    "In between actions, I must always take some time to think, strategize, and set new goals. I should never take two actions in a row.",
+    "OK so my task is to $TASK. I haven't made any progress yet. Where should I start?",
+    "It seems like there might be an existing project here. I should probably start by running `ls` to see what's here.",
+]
+
+
+class LangchainsAgent(Agent):
+
+    def _run_loop(self, agent: LangchainsAgentImpl, max_iterations=100):
+        # TODO: make it add a Message to the history for each turn / event
+        for i in range(max_iterations):
+            print("STEP", i, flush=True)
+            log_events = agent.get_background_logs()
+            for event in log_events:
+                print(event, flush=True)
+            action = agent.get_next_action()
+            if action.action == "finish":
+                print("Done!", flush=True)
+                break
+            print(action, flush=True)
+            print("---", flush=True)
+            out = agent.maybe_perform_latest_action()
+            print(out, flush=True)
+            print("==============", flush=True)
+
+    def run(self) -> None:
+        """
+        Starts the execution of the assigned instruction. This method should
+        be implemented by subclasses to define the specific execution logic.
+        """
+        agent = LangchainsAgentImpl(self.instruction)
+        next_is_output = False
+        for thought in INITIAL_THOUGHTS:
+            thought = thought.replace("$TASK", self.instruction)
+            if next_is_output:
+                event = Event("output", {"output": thought})
+                next_is_output = False
+            else:
+                if thought.startswith("RUN"):
+                    command = thought.split("RUN ")[1]
+                    event = Event("run", {"command": command})
+                    next_is_output = True
+                elif thought.startswith("RECALL"):
+                    query = thought.split("RECALL ")[1]
+                    event = Event("recall", {"query": query})
+                    next_is_output = True
+                elif thought.startswith("BROWSE"):
+                    url = thought.split("BROWSE ")[1]
+                    event = Event("browse", {"url": url})
+                    next_is_output = True
+                else:
+                    event = Event("think", {"thought": thought})
+
+            agent.add_event(event)
+        self._run_loop(agent, self.max_steps)
+
+        # Set the agent's completion status to True
+        self._complete = True
+
+    def chat(self, message: str) -> None:
+        """
+        Optional method for interactive communication with the agent during its execution. Implementations
+        can use this method to modify the agent's behavior or state based on chat inputs.
+
+        Parameters:
+        - message (str): The chat message or command.
+        """
+        raise NotImplementedError
+
+Agent.register("LangchainsAgent", LangchainsAgent)

+ 19 - 0
agenthub/langchains_agent/build-and-run.sh

@@ -0,0 +1,19 @@
+#!/bin/bash
+set -eo pipefail
+
+rm -rf `pwd`/workspace
+mkdir -p `pwd`/workspace
+
+pushd agenthub/langchains_agent
+docker build -t control-loop .
+popd
+docker run \
+    -e DEBUG=$DEBUG \
+    -e OPENAI_API_KEY=$OPENAI_API_KEY \
+    -u `id -u`:`id -g` \
+    -v `pwd`/workspace:/workspace \
+    -v `pwd`:/app:ro \
+    -e PYTHONPATH=/app \
+    control-loop \
+    python /app/opendevin/main.py -d /workspace -t "${1}" 
+

+ 0 - 0
agent/regression/.gitignore → agenthub/langchains_agent/regression/.gitignore


+ 0 - 0
agent/regression/README.md → agenthub/langchains_agent/regression/README.md


+ 0 - 0
agent/regression/cases/client-server/logs.txt → agenthub/langchains_agent/regression/cases/client-server/logs.txt


+ 0 - 0
agent/regression/cases/client-server/task.txt → agenthub/langchains_agent/regression/cases/client-server/task.txt


+ 0 - 0
agent/regression/cases/client-server/workspace/client/.env → agenthub/langchains_agent/regression/cases/client-server/workspace/client/.env


+ 0 - 0
agent/regression/cases/client-server/workspace/client/.gitignore → agenthub/langchains_agent/regression/cases/client-server/workspace/client/.gitignore


+ 0 - 0
agent/regression/cases/client-server/workspace/client/README.md → agenthub/langchains_agent/regression/cases/client-server/workspace/client/README.md


+ 0 - 0
agent/regression/cases/client-server/workspace/client/package-lock.json → agenthub/langchains_agent/regression/cases/client-server/workspace/client/package-lock.json


+ 0 - 0
agent/regression/cases/client-server/workspace/client/package.json → agenthub/langchains_agent/regression/cases/client-server/workspace/client/package.json


+ 0 - 0
agent/regression/cases/client-server/workspace/client/public/favicon.ico → agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/favicon.ico


+ 0 - 0
agent/regression/cases/client-server/workspace/client/public/index.html → agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/index.html


+ 0 - 0
agent/regression/cases/client-server/workspace/client/public/logo192.png → agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/logo192.png


+ 0 - 0
agent/regression/cases/client-server/workspace/client/public/logo512.png → agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/logo512.png


+ 0 - 0
agent/regression/cases/client-server/workspace/client/public/manifest.json → agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/manifest.json


+ 0 - 0
agent/regression/cases/client-server/workspace/client/public/robots.txt → agenthub/langchains_agent/regression/cases/client-server/workspace/client/public/robots.txt


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/App.css → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/App.css


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/App.js → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/App.js


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/App.test.js → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/App.test.js


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/index.css → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/index.css


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/index.js → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/index.js


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/logo.svg → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/logo.svg


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/reportWebVitals.js → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/reportWebVitals.js


+ 0 - 0
agent/regression/cases/client-server/workspace/client/src/setupTests.js → agenthub/langchains_agent/regression/cases/client-server/workspace/client/src/setupTests.js


+ 0 - 0
agent/regression/cases/client-server/workspace/package-lock.json → agenthub/langchains_agent/regression/cases/client-server/workspace/package-lock.json


+ 0 - 0
agent/regression/cases/client-server/workspace/package.json → agenthub/langchains_agent/regression/cases/client-server/workspace/package.json


+ 0 - 0
agent/regression/cases/client-server/workspace/server.js → agenthub/langchains_agent/regression/cases/client-server/workspace/server.js


+ 0 - 0
agent/regression/cases/express/logs.txt → agenthub/langchains_agent/regression/cases/express/logs.txt


+ 0 - 0
agent/regression/cases/express/task.txt → agenthub/langchains_agent/regression/cases/express/task.txt


+ 0 - 0
agent/regression/cases/express/workspace/index.js → agenthub/langchains_agent/regression/cases/express/workspace/index.js


+ 0 - 0
agent/regression/cases/express/workspace/package-lock.json → agenthub/langchains_agent/regression/cases/express/workspace/package-lock.json


+ 0 - 0
agent/regression/cases/express/workspace/package.json → agenthub/langchains_agent/regression/cases/express/workspace/package.json


+ 0 - 0
agent/regression/cases/hello-name/logs.txt → agenthub/langchains_agent/regression/cases/hello-name/logs.txt


+ 0 - 0
agent/regression/cases/hello-name/start/hello_world.sh → agenthub/langchains_agent/regression/cases/hello-name/start/hello_world.sh


+ 0 - 0
agent/regression/cases/hello-name/task.txt → agenthub/langchains_agent/regression/cases/hello-name/task.txt


+ 0 - 0
agent/regression/cases/hello-name/workspace/hello_world.sh → agenthub/langchains_agent/regression/cases/hello-name/workspace/hello_world.sh


+ 0 - 0
agent/regression/cases/hello-world/logs.txt → agenthub/langchains_agent/regression/cases/hello-world/logs.txt


+ 0 - 0
agent/regression/cases/hello-world/task.txt → agenthub/langchains_agent/regression/cases/hello-world/task.txt


+ 0 - 0
agent/regression/cases/hello-world/workspace/hello_world.sh → agenthub/langchains_agent/regression/cases/hello-world/workspace/hello_world.sh


+ 0 - 0
agent/regression/cases/node-cli-rewrite/logs.txt → agenthub/langchains_agent/regression/cases/node-cli-rewrite/logs.txt


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/commands/length.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/length.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/commands/lowercase.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/lowercase.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/commands/reverse.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/reverse.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/commands/scramble.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/scramble.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/commands/spongebob.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/spongebob.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/commands/uppercase.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/commands/uppercase.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/start/string_cli.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/start/string_cli.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/task.txt → agenthub/langchains_agent/regression/cases/node-cli-rewrite/task.txt


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/cli.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/cli.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/index.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/index.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/length.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/length.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/length.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/length.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/lowercase.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/lowercase.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/lowercase.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/lowercase.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/reverse.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/reverse.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/reverse.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/reverse.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/scramble.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/scramble.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/scramble.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/scramble.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/spongebob.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/spongebob.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/spongebob.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/spongebob.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/uppercase.js → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/uppercase.js


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/commands/uppercase.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/commands/uppercase.py


+ 0 - 0
agent/regression/cases/node-cli-rewrite/workspace/string_cli.py → agenthub/langchains_agent/regression/cases/node-cli-rewrite/workspace/string_cli.py


+ 0 - 0
agent/regression/cases/python-cli-help/logs.txt → agenthub/langchains_agent/regression/cases/python-cli-help/logs.txt


+ 0 - 0
agent/regression/cases/python-cli-help/start/commands/length.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/length.py


+ 0 - 0
agent/regression/cases/python-cli-help/start/commands/lowercase.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/lowercase.py


+ 0 - 0
agent/regression/cases/python-cli-help/start/commands/reverse.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/reverse.py


+ 0 - 0
agent/regression/cases/python-cli-help/start/commands/scramble.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/scramble.py


+ 0 - 0
agent/regression/cases/python-cli-help/start/commands/spongebob.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/spongebob.py


+ 0 - 0
agent/regression/cases/python-cli-help/start/commands/uppercase.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/commands/uppercase.py


+ 0 - 0
agent/regression/cases/python-cli-help/start/string_cli.py → agenthub/langchains_agent/regression/cases/python-cli-help/start/string_cli.py


+ 0 - 0
agent/regression/cases/python-cli-help/task.txt → agenthub/langchains_agent/regression/cases/python-cli-help/task.txt


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/commands/length.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/length.py


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/commands/lowercase.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/lowercase.py


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/commands/reverse.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/reverse.py


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/commands/scramble.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/scramble.py


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/commands/spongebob.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/spongebob.py


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/commands/uppercase.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/commands/uppercase.py


+ 0 - 0
agent/regression/cases/python-cli-help/workspace/string_cli.py → agenthub/langchains_agent/regression/cases/python-cli-help/workspace/string_cli.py


+ 0 - 0
agent/regression/cases/python-cli/logs.txt → agenthub/langchains_agent/regression/cases/python-cli/logs.txt


+ 0 - 0
agent/regression/cases/python-cli/task.txt → agenthub/langchains_agent/regression/cases/python-cli/task.txt


+ 0 - 0
agent/regression/cases/python-cli/workspace/commands/length.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/length.py


+ 0 - 0
agent/regression/cases/python-cli/workspace/commands/lowercase.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/lowercase.py


+ 0 - 0
agent/regression/cases/python-cli/workspace/commands/reverse.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/reverse.py


+ 0 - 0
agent/regression/cases/python-cli/workspace/commands/scramble.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/scramble.py


+ 0 - 0
agent/regression/cases/python-cli/workspace/commands/spongebob.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/spongebob.py


+ 0 - 0
agent/regression/cases/python-cli/workspace/commands/uppercase.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/commands/uppercase.py


+ 0 - 0
agent/regression/cases/python-cli/workspace/string_cli.py → agenthub/langchains_agent/regression/cases/python-cli/workspace/string_cli.py


+ 0 - 0
agent/regression/cases/react-todo/logs.txt → agenthub/langchains_agent/regression/cases/react-todo/logs.txt


Деякі файли не було показано, через те що забагато файлів було змінено