Skip to main content

Agent Module โ€“ Infra API

The Agent API enables executing automation agents via Ansible in two modes: workspace and local. It provides endpoints to trigger execution and check status, with support for traceability via traceId.


POST /agent/executeโ€‹

Initiates the execution of an agent.

๐Ÿงพ Sample Requestโ€‹

Workspace Mode:

{
"workspace": true,
"workspaceId": "vm-8c6d0c9c",
"projectId": "1",
"agentRepoUrl": "git@git.geekyants.com:geekyants/builder-studio-ai/agents/aditya-agent-test.git",
"traceId": "abcdef0123456789abcdef0123456791",
"loggerServiceName": "test-logger-service",
"tracerServiceName": "test-tracer-service"
}

Local Mode:

{
"workspace": false,
"projectId": "1",
"agentRepoUrl": "git@git.geekyants.com:geekyants/builder-studio-ai/agents/aditya-agent-test.git",
"traceId": "abcdef0123456789abcdef0123456791",
"loggerServiceName": "test-logger-service",
"tracerServiceName": "test-tracer-service"
}

Responseโ€‹

{
"traceId": "abcdef0123456789abcdef0123456791"
}

GET /agent/status/:traceIdโ€‹

Fetches the execution status of a previously triggered agent.

Responseโ€‹

{
"status": "running",
"traceId": "abcdef0123456789abcdef0123456791",
"loggerServiceName": "test-logger-service",
"tracerServiceName": "test-tracer-service",
"message": "Agent is currently executing"
}

Execution Modesโ€‹

1. Workspace Execution (Not for Dev/Local Usage)โ€‹

  • Set "workspace": true

  • Requires:

    • workspaceId
  • Used for running agents in isolated workspace environments.

2. Shared Host Execution (Not for Dev/Local Usage)โ€‹

  • Set "workspace": false
  • Does not require workspaceId
  • Used for running agents directly on the Shared Hosts.

Environment-Based Controlโ€‹

Set AGENT_ENV in your environment to control mode:

  • "local" โ†’ Forces local execution.
  • Any other value โ†’ Defaults to workspace-based execution.

Ansible Playbook Pathsโ€‹

export const ansibleAgentPaths = {
runAgentOnPrem: {
playbook: './ansible/agent/agentOnPrem.yml',
inventory: './ansible/agent/environment/hosts.yml',
vars: './ansible/agent/vars/vars.yml'
},
runAgentOnLocal: {
playbook: './ansible/agent/agentOnLocal.yml',
inventory: './ansible/agent/environment/hosts.yml',
vars: './ansible/agent/vars/vars.yml'
}
};

Ansible Playbook Workflowsโ€‹

agentOnPrem.yml โ€“ Workspaceโ€‹

Installs Git & Docker on remote VM

Clones agent repo locally โ†’ syncs to remote host

Builds Docker image & runs container with env vars

Collects logs & cleans up

agentOnLocal.yml โ€“ Localโ€‹

Uses local agent code path

Pulls latest from Git

Builds image & runs Docker container locally

Monitors logs; preserves code for reuse