Skip to content

feat/inline-agent-flow-file - #2414

Draft
andreibalas-uipath wants to merge 9 commits into
mainfrom
feat/inline-agent-flow-file
Draft

feat/inline-agent-flow-file#2414
andreibalas-uipath wants to merge 9 commits into
mainfrom
feat/inline-agent-flow-file

Conversation

@andreibalas-uipath

Copy link
Copy Markdown
Contributor

No description provided.

@andreibalas-uipath andreibalas-uipath self-assigned this Jul 31, 2026
@andreibalas-uipath andreibalas-uipath changed the title Feat/inline agent flow file feat/inline-agent-flow-file Jul 31, 2026
andreibalas-uipath and others added 5 commits August 3, 2026 19:06
flow-workbench PR #2636 made the .flow file the source of truth for
inline agents; the sidecar folder is now a derived artifact. The
inline-agent plugin must be rewritten flow-file-first. These documents
carry the incremental roadmap (M0-M11 with status board, per-milestone
runbooks, eval pass-rate parity gates) and the research record (storage
contract, lifecycle traces, repo inventory, node-manifest contract)
that milestone sessions execute against on this branch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Gating experiment (codereval tenant, uip 1.200.0): flow-only inline agent
passes validate/format/eval/model-list; solution pack and flow debug do not
synthesize the sidecar (incident 170002, PrepareEnvironmentError) — the
'validate OK, debug/pack don't' fallback row, so M1-M9 proceed with validate
as the grading ceiling. Autonomous v1.3 exposes no memory/mcp handles and the
tenant registry has no memory/MCP node types (gates M7/M8). Resource-kind
input shapes pinned in the roadmap's M0 results section.

Checker skeleton: flow_inline_wiring.py grades the .flow as source of truth
(embed predicate, prompt/model bar, UUID source, output/input vars, edges,
definitions) with pytest coverage. Baseline pass-rate table deferred.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
assert_embedded_agent now fails on the never-author artifacts an agent
trained on the sidecar pattern copies in: instance model block on the node,
contentTokens and derivedInputDefinition in inputs. New assert_prompt_tokens
rejects derived-namespace tokens ({{input.*}}, {{ $agent.* }}) in prompts —
opaque to flow validate — with opt-in require_vars_ref for data-wiring tasks.
Placeholder set regains 'triage the inbound email.' (parity with
check_inline_agent.py); UUID regex tolerance (any version, lowercase only)
now documented as intentional. Pytest grows 33 -> 45, all green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…2410)

* M1: inline-agent plugin clean slate — flow file as source of truth

Plugin rewrite (planning, impl, critical-rules, model-selection,
prompting) documenting the self-contained-flow contract: full agent
definition in node inputs, derived sidecar never authored, no uip agent
lifecycle verbs, validate as the authoring gate with the debug/pack
synthesis gap surfaced. Supporting-ref flips across the flow skill and
remove+redirect pass across uipath-agents (inline-in-flow.md now a
stub). Tests migrated to flow-file-first grading: inline_agent/base
(new home of inline_in_flow), smoke/inline_agent_robust (+smoke tier
tag), evaluate/inline_agent_eval; shared check_inline_agent.py grades
the .flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M1: record gate run results in roadmap (3/3 tasks at 1.000)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M1: link PR #2410 in status board

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M1: address PR #2410 review — grade prompt wiring + validate outcome

