The Parts Agent
Duplicate part numbers are not a tidiness problem. Three numbers for one screw means three approved manufacturer lists to maintain, three qualifications, and three chances to miss an end-of-life notice.
What it is, and what it is not
An agent scoped to the item master. It classifies new parts, finds existing ones that already describe the same thing, flags obsolescence exposure, and reports where the taxonomy has drifted.
It is not an automatic deduplicator. Nothing is ever merged on the agent's judgement, at any permission tier, because a wrong merge is close to unpickable: two parts that were genuinely different become one, the structures that referenced each of them now reference the survivor, and the record of which was which is gone.
What it produces is a proposal with evidence — these three numbers look like one part, here is why, here is what it would cost to consolidate, here is which one should survive. A person decides, and the consolidation runs as an ordinary change through change control.
The mechanism: three signals, agreeing
Reuse candidates come from three independent signals, and a candidate needs more than one of them before it is worth a person's attention.
Classification and attributes — same class path, same values on the attributes that define the class. This is exact and cheap and finds the easy cases, which are more common than anybody expects.
Semantic similarity — SCREW M3X8 SS CAPTIVE, M3 x 8 captive screw, SS and Screw, captive, M3x8, stainless are one part described by three people who were not talking to each other. Embeddings carry the object revision, so a match is against a description that currently exists rather than one superseded two years ago.
A shared AVL manufacturer part — the strongest signal of all. If two internal numbers both approve the same manufacturer part number, they are almost certainly the same thing, and no amount of naming disagreement changes that.
The failure it prevents
An engineer needs an M3 captive screw. Search returns nothing useful because the existing part is called HW-0451 and they searched for screw M3. So they create a new number, add a supplier, raise a qualification, and move on. It took twenty minutes and felt like the right thing to do.
Three years later the manufacturer discontinues that screw. The end-of-life notice matches one of the three internal numbers, because only one of the three AVLs happened to list that exact manufacturer part. Two products get flagged. The third does not, and ships with an unobtainable part for another five months.
The cheapest moment to prevent this is the twenty minutes before the fourth number exists — which is where the agent sits, in the create-part flow, saying that three numbers already describe this and here they are.
How it meets the rest of the product
Classification proposals run against the tenant's own taxonomy, including the class-specific attributes each class defines. The agent does not invent classes; it places parts into the model you configured and reports where the model has no good home for something, which is usually more useful than a forced fit.
Consolidation, when a person accepts it, is a mass change through change control: the impact set is computed deterministically, reviewed, approved and released as one atomic transaction. Substitutions land as ordinary BOM changes with effectivity, so nothing silently reroutes on a released structure.
Every proposal cites the objects and revisions behind it — the three part numbers, their AVL entries, the products each is used in. A reviewer can see exactly what the agent was reading rather than being asked to trust a similarity score.
Obsolescence exposure comes from the component risk data, so the agent can rank consolidation candidates by which duplicates carry an end-of-life risk that a merge would consolidate away.
How it meets your ERP
Consolidation has an ERP consequence and the agent surfaces it before anybody agrees to anything. Retiring an internal part number means the ERP holds an item with stock, open purchase orders and possibly historical transactions against it, and none of that disappears because engineering decided the number was redundant.
So a proposal shows, for each candidate: on-hand quantity, committed stock, open orders and whether the item has transacted recently — read back from NetSuite, SAP, Dynamics, Epicor or Acumatica. A duplicate with four years of history and stock on the shelf is retired differently from one that was created and never used.
The agent will not deactivate an ERP item, because item status there is ERP-mastered under the system-of-record matrix. It proposes the engineering change; somebody with purchasing responsibility handles the item lifecycle on their side.
Where the boundary is
It does not decide that two parts are the same. Form, fit and function are engineering judgements that depend on things recorded nowhere — a tolerance that mattered on one product, a supplier qualification that took nine months, a customer who specified a particular manufacturer by name.
It also cannot see parts it has no data for. A part with no classification, no attributes and a description of BRACKET is invisible to all three signals, and the honest answer is that the agent found nothing rather than that nothing exists.
Facts
| Scope | Item master — classify, find reuse, flag obsolescence |
| Signals | Class + attributes · semantic similarity · shared AVL part |
| Threshold | More than one signal before a person is interrupted |
| Merging | Never automatic, at any tier — a wrong merge is unpickable |
| Consolidation | Runs as a mass change through change control |
| Citations | Part numbers, AVL entries and products, at revision |
| ERP context | Stock, open orders and transaction history per candidate |
| Never | Deactivates an ERP item — status is ERP-mastered |
Frequently asked
Will it merge duplicate parts automatically?
No, at any permission tier. A wrong merge is close to unpickable — two genuinely different parts become one, the structures that referenced each now reference the survivor, and the record of which was which is gone. It proposes with evidence; a person decides.
How does it find duplicates search missed?
Three signals, and a candidate needs more than one. Classification and attribute match finds the exact cases. Semantic similarity catches the same screw described three ways by three people. A shared AVL manufacturer part is the strongest signal of all.
Why do duplicates actually matter?
Three numbers for one screw means three approved manufacturer lists to maintain, three qualifications, and three chances to miss an end-of-life notice. The usual outcome is that a notice matches one internal number and the other two products ship an unobtainable part.
Does it create classification categories?
No. It places parts into the taxonomy you configured and reports where nothing fits well, which is more useful than a forced placement. Letting an agent invent classes would produce a taxonomy that nobody designed and that grows differently in every tenant.
What happens to stock if we retire a number?
The proposal shows on-hand, committed, open orders and recent transaction history for each candidate, read from your ERP. A duplicate with four years of history and stock on the shelf is retired differently from one created and never used — you see which you have.
Can it deactivate the item in our ERP?
No. Item status is ERP-mastered under the system-of-record matrix, so the agent proposes the engineering change and somebody with purchasing responsibility handles the item lifecycle on their side. An agent reaching across that line would be overwriting somebody else's master record.
What about parts with no data?
They are invisible to all three signals, and the agent reports finding nothing rather than implying nothing exists. A part with no classification, no attributes and a description of BRACKET cannot be matched, which is an argument for the classification work rather than against the feature.