feat/inline-agent-flow-file - #2414
Draft
andreibalas-uipath wants to merge 9 commits into
Draft
Conversation
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
force-pushed
the
feat/inline-agent-flow-file
branch
from
August 3, 2026 17:16
586b5b0 to
c3f8f8a
Compare
… 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.