Overview
Tool Name
Purpose
Thetalend_tools group lets Genesis Data Agents work with Talend Open Studio
jobs without driving the Studio GUI. Genesis parses a project’s .item files to
list and describe job structure (components, schemas, data flow, lineage summary,
and observed migration evidence),
and executes already-built standalone job artifacts through their
<job>_run.sh launchers.
Talend Open Studio has no headless API, so Genesis targets the two surfaces that
are scriptable offline: project .item/.properties metadata and built job
exports.
Configure paths in Config -> Advanced Settings under the talend section (or
via environment variables). See Talend setup.
Configuration summary
When
talend.runner_url is set, list_talend_jobs reports jobs_dir as the
runner URL and lists built jobs from the remote service. describe_talend_job
still reads local .item files and requires talend.project_path.
Function Reference
Genesis injectsbot_id, user_id, and thread_id automatically. The tables
below list only the user-supplied parameters.
Discovery and inspection
Execution
Return shapes
list_talend_jobs (success):
project_jobs— job names parsed fromprocess/*.itemfiles (inspect withdescribe_talend_job).built_jobs— array of{name, directory}for artifactsrun_talend_jobcan execute.
describe_talend_job (success):
job—name,job_type,context,context_params,components(withrole:input,output, ortransform),connections, andlineage(inputs/outputs).- Each component may also include migration evidence from the
.itemXML:table_valuesfor nested TABLE cells,rulesfor observedtMapmapping or filter expressions and BigQuery SQL, andexternal_referencesfor literal stored-procedure names found in BigQuery SQL. PostgreSQL Input and Row components may also includerctl_table_dependenciesfor static RCTL table names found in their SQL query parameters (QUERY,SQL,SQL_QUERY, orQUERY_TEXT). Each dependency includes its name, XMLsourcelocation, androws_statusofunknown; the SQL and table rows are not returned. Procedure bodies are not available. - Evidence expressions and context defaults are redacted as
[REDACTED]when their names or contents match credential-sensitive patterns. Observed expressions are evidence from the source job, not an approved migration specification.
run_talend_job (success):
run_id,job_name,status("running"), and amessageindicating whether Genesis is watching the remote run. When watched, Genesis wakes the originating thread with the run result after the runner reportssucceeded,failed,timeout, orerror; no follow-upget_talend_runcall is needed. If the run cannot be watched, the message directs the agent to pollget_talend_run.
get_talend_run (success):
status—running,succeeded,failed,timeout, orerror.- When terminal:
exit_code,duration_seconds,timed_out,stdout,stderr(stdout/stderr are tail-truncated to 20,000 characters).
Usage Examples
Notes and limitations
run_talend_jobis refused in a Databricks App, including whentalend.runner_urlpoints to a remote runner. See Talend setup.- Jobs must be built in Talend Studio before
run_talend_jobcan execute them. Genesis runs the standalone<job>_run.shlauncher (ajava -cp ...invocation that needs only a JDK). - For local runs on Linux, Genesis stops processes the job leaves behind when it
exits, times out, or is cancelled, including processes detached with
setsidor a double fork. It sendsSIGTERM, waits up to 5 seconds, then sendsSIGKILLif needed. This cleanup behavior does not describe remote talend-runner execution. describe_talend_jobparses Talend 8 DI.itemXML locally. It does not call Talend Studio or Talend Cloud.- Run state is in-memory. If the Genesis server restarts, earlier
run_idvalues may no longer resolve. - If Genesis cannot hand the job to its serving loop,
run_talend_jobmarks the stored runerrorwith a completion timestamp before returning the scheduling error. Do not keep polling that run as if it were still running. - For scheduler-driven orchestration of non-Talend jobs, use JAMS tools or Airflow Tools instead.
- Twin’s Talend lineage scanner reuses the same
.itemparser for Context Graph ingestion. See Digital Twin and Context Graph.
Troubleshooting
Both project_jobs and built_jobs are empty
Both project_jobs and built_jobs are empty
- Confirm
talend.project_pathpoints at a Talend project withprocess/*.itemfiles. - Confirm
talend.jobs_dircontains unzipped Build Job exports, each with a<job>_run.shscript. - When using a remote runner, verify
talend.runner_urlis reachable and returns jobs fromGET /jobs. - Call
list_talend_jobsand report the resolvedproject_pathandjobs_dirfrom the response.
describe_talend_job fails with no project configured
describe_talend_job fails with no project configured
- Set
talend.project_pathto a checkout of the Talend project on the Genesis host. - The remote talend-runner lists and runs built jobs only; it does not expose
.iteminternals.
run_talend_job cannot find the artifact
run_talend_job cannot find the artifact
- Use the exact
job_namefromlist_talend_jobs→built_jobs. - Rebuild the job in Talend Studio and export it to
talend.jobs_dir(or the runner’s jobs directory).
get_talend_run returns unknown run_id
get_talend_run returns unknown run_id
- Poll the same Genesis instance that started the run.
- Run state is not persisted across server restarts — submit the job again if needed.
Invalid context_params
Invalid context_params
- Pass a JSON object string with string values, for example
{"key": "value"}. - Genesis maps each key/value to Talend’s
--context_param key=valuelauncher flags.

