ವರ್ಕ್ಫ್ಲೋಗಳು
Triggerfish ನಲ್ಲಿ CNCF Serverless Workflow DSL 1.0 ಗಾಗಿ ಅಂತರ್ನಿರ್ಮಿತ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಎಂಜಿನ್ ಇದೆ. ವರ್ಕ್ಫ್ಲೋಗಳು YAML ನಲ್ಲಿ ನಿರ್ಧಾರಾತ್ಮಕ, ಬಹು-ಹಂತದ ಸ್ವಯಂಚಾಲನೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ, ಇವು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದಲ್ಲಿ LLM ಇಲ್ಲದೆ ರನ್ ಆಗುತ್ತವೆ. ಏಜೆಂಟ್ ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು ರಚಿಸಿ ಟ್ರಿಗರ್ ಮಾಡುತ್ತದೆ, ಆದರೆ ಎಂಜಿನ್ ನಿಜವಾದ ಕಾರ್ಯ ಡಿಸ್ಪ್ಯಾಚ್, ಶಾಖೆ ಮಾಡುವಿಕೆ, ಲೂಪಿಂಗ್ ಮತ್ತು ಡೇಟಾ ಹರಿವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು
ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು ಬಳಸಿ — ಹಂತಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿರುವ ಪುನರಾವರ್ತನೀಯ, ನಿರ್ಧಾರಾತ್ಮಕ ಅನುಕ್ರಮಗಳಿಗೆ ಸೂಕ್ತ: API ಯಿಂದ ಡೇಟಾ ತಂದು, ಪರಿವರ್ತಿಸಿ, ಮೆಮೊರಿಗೆ ಉಳಿಸಿ, ಅಧಿಸೂಚನೆ ಕಳುಹಿಸಿ. ಒಂದೇ ಇನ್ಪುಟ್ ಯಾವಾಗಲೂ ಒಂದೇ ಔಟ್ಪುಟ್ ಉತ್ಪಾದಿಸುತ್ತದೆ.
ಏಜೆಂಟ್ ಅನ್ನು ನೇರವಾಗಿ ಬಳಸಿ — ಮುಕ್ತ ತಾರ್ಕಿಕತೆ, ಅನ್ವೇಷಣೆ ಅಥವಾ ಮುಂದಿನ ಹಂತ ತೀರ್ಪನ್ನು ಅವಲಂಬಿಸಿರುವ ಕಾರ್ಯಗಳಿಗೆ ಸೂಕ್ತ: ವಿಷಯ ಸಂಶೋಧನೆ, ಕೋಡ್ ಬರೆಯುವುದು, ಸಮಸ್ಯೆ ಪರಿಹರಿಸುವುದು.
ಉತ್ತಮ ಮಾರ್ಗದರ್ಶಿ ಸೂತ್ರ: ಏಜೆಂಟ್ಗೆ ಒಂದೇ ಬಹು-ಹಂತದ ಅನುಕ್ರಮವನ್ನು ಪದೇ ಪದೇ ಕೇಳುತ್ತಿದ್ದರೆ, ಅದನ್ನು ವರ್ಕ್ಫ್ಲೋ ಆಗಿ ಪರಿವರ್ತಿಸಿ.
ಲಭ್ಯತೆ
ವರ್ಕ್ಫ್ಲೋಗಳು ಎಲ್ಲಾ ಯೋಜನೆಗಳಲ್ಲಿ ಲಭ್ಯವಿವೆ. ಸ್ವಂತ API ಕೀಗಳೊಂದಿಗೆ ರನ್ ಆಗುವ ಮುಕ್ತ ಮೂಲ ಬಳಕೆದಾರರಿಗೆ ವರ್ಕ್ಫ್ಲೋ ಎಂಜಿನ್ಗೆ ಸಂಪೂರ್ಣ ಪ್ರವೇಶವಿದೆ — ವರ್ಕ್ಫ್ಲೋ ಒಳಗಿನ ಪ್ರತಿ triggerfish:llm ಅಥವಾ triggerfish:agent ಕರೆ ನಿಮ್ಮ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಪ್ರೊವೈಡರ್ನ ಇನ್ಫರೆನ್ಸ್ ಬಳಸುತ್ತದೆ.
ಉಪಕರಣಗಳು
workflow_save
ವರ್ಕ್ಫ್ಲೋ ವ್ಯಾಖ್ಯಾನವನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ, ಮೌಲ್ಯೀಕರಿಸಿ, ಸಂಗ್ರಹಿಸುತ್ತದೆ. ವರ್ಕ್ಫ್ಲೋ ಪ್ರಸ್ತುತ ಸೆಶನ್ನ ವರ್ಗೀಕರಣ ಮಟ್ಟದಲ್ಲಿ ಉಳಿಸಲ್ಪಡುತ್ತದೆ.
| Parameter | Type | Required | ವಿವರಣೆ |
|---|---|---|---|
name | string | yes | ವರ್ಕ್ಫ್ಲೋಗೆ ಹೆಸರು |
yaml | string | yes | YAML ವರ್ಕ್ಫ್ಲೋ ವ್ಯಾಖ್ಯಾನ |
description | string | no | ವರ್ಕ್ಫ್ಲೋ ಏನು ಮಾಡುತ್ತದೆ |
workflow_run
ಹೆಸರು ಅಥವಾ ಇನ್ಲೈನ್ YAML ಮೂಲಕ ವರ್ಕ್ಫ್ಲೋ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಕಾರ್ಯಗತಗೊಳಿಸುವ ಔಟ್ಪುಟ್ ಮತ್ತು ಸ್ಥಿತಿಯನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ.
| Parameter | Type | Required | ವಿವರಣೆ |
|---|---|---|---|
name | string | no | ಕಾರ್ಯಗತಗೊಳಿಸಲು ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋದ ಹೆಸರು |
yaml | string | no | ಇನ್ಲೈನ್ YAML ವ್ಯಾಖ್ಯಾನ (ಉಳಿಸಿದ್ದನ್ನು ಬಳಸದಿದ್ದಾಗ) |
input | string | no | ವರ್ಕ್ಫ್ಲೋಗಾಗಿ ಇನ್ಪುಟ್ ಡೇಟಾದ JSON ಸ್ಟ್ರಿಂಗ್ |
name ಅಥವಾ yaml ಒಂದು ಅಗತ್ಯ.
workflow_list
ಪ್ರಸ್ತುತ ವರ್ಗೀಕರಣ ಮಟ್ಟದಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದಾದ ಎಲ್ಲಾ ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ. ಯಾವುದೇ ಪ್ಯಾರಾಮೀಟರ್ಗಳಿಲ್ಲ.
workflow_get
ಹೆಸರಿನ ಮೂಲಕ ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ.
| Parameter | Type | Required | ವಿವರಣೆ |
|---|---|---|---|
name | string | yes | ಹಿಂಪಡೆಯಲು ವರ್ಕ್ಫ್ಲೋದ ಹೆಸರು |
workflow_delete
ಹೆಸರಿನ ಮೂಲಕ ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋ ಅಳಿಸುತ್ತದೆ. ವರ್ಕ್ಫ್ಲೋ ಪ್ರಸ್ತುತ ಸೆಶನ್ನ ವರ್ಗೀಕರಣ ಮಟ್ಟದಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದಾಗಿರಬೇಕು.
| Parameter | Type | Required | ವಿವರಣೆ |
|---|---|---|---|
name | string | yes | ಅಳಿಸಲು ವರ್ಕ್ಫ್ಲೋದ ಹೆಸರು |
workflow_history
ಹಿಂದಿನ ವರ್ಕ್ಫ್ಲೋ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶಗಳನ್ನು ವೀಕ್ಷಿಸುತ್ತದೆ, ಐಚ್ಛಿಕವಾಗಿ ವರ್ಕ್ಫ್ಲೋ ಹೆಸರಿನ ಮೂಲಕ ಫಿಲ್ಟರ್ ಮಾಡಬಹುದು.
| Parameter | Type | Required | ವಿವರಣೆ |
|---|---|---|---|
workflow_name | string | no | ವರ್ಕ್ಫ್ಲೋ ಹೆಸರಿನ ಮೂಲಕ ಫಲಿತಾಂಶಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ |
limit | string | no | ಗರಿಷ್ಠ ಫಲಿತಾಂಶಗಳ ಸಂಖ್ಯೆ (ಡೀಫಾಲ್ಟ್ 10) |
ಕಾರ್ಯ ವಿಧಗಳು
ವರ್ಕ್ಫ್ಲೋಗಳು ಒಂದು do: ಬ್ಲಾಕ್ನಲ್ಲಿ ಕಾರ್ಯಗಳಿಂದ ರಚಿಸಲ್ಪಡುತ್ತವೆ. ಪ್ರತಿ ಕಾರ್ಯ ಒಂದು ವಿಧ-ನಿರ್ದಿಷ್ಟ ದೇಹದೊಂದಿಗೆ ಹೆಸರಿಟ್ಟ ನಮೂದು. Triggerfish 8 ಕಾರ್ಯ ವಿಧಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
call — ಬಾಹ್ಯ ಕರೆಗಳು
HTTP ಎಂಡ್ಪಾಯಿಂಟ್ಗಳು ಅಥವಾ Triggerfish ಸೇವೆಗಳಿಗೆ ಡಿಸ್ಪ್ಯಾಚ್ ಮಾಡುತ್ತದೆ.
yaml
- fetch_issue:
call: http
with:
endpoint: "https://api.github.com/repos/${ .repo }/issues/${ .issue_number }"
method: GET
headers:
Authorization: "Bearer ${ .github_token }"call ಕ್ಷೇತ್ರ ಡಿಸ್ಪ್ಯಾಚ್ ಗುರಿಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಸಂಪೂರ್ಣ ಮ್ಯಾಪಿಂಗ್ಗಾಗಿ ಕರೆ ಡಿಸ್ಪ್ಯಾಚ್ ನೋಡಿ.
run — ಶೆಲ್, ಸ್ಕ್ರಿಪ್ಟ್ ಅಥವಾ ಉಪ-ವರ್ಕ್ಫ್ಲೋ
ಶೆಲ್ ಆದೇಶ, ಇನ್ಲೈನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅಥವಾ ಮತ್ತೊಂದು ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
ಶೆಲ್ ಆದೇಶ:
yaml
- list_files:
run:
shell:
command: "ls -la /tmp/workspace"ಉಪ-ವರ್ಕ್ಫ್ಲೋ:
yaml
- cleanup:
run:
workflow:
name: cleanup-temp-files
input:
directory: "${ .workspace }"WARNING
ಶೆಲ್ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಕಾರ್ಯಗತಗೊಳಿಸಲು ವರ್ಕ್ಫ್ಲೋ ಉಪಕರಣ ಸಂದರ್ಭದಲ್ಲಿ allowShellExecution ಫ್ಲ್ಯಾಗ್ ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ, shell ಅಥವಾ script ಗುರಿಗಳೊಂದಿಗೆ ರನ್ ಕಾರ್ಯಗಳು ವಿಫಲವಾಗುತ್ತವೆ.
set — ಡೇಟಾ ಸಂದರ್ಭ ಬದಲಾವಣೆಗಳು
ವರ್ಕ್ಫ್ಲೋದ ಡೇಟಾ ಸಂದರ್ಭಕ್ಕೆ ಮೌಲ್ಯಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ. ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
yaml
- prepare_prompt:
set:
summary_prompt: "Summarize the following GitHub issue: ${ .fetch_issue.title } — ${ .fetch_issue.body }"
issue_url: "https://github.com/${ .repo }/issues/${ .issue_number }"switch — ಷರತ್ತುಬದ್ಧ ಶಾಖೆ
ಷರತ್ತುಗಳ ಆಧಾರದ ಮೇಲೆ ಶಾಖೆ ಮಾಡುತ್ತದೆ. ಪ್ರತಿ ಪ್ರಕರಣಕ್ಕೆ ಒಂದು when ಅಭಿವ್ಯಕ್ತಿ ಮತ್ತು ಒಂದು then ಹರಿವು ನಿರ್ದೇಶಕ ಇರುತ್ತದೆ. when ಇಲ್ಲದ ಪ್ರಕರಣ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.
yaml
- check_priority:
switch:
- high_priority:
when: "${ .fetch_issue.labels }"
then: notify_team
- default:
then: continuefor — ಪುನರಾವರ್ತನೆ
ಒಂದು ಸಂಗ್ರಹದ ಮೇಲೆ ಲೂಪ್ ಮಾಡಿ, ಪ್ರತಿ ಐಟಂಗೆ ಅಳವಡಿಸಿದ do: ಬ್ಲಾಕ್ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
yaml
- process_items:
for:
each: item
in: "${ .items }"
at: index
do:
- log_item:
set:
current: "${ .item }"each ಕ್ಷೇತ್ರ ಲೂಪ್ ವೇರಿಯೇಬಲ್ಗೆ ಹೆಸರು ನೀಡುತ್ತದೆ, in ಸಂಗ್ರಹವನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ, ಮತ್ತು ಐಚ್ಛಿಕ at ಕ್ಷೇತ್ರ ಪ್ರಸ್ತುತ ಸೂಚ್ಯಂಕ ಒದಗಿಸುತ್ತದೆ.
raise — ದೋಷದೊಂದಿಗೆ ನಿಲ್ಲಿಸಿ
ರಚನಾತ್ಮಕ ದೋಷದೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ ನಿಲ್ಲಿಸುತ್ತದೆ.
yaml
- fail_if_missing:
if: "${ .result == null }"
raise:
error:
status: 404
type: "not-found"
title: "Resource not found"
detail: "The requested item does not exist"emit — ಘಟನೆಗಳನ್ನು ದಾಖಲಿಸಿ
ವರ್ಕ್ಫ್ಲೋ ಘಟನೆ ದಾಖಲಿಸುತ್ತದೆ. ಘಟನೆಗಳನ್ನು ರನ್ ಫಲಿತಾಂಶದಲ್ಲಿ ಸೆರೆಹಿಡಿಯಲಾಗುತ್ತದೆ ಮತ್ತು workflow_history ಮೂಲಕ ಪರಿಶೀಲಿಸಬಹುದು.
yaml
- log_completion:
emit:
event:
type: "issue.summarized"
source: "workflow/summarize-issue"
data:
issue_number: "${ .issue_number }"
summary_length: "${ .summary.length }"wait — ನಿದ್ರೆ
ISO 8601 ಅವಧಿಯವರೆಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ ವಿರಾಮಗೊಳಿಸುತ್ತದೆ.
yaml
- rate_limit_pause:
wait: PT2Sಕರೆ ಡಿಸ್ಪ್ಯಾಚ್
ಕರೆ ಕಾರ್ಯದಲ್ಲಿ call ಕ್ಷೇತ್ರ ಯಾವ Triggerfish ಉಪಕರಣ ಅಹ್ವಾನಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
| ಕರೆ ವಿಧ | Triggerfish ಉಪಕರಣ | ಅಗತ್ಯ with: ಕ್ಷೇತ್ರಗಳು |
|---|---|---|
http | web_fetch | endpoint (ಅಥವಾ url), method |
triggerfish:llm | llm_task | prompt (ಅಥವಾ task) |
triggerfish:agent | subagent | prompt (ಅಥವಾ task) |
triggerfish:memory | memory_* | operation + ಕಾರ್ಯಾಚರಣೆ-ನಿರ್ದಿಷ್ಟ ಕ್ಷೇತ್ರಗಳು |
triggerfish:web_search | web_search | query |
triggerfish:web_fetch | web_fetch | url |
triggerfish:mcp | mcp__<server>__<tool> | server, tool, arguments |
triggerfish:message | send_message | channel, text |
ಮೆಮೊರಿ ಕಾರ್ಯಾಚರಣೆಗಳು: triggerfish:memory ಕರೆ ವಿಧಕ್ಕೆ operation ಕ್ಷೇತ್ರ save, search, get, list ಅಥವಾ delete ಎಂದು ಹೊಂದಿಸಬೇಕು. ಉಳಿದ with: ಕ್ಷೇತ್ರಗಳನ್ನು ಅನುಗುಣವಾದ ಮೆಮೊರಿ ಉಪಕರಣಕ್ಕೆ ನೇರವಾಗಿ ರವಾನಿಸಲಾಗುತ್ತದೆ.
yaml
- save_summary:
call: triggerfish:memory
with:
operation: save
content: "${ .summary }"
tags: ["github", "issue-summary"]MCP ಕರೆಗಳು: triggerfish:mcp ಕರೆ ವಿಧ ಯಾವುದೇ ಸಂಪರ್ಕಿತ MCP ಸರ್ವರ್ ಉಪಕರಣಕ್ಕೆ ರೂಟ್ ಮಾಡುತ್ತದೆ. server ಹೆಸರು, tool ಹೆಸರು ಮತ್ತು arguments ಆಬ್ಜೆಕ್ಟ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿ.
yaml
- run_lint:
call: triggerfish:mcp
with:
server: eslint
tool: lint-files
arguments:
paths: ["src/"]ಅಭಿವ್ಯಕ್ತಿಗಳು
ವರ್ಕ್ಫ್ಲೋ ಅಭಿವ್ಯಕ್ತಿಗಳು ವರ್ಕ್ಫ್ಲೋದ ಡೇಟಾ ಸಂದರ್ಭದ ವಿರುದ್ಧ ಡಾಟ್-ಪಾತ್ ರೆಸಲ್ಯೂಶನ್ನೊಂದಿಗೆ ${ } ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸುತ್ತವೆ.
yaml
# ಸರಳ ಮೌಲ್ಯ ಉಲ್ಲೇಖ
url: "${ .config.api_url }"
# ಅರೇ ಇಂಡೆಕ್ಸಿಂಗ್
first_item: "${ .results[0].name }"
# ಸ್ಟ್ರಿಂಗ್ ಇಂಟರ್ಪೊಲೇಶನ್ (ಒಂದು ಸ್ಟ್ರಿಂಗ್ನಲ್ಲಿ ಬಹು ಅಭಿವ್ಯಕ್ತಿಗಳು)
message: "Found ${ .count } issues in ${ .repo }"
# ಹೋಲಿಕೆ (ಬೂಲಿಯನ್ ಹಿಂದಿರುಗಿಸುತ್ತದೆ)
if: "${ .status == 'open' }"
# ಅಂಕಗಣಿತ
total: "${ .price * .quantity }"ಬೆಂಬಲಿತ ಆಪರೇಟರ್ಗಳು:
- ಹೋಲಿಕೆ:
==,!=,>,<,>=,<= - ಅಂಕಗಣಿತ:
+,-,*,/,%
ಅಕ್ಷರ ಮೌಲ್ಯಗಳು: ಸ್ಟ್ರಿಂಗ್ ("value" ಅಥವಾ 'value'), ಸಂಖ್ಯೆ (42, 3.14), ಬೂಲಿಯನ್ (true, false), null (null).
ಒಂದು ${ } ಅಭಿವ್ಯಕ್ತಿ ಸಂಪೂರ್ಣ ಮೌಲ್ಯವಾಗಿದ್ದಾಗ, ಕಚ್ಚಾ ವಿಧ ಸಂರಕ್ಷಿಸಲ್ಪಡುತ್ತದೆ (ಸಂಖ್ಯೆ, ಬೂಲಿಯನ್, ಆಬ್ಜೆಕ್ಟ್). ಪಠ್ಯದೊಂದಿಗೆ ಮಿಶ್ರಣವಾದಾಗ, ಫಲಿತಾಂಶ ಯಾವಾಗಲೂ ಸ್ಟ್ರಿಂಗ್ ಆಗಿರುತ್ತದೆ.
ಸಂಪೂರ್ಣ ಉದಾಹರಣೆ
ಈ ವರ್ಕ್ಫ್ಲೋ GitHub ಸಮಸ್ಯೆ ತಂದು, LLM ನೊಂದಿಗೆ ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸಿ, ಸಂಕ್ಷಿಪ್ತ ಮೆಮೊರಿಗೆ ಉಳಿಸಿ, ಅಧಿಸೂಚನೆ ಕಳುಹಿಸುತ್ತದೆ.
yaml
document:
dsl: "1.0"
namespace: examples
name: summarize-github-issue
version: "1.0.0"
description: Fetch a GitHub issue, summarize it, and notify the team.
classification_ceiling: INTERNAL
do:
- fetch_issue:
call: http
with:
endpoint: "https://api.github.com/repos/${ .repo }/issues/${ .issue_number }"
method: GET
headers:
Authorization: "Bearer ${ .github_token }"
Accept: application/vnd.github+json
- prepare_context:
set:
issue_title: "${ .fetch_issue.title }"
issue_body: "${ .fetch_issue.body }"
- summarize:
call: triggerfish:llm
with:
task: "Summarize this GitHub issue in 2-3 sentences:\n\nTitle: ${ .issue_title }\n\nBody: ${ .issue_body }"
- save_to_memory:
call: triggerfish:memory
with:
operation: save
content: "Issue #${ .issue_number } (${ .issue_title }): ${ .summarize }"
tags: ["github", "issue-summary", "${ .repo }"]
- notify:
call: triggerfish:message
with:
channel: telegram
text: "Issue #${ .issue_number } summarized: ${ .summarize }"ರನ್ ಮಾಡಿ:
workflow_run with name: "summarize-github-issue" and input:
{"repo": "myorg/myrepo", "issue_number": 42, "github_token": "ghp_..."}ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ರೂಪಾಂತರಗಳು
ಕಾರ್ಯಗಳು ಕಾರ್ಯಗತಗೊಳಿಸಲುPrevious ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಮೊದಲು ತಮ್ಮ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ರೂಪಾಂತರಿಸಬಹುದು.
yaml
- fetch_data:
call: http
with:
endpoint: "${ .api_url }"
input:
from: "${ .config }"
output:
from:
items: "${ .fetch_data.data.results }"
total: "${ .fetch_data.data.count }"input.from— ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮುಂಚೆ ಕಾರ್ಯದ ಇನ್ಪುಟ್ ಸಂದರ್ಭ ಬದಲಾಯಿಸುವ ಅಭಿವ್ಯಕ್ತಿ ಅಥವಾ ಆಬ್ಜೆಕ್ಟ್ ಮ್ಯಾಪಿಂಗ್.output.from— ಡೇಟಾ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಗ್ರಹಿಸುವ ಮುಂಚೆ ಕಾರ್ಯ ಫಲಿತಾಂಶ ಮರು-ರೂಪಿಸುವ ಅಭಿವ್ಯಕ್ತಿ ಅಥವಾ ಆಬ್ಜೆಕ್ಟ್ ಮ್ಯಾಪಿಂಗ್.
ಹರಿವು ನಿಯಂತ್ರಣ
ಪ್ರತಿ ಕಾರ್ಯ ಮುಂದೆ ಏನಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸುವ then ನಿರ್ದೇಶಕ ಸೇರಿಸಬಹುದು:
continue(ಡೀಫಾಲ್ಟ್) — ಅನುಕ್ರಮದಲ್ಲಿ ಮುಂದಿನ ಕಾರ್ಯಕ್ಕೆ ಮುಂದುವರಿಯಿರಿend— ವರ್ಕ್ಫ್ಲೋ ತಕ್ಷಣ ನಿಲ್ಲಿಸಿ (ಸ್ಥಿತಿ: completed)- ಹೆಸರಿಟ್ಟ ಕಾರ್ಯ — ಹೆಸರಿನ ಮೂಲಕ ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಕ್ಕೆ ಜಿಗಿಯಿರಿ
yaml
- validate:
switch:
- invalid:
when: "${ .input.email == null }"
then: handle_error
- valid:
then: continue
- process:
call: triggerfish:llm
with:
task: "Process ${ .input.email }"
then: end
- handle_error:
raise:
error:
status: 400
type: "validation-error"
title: "Missing email"ಷರತ್ತುಬದ್ಧ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ
ಯಾವುದೇ ಕಾರ್ಯ if ಕ್ಷೇತ್ರ ಸೇರಿಸಬಹುದು. ಷರತ್ತು ಸುಳ್ಳು ಎಂದು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದಾಗ ಕಾರ್ಯ ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ.
yaml
- send_alert:
if: "${ .severity == 'critical' }"
call: triggerfish:message
with:
channel: telegram
text: "CRITICAL: ${ .alert_message }"ಉಪ-ವರ್ಕ್ಫ್ಲೋಗಳು
workflow ಗುರಿಯೊಂದಿಗೆ run ಕಾರ್ಯ ಮತ್ತೊಂದು ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಉಪ-ವರ್ಕ್ಫ್ಲೋ ತನ್ನದೇ ಸಂದರ್ಭದೊಂದಿಗೆ ರನ್ ಆಗಿ ತನ್ನ ಔಟ್ಪುಟ್ ಮೂಲ ವರ್ಕ್ಫ್ಲೋಗೆ ಹಿಂದಿರುಗಿಸುತ್ತದೆ.
yaml
- enrich_data:
run:
workflow:
name: data-enrichment-pipeline
input:
raw_data: "${ .fetched_data }"ಉಪ-ವರ್ಕ್ಫ್ಲೋಗಳು 5 ಮಟ್ಟಗಳವರೆಗೆ ಅಳವಡಿಸಬಹುದು. ಈ ಮಿತಿ ಮೀರಿದರೆ ದೋಷ ಉತ್ಪಾದಿಸಿ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ ನಿಲ್ಲಿಸಲಾಗುತ್ತದೆ.
ವರ್ಗೀಕರಣ ಮತ್ತು ಭದ್ರತೆ
ವರ್ಕ್ಫ್ಲೋಗಳು ಇತರ ಎಲ್ಲಾ Triggerfish ಡೇಟಾದಂತೆ ಒಂದೇ ವರ್ಗೀಕರಣ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಭಾಗವಹಿಸುತ್ತವೆ.
ಸಂಗ್ರಹಣ ವರ್ಗೀಕರಣ. workflow_save ನೊಂದಿಗೆ ವರ್ಕ್ಫ್ಲೋ ಉಳಿಸಿದಾಗ, ಅದು ಪ್ರಸ್ತುತ ಸೆಶನ್ನ taint ಮಟ್ಟದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲ್ಪಡುತ್ತದೆ. CONFIDENTIAL ಸೆಶನ್ ಸಮಯದಲ್ಲಿ ಉಳಿಸಿದ ವರ್ಕ್ಫ್ಲೋ ಕೇವಲ CONFIDENTIAL ಅಥವಾ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಸೆಶನ್ಗಳಿಂದ ಮಾತ್ರ ಲೋಡ್ ಮಾಡಬಹುದು.
ವರ್ಗೀಕರಣ ಮೇಲ್ಮಿತಿ. ವರ್ಕ್ಫ್ಲೋಗಳು ತಮ್ಮ YAML ನಲ್ಲಿ classification_ceiling ಘೋಷಿಸಬಹುದು. ಪ್ರತಿ ಕಾರ್ಯ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮುಂಚೆ, ಎಂಜಿನ್ ಸೆಶನ್ನ ಪ್ರಸ್ತುತ taint ಮೇಲ್ಮಿತಿ ಮೀರದಂತೆ ಪರಿಶೀಲಿಸುತ್ತದೆ. ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದಲ್ಲಿ ಸೆಶನ್ taint ಮೇಲ್ಮಿತಿ ಮೀರಿದರೆ (ಉದಾ: ಉಪಕರಣ ಕರೆ ಮೂಲಕ ವರ್ಗೀಕೃತ ಡೇಟಾ ಪ್ರವೇಶಿಸುವ ಮೂಲಕ), ವರ್ಕ್ಫ್ಲೋ ಮೇಲ್ಮಿತಿ ಉಲ್ಲಂಘನೆ ದೋಷದೊಂದಿಗೆ ನಿಲ್ಲಿಸಲಾಗುತ್ತದೆ.
yaml
classification_ceiling: INTERNALಮಾನ್ಯ ಮೌಲ್ಯಗಳು: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED.
ರನ್ ಇತಿಹಾಸ. ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶಗಳನ್ನು ಪೂರ್ಣಗೊಂಡ ಸಮಯದಲ್ಲಿ ಸೆಶನ್ನ ವರ್ಗೀಕರಣದೊಂದಿಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. workflow_history canFlowTo ಮೂಲಕ ಫಲಿತಾಂಶಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು ಪ್ರಸ್ತುತ ಸೆಶನ್ taint ನ ಕೆಳಗಿನ ರನ್ಗಳನ್ನು ಮಾತ್ರ ನೋಡುತ್ತೀರಿ.
ಭದ್ರತೆ
ವರ್ಕ್ಫ್ಲೋ ಅಳಿಸಲು ಅದು ಪ್ರಸ್ತುತ ಸೆಶನ್ನ ವರ್ಗೀಕರಣ ಮಟ್ಟದಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದಾಗಿರಬೇಕು. PUBLIC ಸೆಶನ್ನಿಂದ CONFIDENTIAL ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ವರ್ಕ್ಫ್ಲೋ ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. workflow_delete ಉಪಕರಣ ಮೊದಲು ವರ್ಕ್ಫ್ಲೋ ಲೋಡ್ ಮಾಡಿ, ವರ್ಗೀಕರಣ ಪರಿಶೀಲನೆ ವಿಫಲವಾದರೆ "ಕಂಡುಬಂದಿಲ್ಲ" ಹಿಂದಿರುಗಿಸುತ್ತದೆ.
ಸ್ವಯಂ-ಗುಣಪಡಿಸುವಿಕೆ
ವರ್ಕ್ಫ್ಲೋಗಳು ಐಚ್ಛಿಕವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ನೈಜ ಸಮಯದಲ್ಲಿ ಗಮನಿಸಿ, ವೈಫಲ್ಯಗಳನ್ನು ರೋಗ ನಿರ್ಣಯಿಸಿ, ಸರಿಪಡಿಸುವಿಕೆ ಸೂಚಿಸುವ ಸ್ವಾಯತ್ತ ಗುಣಪಡಿಸುವ ಏಜೆಂಟ್ ಹೊಂದಬಹುದು. ಸ್ವಯಂ-ಗುಣಪಡಿಸುವಿಕೆ ಸಕ್ರಿಯಗೊಂಡಾಗ, ವರ್ಕ್ಫ್ಲೋ ರನ್ನೊಂದಿಗೆ ಮುಂಚೂಣಿ ಏಜೆಂಟ್ ರಚಿಸಲ್ಪಡುತ್ತದೆ. ಅದು ಪ್ರತಿ ಹಂತದ ಘಟನೆ ಗಮನಿಸುತ್ತದೆ, ವೈಫಲ್ಯಗಳನ್ನು ವರ್ಗೀಕರಿಸುತ್ತದೆ, ಮತ್ತು ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ತಜ್ಞ ತಂಡಗಳನ್ನು ಸಂಘಟಿಸುತ್ತದೆ.
ಸ್ವಯಂ-ಗುಣಪಡಿಸುವಿಕೆ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ
ವರ್ಕ್ಫ್ಲೋದ metadata.triggerfish ವಿಭಾಗದಲ್ಲಿ ಒಂದು self_healing ಬ್ಲಾಕ್ ಸೇರಿಸಿ:
yaml
document:
dsl: "1.0"
namespace: ops
name: data-pipeline
metadata:
triggerfish:
self_healing:
enabled: true
retry_budget: 3
approval_required: true
pause_on_intervention: blocking_only
do:
- fetch-data:
call: http
with:
endpoint: "https://api.example.com/data"
metadata:
description: "Fetch raw invoice data from billing API"
expects: "API returns JSON array of invoice objects"
produces: "Array of {id, amount, status, date} objects"enabled: true ಆದಾಗ, ಪ್ರತಿ ಹಂತ ಕಡ್ಡಾಯವಾಗಿ ಮೂರು ಮೆಟಾಡೇಟಾ ಕ್ಷೇತ್ರಗಳನ್ನು ಒಳಗೊಂಡಿರಬೇಕು:
| ಕ್ಷೇತ್ರ | ವಿವರಣೆ |
|---|---|
description | ಹಂತ ಏನು ಮಾಡುತ್ತದೆ ಮತ್ತು ಏಕೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ |
expects | ಹಂತಕ್ಕೆ ಬೇಕಾದ ಇನ್ಪುಟ್ ರೂಪ ಅಥವಾ ಪೂರ್ವ ಷರತ್ತುಗಳು |
produces | ಹಂತ ಉತ್ಪಾದಿಸುವ ಔಟ್ಪುಟ್ ರೂಪ |
ಈ ಕ್ಷೇತ್ರಗಳಿಲ್ಲದ ಯಾವುದೇ ಹಂತ ಹೊಂದಿರುವ ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು ಪಾರ್ಸರ್ ನಿರಾಕರಿಸುತ್ತದೆ.
ಕಾನ್ಫಿಗರೇಶನ್ ಆಯ್ಕೆಗಳು
| ಆಯ್ಕೆ | ವಿಧ | ಡೀಫಾಲ್ಟ್ | ವಿವರಣೆ |
|---|---|---|---|
enabled | boolean | — | ಅಗತ್ಯ. ಗುಣಪಡಿಸುವ ಏಜೆಂಟ್ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
retry_budget | number | 3 | ಪರಿಹರಿಸಲಾಗದ ಎಂದು ಎಸ್ಕಲೇಟ್ ಮಾಡುವ ಮೊದಲು ಗರಿಷ್ಠ ಮಧ್ಯಸ್ಥಿಕೆ ಪ್ರಯತ್ನಗಳು. |
approval_required | boolean | true | ಪ್ರಸ್ತಾಪಿತ ವರ್ಕ್ಫ್ಲೋ ಸರಿಪಡಿಸುವಿಕೆಗಳಿಗೆ ಮಾನವ ಅನುಮೋದನೆ ಅಗತ್ಯವೇ. |
pause_on_intervention | string | "blocking_only" | ಕೆಳಮಟ್ಟದ ಕಾರ್ಯಗಳನ್ನು ಯಾವಾಗ ವಿರಾಮಗೊಳಿಸುವುದು: always, never ಅಥವಾ blocking_only. |
pause_timeout_seconds | number | 300 | ಟೈಮ್ಔಟ್ ನೀತಿ ಪ್ರಚೋದಿಸಲ್ಪಡುವ ಮೊದಲು ವಿರಾಮದಲ್ಲಿ ಕಾಯಲು ಸೆಕೆಂಡುಗಳು. |
pause_timeout_policy | string | "escalate_and_halt" | ಟೈಮ್ಔಟ್ನಲ್ಲಿ ಏನಾಗುತ್ತದೆ: escalate_and_halt, escalate_and_skip ಅಥವಾ escalate_and_fail. |
notify_on | array | [] | ಅಧಿಸೂಚನೆ ಪ್ರಚೋದಿಸುವ ಘಟನೆಗಳು: intervention, escalation, approval_required. |
ಇದು ಹೇಗೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತದೆ
ಗಮನಿಸುವಿಕೆ. ಗುಣಪಡಿಸುವ ಮುಂಚೂಣಿ ಏಜೆಂಟ್ ವರ್ಕ್ಫ್ಲೋ ಕಾರ್ಯಗತಗೊಳ್ಳುವಾಗ ಹಂತದ ಘಟನೆಗಳ (started, completed, failed, skipped) ನೈಜ ಸಮಯದ ಹರಿವು ಸ್ವೀಕರಿಸುತ್ತದೆ.
ಟ್ರಿಯಾಜ್. ಒಂದು ಹಂತ ವಿಫಲವಾದಾಗ, ಮುಂಚೂಣಿ ಏಜೆಂಟ್ ವೈಫಲ್ಯವನ್ನು ಐದು ವರ್ಗಗಳಲ್ಲಿ ಒಂದಾಗಿ ವರ್ಗೀಕರಿಸುತ್ತದೆ:
ವರ್ಗ ಅರ್ಥ transient_retryತಾತ್ಕಾಲಿಕ ಸಮಸ್ಯೆ (ನೆಟ್ವರ್ಕ್ ದೋಷ, ದರ ಮಿತಿ, 503) runtime_workaroundಮೊದಲ ಬಾರಿ ಅಜ್ಞಾತ ದೋಷ, ಪ್ರಕ್ರಿಯಾವ್ಯಾಸ ಮಾಡಬಹುದು structural_fixವರ್ಕ್ಫ್ಲೋ ವ್ಯಾಖ್ಯಾನ ಬದಲಾವಣೆ ಅಗತ್ಯಪಡುವ ಪದೇ ಪದೇ ವೈಫಲ್ಯ plugin_gapಹೊಸ ಏಕೀಕರಣ ಅಗತ್ಯಪಡುವ ದೃಢೀಕರಣ/ರುಜುವಾತು ಸಮಸ್ಯೆ unresolvableಮರು-ಪ್ರಯತ್ನ ಬಜೆಟ್ ಖಾಲಿಯಾಗಿದೆ ಅಥವಾ ಮೂಲಭೂತವಾಗಿ ಪರಿಹಾರ ಇಲ್ಲ ತಜ್ಞ ತಂಡಗಳು. ಟ್ರಿಯಾಜ್ ವರ್ಗದ ಆಧಾರದ ಮೇಲೆ, ಮುಂಚೂಣಿ ಏಜೆಂಟ್ ತಜ್ಞ ಏಜೆಂಟ್ಗಳ ತಂಡ (ರೋಗ ನಿರ್ಣಯಕ, ಮರು-ಪ್ರಯತ್ನ ಸಂಯೋಜಕ, ವ್ಯಾಖ್ಯಾನ ಸರಿಪಡಿಸುವವ, ಪ್ಲಗ್ಇನ್ ಲೇಖಕ, ಇತ್ಯಾದಿ) ರಚಿಸಿ ಸಮಸ್ಯೆ ತನಿಖೆ ಮತ್ತು ಪರಿಹಾರ ಮಾಡಲು ಕಳುಹಿಸುತ್ತದೆ.
ಆವೃತ್ತಿ ಪ್ರಸ್ತಾಪಗಳು. ರಚನಾತ್ಮಕ ಸರಿಪಡಿಸುವಿಕೆ ಅಗತ್ಯಪಟ್ಟಾಗ, ತಂಡ ಹೊಸ ವರ್ಕ್ಫ್ಲೋ ಆವೃತ್ತಿ ಪ್ರಸ್ತಾಪಿಸುತ್ತದೆ.
approval_requiredtrue ಆದರೆ, ಪ್ರಸ್ತಾಪworkflow_version_approveಅಥವಾworkflow_version_rejectಮೂಲಕ ಮಾನವ ಪರಿಶೀಲನೆಗಾಗಿ ಕಾಯುತ್ತದೆ.ವ್ಯಾಪ್ತಿ ನಿರ್ಧರಿತ ವಿರಾಮ.
pause_on_interventionಸಕ್ರಿಯಗೊಂಡಾಗ, ಕೇವಲ ಕೆಳಮಟ್ಟದ ಕಾರ್ಯಗಳು ವಿರಾಮಗೊಳ್ಳುತ್ತವೆ — ಸ್ವತಂತ್ರ ಶಾಖೆಗಳು ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತ ಮುಂದುವರಿಯುತ್ತವೆ.
ಗುಣಪಡಿಸುವ ಉಪಕರಣಗಳು
ಗುಣಪಡಿಸುವ ಸ್ಥಿತಿ ನಿರ್ವಹಿಸಲು ನಾಲ್ಕು ಹೆಚ್ಚುವರಿ ಉಪಕರಣಗಳು ಲಭ್ಯವಿವೆ:
| ಉಪಕರಣ | ವಿವರಣೆ |
|---|---|
workflow_version_list | ಪ್ರಸ್ತಾಪಿತ/ಅನುಮೋದಿತ/ನಿರಾಕರಿತ ಆವೃತ್ತಿಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ |
workflow_version_approve | ಪ್ರಸ್ತಾಪಿತ ಆವೃತ್ತಿ ಅನುಮೋದಿಸಿ |
workflow_version_reject | ಕಾರಣದೊಂದಿಗೆ ಪ್ರಸ್ತಾಪಿತ ಆವೃತ್ತಿ ನಿರಾಕರಿಸಿ |
workflow_healing_status | ವರ್ಕ್ಫ್ಲೋ ರನ್ಗಾಗಿ ಪ್ರಸ್ತುತ ಗುಣಪಡಿಸುವ ಸ್ಥಿತಿ |
ಭದ್ರತೆ
- ಗುಣಪಡಿಸುವ ಏಜೆಂಟ್ ತನ್ನ ಸ್ವಂತ
self_healingಕಾನ್ಫಿಗ್ ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಕಾನ್ಫಿಗ್ ಬ್ಲಾಕ್ ಬದಲಾಯಿಸುವ ಪ್ರಸ್ತಾಪಿತ ಆವೃತ್ತಿಗಳನ್ನು ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ. - ಮುಂಚೂಣಿ ಏಜೆಂಟ್ ಮತ್ತು ಎಲ್ಲಾ ತಂಡ ಸದಸ್ಯರು ವರ್ಕ್ಫ್ಲೋದ taint ಮಟ್ಟ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದು ಸಮಕಾಲೀನವಾಗಿ ಎಸ್ಕಲೇಟ್ ಮಾಡುತ್ತಾರೆ.
- ಎಲ್ಲಾ ಏಜೆಂಟ್ ಕ್ರಿಯೆಗಳು ಪ್ರಮಾಣಿತ ನೀತಿ hook ಸರಣಿ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತವೆ — ಬೈಪಾಸ್ಗಳಿಲ್ಲ.
- ಪ್ರಸ್ತಾಪಿತ ಆವೃತ್ತಿಗಳನ್ನು ವರ್ಕ್ಫ್ಲೋದ ವರ್ಗೀಕರಣ ಮಟ್ಟದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.
