DEV Community

tajdin k
tajdin k

Posted on

๐—”๐—œ ๐—”๐—ด๐—ฒ๐—ป๐˜๐˜€ ๐—ถ๐—ป ๐˜๐—ต๐—ฒ ๐—˜๐—ป๐˜๐—ฒ๐—ฟ๐—ฝ๐—ฟ๐—ถ๐˜€๐—ฒ: ๐—•๐˜‚๐—ถ๐—น๐—ฑ๐—ถ๐—ป๐—ด ๐—ฆ๐—บ๐—ฎ๐—ฟ๐˜๐—ฒ๐—ฟ ๐—˜๐—ฅ๐—ฃ ๐——๐—ฎ๐˜€๐—ต๐—ฏ๐—ผ๐—ฎ๐—ฟ๐—ฑ๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐—ฃ๐˜‚๐—ฟ๐—ฝ๐—ผ๐˜€๐—ฒ ๐—•๐˜‚๐—ถ๐—น๐˜ ๐—ง๐—ผ๐—ผ๐—น๐˜€

๐Ÿš€

One of the new capabilities weโ€™ve been working on in our ERP AI agent is ๐—”๐—œ ๐—ด๐—ฒ๐—ป๐—ฒ๐—ฟ๐—ฎ๐˜๐—ฒ๐—ฑ ๐—ฑ๐—ฎ๐˜€๐—ต๐—ฏ๐—ผ๐—ฎ๐—ฟ๐—ฑ ๐˜ƒ๐—ถ๐—ฒ๐˜„๐˜€, allowing users to describe the view they need and letting the agent construct it from the underlying ERP data.
The key challenge wasnโ€™t simply getting an LLM to generate a dashboard.
It was making the generation ๐—ฎ๐—ฐ๐—ฐ๐˜‚๐—ฟ๐—ฎ๐˜๐—ฒ, ๐—ฐ๐—ผ๐—ป๐˜€๐—ถ๐˜€๐˜๐—ฒ๐—ป๐˜ ๐—ฎ๐—ป๐—ฑ ๐—ฒ๐—ณ๐—ณ๐—ถ๐—ฐ๐—ถ๐—ฒ๐—ป๐˜.
We addressed this by defining ๐—ฝ๐˜‚๐—ฟ๐—ฝ๐—ผ๐˜€๐—ฒ ๐—ฏ๐˜‚๐—ถ๐—น๐˜, ๐˜๐˜†๐—ฝ๐—ฒ๐—ฑ ๐˜๐—ผ๐—ผ๐—น ๐—ฐ๐—ฎ๐—น๐—น๐˜€ around the actual operations required to build a dashboard.
The LLM orchestrates the workflow, while the tools handle the deterministic work.
๐Ÿ”น ๐—™๐—ฒ๐˜๐—ฐ๐—ต
Retrieves and aggregates the required ERP data through operations such as ๐—ด๐—ฟ๐—ผ๐˜‚๐—ฝ๐—•๐˜†, counts, sums, correlations and other supported aggregations.
๐Ÿ”น ๐—ฆ๐—ต๐—ฎ๐—ฝ๐—ฒ
Converts those results into a validated chart and view specification. Server side calculations, category limits and structural constraints are handled outside the model.
๐Ÿ”น ๐—ฅ๐—ฒ๐—ป๐—ฑ๐—ฒ๐—ฟ
Converts the validated specification into the actual dashboard components and desktop view.
This gives the LLM a more precise responsibility.
Rather than asking the model to retrieve data, calculate metrics, design charts and implement the UI in a single generation, it determines ๐˜„๐—ต๐—ถ๐—ฐ๐—ต ๐—ผ๐—ฝ๐—ฒ๐—ฟ๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ถ๐—ฟ๐—ฒ๐—ฑ and orchestrates the corresponding tool calls.
For example:
๐—–๐—ฟ๐—ฒ๐—ฎ๐˜๐—ฒ ๐—ฎ ๐˜€๐—ฎ๐—น๐—ฒ๐˜€ ๐—ฑ๐—ฎ๐˜€๐—ต๐—ฏ๐—ผ๐—ฎ๐—ฟ๐—ฑ ๐˜€๐—ต๐—ผ๐˜„๐—ถ๐—ป๐—ด ๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ ๐˜€๐˜๐—ฎ๐˜๐˜‚๐˜€, ๐˜๐—ผ๐—ฝ ๐—ฝ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—บ๐—ผ๐—ป๐˜๐—ต๐—น๐˜† ๐˜€๐—ฎ๐—น๐—ฒ๐˜€ ๐˜๐—ฟ๐—ฒ๐—ป๐—ฑ๐˜€.
The agent can fetch the required datasets, shape each visualization and compose the resulting components into a single desktop dashboard.
We tested the approach against real dashboard generation, focusing on ๐—ฎ๐—ฐ๐—ฐ๐˜‚๐—ฟ๐—ฎ๐—ฐ๐˜†, ๐—ฒ๐˜…๐—ฒ๐—ฐ๐˜‚๐˜๐—ถ๐—ผ๐—ป ๐—ฒ๐—ณ๐—ณ๐—ถ๐—ฐ๐—ถ๐—ฒ๐—ป๐—ฐ๐˜† and ๐—ฐ๐—ผ๐—ป๐˜€๐—ถ๐˜€๐˜๐—ฒ๐—ป๐—ฐ๐˜†.
One important finding was that reducing the implementation burden on the LLM can improve the result.
The model focuses on ๐—ถ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐—ฎ๐—ป๐—ฑ ๐—ผ๐—ฟ๐—ฐ๐—ต๐—ฒ๐˜€๐˜๐—ฟ๐—ฎ๐˜๐—ถ๐—ผ๐—ป, while deterministic operations are handled by tools that can be validated and tested independently.
Another important aspect is ๐—ง๐—ผ๐—ผ๐—น ๐—–๐—ผ๐˜ƒ๐—ฒ๐—ฟ๐—ฎ๐—ด๐—ฒ.
In several cases, the model correctly identified the required operation, but the corresponding ERP entity or capability was not exposed through the tool layer.
This is the direction weโ€™re taking with the new dashboard capabilities:
๐—ก๐—ฎ๐˜๐˜‚๐—ฟ๐—ฎ๐—น ๐—น๐—ฎ๐—ป๐—ด๐˜‚๐—ฎ๐—ด๐—ฒ ๐—ถ๐—ป๐˜๐—ฒ๐—ป๐˜ โ†’ ๐—ฝ๐—ฟ๐—ฒ๐—ฐ๐—ถ๐˜€๐—ฒ ๐˜๐—ผ๐—ผ๐—น ๐—ฐ๐—ฎ๐—น๐—น๐˜€ โ†’ ๐˜ƒ๐—ฒ๐—ฟ๐—ถ๐—ณ๐—ถ๐—ฒ๐—ฑ ๐—ฑ๐—ฎ๐˜๐—ฎ ๐—ผ๐—ฝ๐—ฒ๐—ฟ๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐˜€ โ†’ ๐—ฐ๐—ผ๐—บ๐—ฝ๐—ผ๐˜€๐—ฒ๐—ฑ ๐—ฒ๐—ป๐˜๐—ฒ๐—ฟ๐—ฝ๐—ฟ๐—ถ๐˜€๐—ฒ ๐—ฑ๐—ฎ๐˜€๐—ต๐—ฏ๐—ผ๐—ฎ๐—ฟ๐—ฑ.
๐—œ๐˜ ๐—ถ๐˜€ ๐—ฎ๐—ฏ๐—ผ๐˜‚๐˜ ๐—ด๐—ถ๐˜ƒ๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ฒ ๐—Ÿ๐—Ÿ๐—  ๐˜๐—ต๐—ฒ ๐—ฟ๐—ถ๐—ด๐—ต๐˜ ๐—ฎ๐—ฏ๐˜€๐˜๐—ฟ๐—ฎ๐—ฐ๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐˜๐—ผ ๐—ฑ๐—ผ ๐—ถ๐˜๐˜€ ๐—ฝ๐—ฎ๐—ฟ๐˜ ๐—ฝ๐—ฟ๐—ฒ๐—ฐ๐—ถ๐˜€๐—ฒ๐—น๐˜†.

AI #AIAgents #LLM #EnterpriseAI #ERP #SoftwareEngineering #DataViz #OpenSource

Top comments (0)