Mediums: fix impl.md intro anchor (#7-resource-nodes); require_vars_ref=True
in base + eval checkers so hardcoded prompts can't pass the w5.0 check;
robust + eval grade validate via outcome (validate_flow.py run_command)
instead of command invocation. Lows: base.yaml gains the .flow
file_contains fallback + quoted TASK_DIR; assert_agent_input_vars accepts
an absent key as []; SCAFFOLD_MODEL sentinel annotated for the M11 sweep;
node:inline-agent added to the tests/README node: vocabulary; doc
polish (M-core jargon, 170002 envelope note, stale-model debug row,
features/ memory annotation, processOrchestration casing note,
file-format prose link to the derivation contract).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M1: record post-review gate re-run (3/3 at 1.000 under tightened criteria)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@andreibalas-uipath
andreibalas-uipath force-pushed the feat/inline-agent-flow-file branch from 586b5b0 to c3f8f8a Compare August 3, 2026 17:16
andreibalas-uipath and others added 4 commits August 4, 2026 16:39
… to the flow file (#2433)

* M2: process-family tools — capabilities/process.md + 8 tasks migrated to the flow file

Docs: mirror lowcode/capabilities/process/process.md into
plugins/inline-agent/capabilities/process.md (discovery verbatim; authoring
swapped to the uipath.agent.resource.tool.<family>.<key> node — full inputs
incl. per-argument ValueSourceField modes, properties, schemas from manifest
inputDefaults, top-level bindings[] rows, derived-fields-never-author list).
Extend impl.md §8 worked example with an RPA tool (variable-mode argument);
link the capability doc from impl.md §7 and planning.md.

Probes resolve two M0 leftovers: the registry get --local bindings
object-vs-array divergence is fixed in uip 1.200.0 (no repair recipe
needed), and flow validate enforces missing bindings[] rows, so the
validate criterion covers them.

Tests: inline_{solution,external}_{rpa,agent,apiworkflow,maestro}_tool →
inline_agent/tool_{rpa,agent,api,maestro}_{solution,external}
(skill-flow-inline-tool-*), graded on the .flow via new flow_inline_wiring
helpers (find_wired_resource, assert_resource_source_uuid,
assert_resource_inputs, assert_tool_type_key_uuid, assert_cluster_vars_ref);
pytest 64/64; checkers verified against synthetic pass/fail flows. External
tasks' resources-list gate downgraded to advisory — outcome-invisible in the
flow-file architecture (registry manifest bindings carry name+folder); per
tests rule 'grade the outcome, not the literal flag'.

Gate (claude-sonnet-5, 3 reps): 7/8 tasks 3/3; tool_agent_solution 2/3 in
the main run (expired-auth window) then 3/3 on a dedicated rerun after doc
hardening (folderPath never-empty vs bindings-default-verbatim separation).
M1 regression 1-rep: 3/3 at 1.000. No sidecar directories authored in any
of the 27 run artifacts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M2: reference PR #2433 on the status board

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: gate-run approval requirement in the standing runbook

coder-eval milestone gate runs only with explicit owner approval —
interactive uip login (alpha/codereval/DefaultTenant) and time-consuming.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M2: address PR #2433 review Mediums 1/2/5

- process.md discovery: '--kind Process covers all four families' clause
  (agents/API/agentic list as Kind Process; family is in Type)
- process.md gotcha 6: never wire a conversational agent as a tool
  (twin anti-pattern 24, lost in the mirror)
- roadmap M2 notes: record the referenceKey not-authored spec deviation
  and the early-M3 checker-hardening + Low-triage item

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…grated to the flow file (#2449)

* M3: built-in tools — capabilities/built-in-tools.md + tool_builtin migrated to the flow file

Docs: one collapsed capability doc for the three tenant builtins
(analyzefiles/summarize/batchtransform) with the identity asymmetry
pinned by validate probes (analyzefiles mints inputs.source —
validator-required; summarize/batchtransform mint inputs.id, their
source is a file reference) and the naming reconciliation from
flow-workbench (summarize IS deep-rag). impl.md/planning.md routing
rows flipped; uipath-agents deeprag/batch-transform inline sections
reduced to redirects (M1 leftover).

Tests: inline_builtin_tool migrated to inline_agent/tool_builtin
(flow-file assertions, node-type-suffix replaces resource.json
toolType, registry gates kept). M2-deferred checker hardening:
never-author contamination guard, tolerant bindings[] assertion,
sequence-wiring assert, flow-path fallback, builtin identity helper —
applied across all 8 M2 checkers (verified on 8 synthetic positives +
30 negatives); Low triage (process.md wording/caveats, advisory
weights, order-insensitive --local regex, rpa/api brownfield guards,
resource tags, inline_agent CODEOWNERS line).

Gate run pending owner approval — status board updated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M3: downgrade tool_builtin registry-search gate to advisory

Builtin node types are static and pinned in the capability doc's Node
Types table, so agents legitimately skip `registry search` and go
straight to the enforced `registry get <exact-type>` gate. The search
gate was outcome-invisible: the initial 3-rep gate run failed all
replicates on ONLY this criterion while producing fully correct
artifacts (checker + validate passed). Same posture as the M2
external-task resources-list downgrade — grade the outcome, not the
literal flag. Corrected rerun: 3/3 SUCCESS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M3: record gate results on the status board

tool_builtin corrected rerun 3/3; M1+M2 regression 11/11 under the
hardened checkers; baseline-table row added.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* M3: review fixes — qualify resource identity in impl/planning §7, suffix wording, quote pinning

Medium: impl.md §7 + planning.md claimed source-UUID identity for ALL
resource kinds — contradicting the identity asymmetry M3 pinned
(summarize/batchtransform mint inputs.id; a UUID in their inputs.source
clobbers the file reference). Both now defer to built-in-tools.md
§ Identity. Lows: uipath-agents router's builtin node pattern no longer
implies suffix==toolType; tool_builtin file_contains pins the quoted
analyzefiles type (matches all 3 gate artifacts, twice each).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant