aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/run-agent.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/run-agent.py')
-rwxr-xr-xscripts/run-agent.py47
1 files changed, 44 insertions, 3 deletions
diff --git a/scripts/run-agent.py b/scripts/run-agent.py
index a3f3ec5..582b792 100755
--- a/scripts/run-agent.py
+++ b/scripts/run-agent.py
@@ -11,7 +11,7 @@ def main():
agent_data = parse_raw_data(raw_data)
root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
- setup_env(root_dir, agent_name)
+ setup_env(root_dir, agent_name, agent_func)
agent_tools_path = os.path.join(root_dir, f"agents/{agent_name}/tools.py")
run(agent_tools_path, agent_func, agent_data)
@@ -49,10 +49,11 @@ def parse_argv(this_file_name):
return agent_name, agent_func, agent_data
-def setup_env(root_dir, agent_name):
+def setup_env(root_dir, agent_name, agent_func):
load_env(os.path.join(root_dir, ".env"))
os.environ["LLM_ROOT_DIR"] = root_dir
os.environ["LLM_AGENT_NAME"] = agent_name
+ os.environ["LLM_AGENT_FUNC"] = agent_func
os.environ["LLM_AGENT_ROOT_DIR"] = os.path.join(root_dir, "agents", agent_name)
os.environ["LLM_AGENT_CACHE_DIR"] = os.path.join(root_dir, "cache", agent_name)
@@ -86,6 +87,42 @@ def run(agent_path, agent_func, agent_data):
value = getattr(mod, agent_func)(**agent_data)
return_to_llm(value)
+ dump_result()
+
+
+def dump_result():
+ if not os.isatty(1):
+ return
+
+ if not os.getenv("LLM_OUTPUT"):
+ return
+
+ show_result = False
+ agent_name = os.environ["LLM_AGENT_NAME"].upper().replace("-", "_")
+ agent_env_name = f"LLM_AGENT_DUMP_RESULT_{agent_name}"
+ agent_env_value = os.getenv(agent_env_name)
+
+ func_name = os.environ["LLM_AGENT_FUNC"].upper().replace("-", "_")
+ func_env_name = f"{agent_env_name}_{func_name}"
+ func_env_value = os.getenv(func_env_name)
+
+ if agent_env_value in ("1", "true"):
+ if func_env_value not in ("0", "false"):
+ show_result = True
+ else:
+ if func_env_value in ("1", "true"):
+ show_result = True
+
+ if not show_result:
+ return
+
+ try:
+ with open(os.environ["LLM_OUTPUT"], "r", encoding="utf-8") as f:
+ data = f.read()
+ except:
+ return
+
+ print(f"\x1b[2m----------------------\n{data}\n----------------------\x1b[0m")
def return_to_llm(value):
@@ -107,4 +144,8 @@ def return_to_llm(value):
if __name__ == "__main__":
- main()
+ try:
+ main()
+ except Exception as e:
+ print(e, file=sys.stderr)
+ sys.exit(1)