finos / finos/fluxnova-plugins
Agentic Tools: Support LLM-Provided Input Parameters Through Input Mappings
- Dominant language
- Java
- Stars
- 3
- Forks
- 7
- Avg merge
- 5d 4h
- Merged PRs (30d)
- 3
Description
**User Story**
As a process modeler, I want the LLM to provide input values when invoking a tool, so that activities can execute using data that is specific to the current tool call.
**Background**
Today tools can only consume values that already exist in process variables. This limits the usefulness of tools that require dynamic parameters determined by the LLM at runtime.
The solution should preserve the BPMN mapping model, where values enter through input mappings and leave through output mappings.
**Acceptance Criteria**
- Modelers can declare LLM-supplied inputs using:
```
${agent:arg('city', 'City to get weather for')}
```
- Tool schema generation discovers all agent:arg(...) declarations.
- The generated tool definition includes:
-- argument name
-- argument description
- The LLM can supply values for declared arguments when invoking a tool.
- LLM-supplied values are scoped to a single tool invocation.
- Parallel tool invocations remain isolated from one another.
- Inputs continue to flow through standard input mappings.
- Existing tools without agent:arg(...) definitions continue to function unchanged.
- Process variables are not modified directly by the LLM.
**Technical Approach**
- Introduce a custom EL function:
```
agent:arg(name, description)
```
- During tool schema generation:
-- Scan input mappings.
-- Extract `agent:arg(...)` declarations.
--- Build the corresponding tool parameter schema.
- At execution time:
-- Inject LLM-provided argument values into input mapping evaluation.
-- Maintain invocation-local scope.
Based on https://github.com/finos/fluxnova-plugins/issues/53
Contributor guide
Research direction
No files or tests are named. Start by locating input-mapping evaluation, tool schema generation, and tool invocation handling; verify how invocation-local values can flow through standard mappings. Done means agent:arg declarations produce named and described parameters, values remain isolated per call, and existing tools continue to work unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- ai, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100