refactor: Agents that depend on global tools now have all binaries compiled and stored in the agent's bin directory so multiple agents can run at once

This commit is contained in:
2025-11-04 11:29:59 -07:00
parent 843abe0621
commit 2f3586cbbf
20 changed files with 342 additions and 48 deletions
+1 -2
View File
@@ -3,9 +3,8 @@ set -e
# @env LLM_OUTPUT=/dev/stdout The output path
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
# @cmd Create a new file at the specified path with the given contents.
# @option --path! The path where the file should be created
+1 -2
View File
@@ -6,9 +6,8 @@ set -e
# @env LLM_OUTPUT=/dev/stdout The output path
# @env LLM_AGENT_VAR_DSN! The database connection url. e.g. pgsql://user:pass@host:port
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
# @cmd Execute a SELECT query
# @option --query! SELECT SQL query to execute
+1
View File
@@ -27,6 +27,7 @@ setup_env() {
export LLM_AGENT_FUNC="$agent_func"
export LLM_AGENT_ROOT_DIR="$LLM_ROOT_DIR/agents/{agent_name}"
export LLM_AGENT_CACHE_DIR="$LLM_ROOT_DIR/cache/{agent_name}"
export LLM_PROMPT_UTILS_FILE="{prompt_utils_file}"
}
load_env() {
+3 -3
View File
@@ -31,10 +31,10 @@ def main():
raw_data = parse_argv()
tool_data = parse_raw_data(raw_data)
root_dir = "{config_dir}/functions"
root_dir = "{root_dir}"
setup_env(root_dir)
tool_path = os.path.join(root_dir, "tools/{function_name}.py")
tool_path = "{tool_path}.py"
run(tool_path, "run", tool_data)
@@ -150,4 +150,4 @@ def dump_result(name):
if __name__ == "__main__":
main()
main()
+3 -2
View File
@@ -5,10 +5,10 @@
set -e
main() {
root_dir="{config_dir}/functions"
root_dir="{root_dir}"
parse_argv "$@"
setup_env
tool_path="$root_dir/tools/{function_name}.sh"
tool_path="{tool_path}.sh"
run
}
@@ -24,6 +24,7 @@ setup_env() {
export LLM_ROOT_DIR="$root_dir"
export LLM_TOOL_NAME="{function_name}"
export LLM_TOOL_CACHE_DIR="$LLM_ROOT_DIR/cache/{function_name}"
export LLM_PROMPT_UTILS_FILE="{prompt_utils_file}"
}
load_env() {
+1 -2
View File
@@ -6,9 +6,8 @@ set -e
# @env LLM_OUTPUT=/dev/stdout The output path
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
main() {
guard_operation
+1 -2
View File
@@ -9,9 +9,8 @@ set -e
# @env USQL_DSN! The database connection url. e.g. pgsql://user:pass@host:port
# @env LLM_OUTPUT=/dev/stdout The output path
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
# shellcheck disable=SC2154
main() {
+1 -2
View File
@@ -9,9 +9,8 @@ set -e
# @env LLM_OUTPUT=/dev/stdout The output path
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
# shellcheck disable=SC2154
main() {
+1 -2
View File
@@ -7,9 +7,8 @@ set -e
# @env LLM_OUTPUT=/dev/stdout The output path
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
# shellcheck disable=SC2154
main() {
+1 -2
View File
@@ -8,9 +8,8 @@ set -e
# @env LLM_OUTPUT=/dev/stdout The output path
PROMPT_UTILS="${LLM_ROOT_DIR:-$(dirname "${BASH_SOURCE[0]}")/..}/functions/utils/prompt-utils.sh"
# shellcheck disable=SC1090
source "$PROMPT_UTILS"
source "$LLM_PROMPT_UTILS_FILE"
# shellcheck disable=SC2154
main() {