What Automated License Analysis Can—and Cannot—Do

The subject here is LiAgent, an LLM-based analyzer designed for the licensing problems inside LLMware. The practical question is not whether a language model can declare a license “safe,” but whether it can turn complicated license text and dependency relationships into useful questions for a reviewer. This chapter follows LiAgent from extraction to benchmark to real-world reporting, so the reader can judge where automation improves visibility and where human interpretation must still control the decision.

From license text to a comparable representation

A license is written for people and legal contexts, not for a simple yes-or-no database. The same document can allow one action, prohibit another, and require a condition that applies only in a particular form of distribution. AI-specific licenses can add restrictions that do not appear in the conventional software licenses a developer already knows. A tool that only searches for words such as “commercial,” “modify,” or “distribute” can find relevant passages, but it may not reliably identify what action the passage governs or whether the passage permits, prohibits, or requires it.

LiAgent addresses this by representing a license through a defined set of legal terms and attitudes. Its extraction agent reads the full license and identifies terms, assigns each one can, cannot, or must, and returns the sentence or sentences that support the assignment.[2] The supporting sentence is important. It lets a reviewer inspect the textual basis of a structured result instead of receiving an unexplained label. The system is not merely asking whether a word appears. It is trying to connect a term such as distribution or commercial use to the rule expressed in the document.

The term set contains 23 legal concepts. That fixed vocabulary makes licenses comparable across the supply-chain graph used in the study. When an upstream model or dataset and a downstream application have been assigned attitudes for the same term, the compatibility procedure can ask whether the downstream artifact appears to relax a restriction or drop an obligation. The representation is intentionally narrower than a legal opinion, but that narrowness is what makes large-scale comparison possible.

The extraction agent can still assign inconsistent attitudes to the same term when different clauses appear to point in different directions. LiAgent therefore adds a consistency check. If the extracted record says, for example, that the same action both can and cannot be performed, a repair agent receives the conflicting extractions together with the original license text. It reanalyzes the context and produces a revised assignment. The repair process can run for up to three rounds, a limit the authors selected because preliminary experiments suggested that most inconsistencies were resolved within two.[2]

This architecture solves a problem that similarity matching alone cannot solve. Similarity can locate a passage that resembles a known license clause, but it does not necessarily understand how the clause changes the action’s status. Sentiment analysis can identify positive or negative wording, but legal permission is not ordinary sentiment. A clause may use a neutral sentence to impose a binding obligation, or may permit an action only if another condition is met. LiAgent’s structured terms, attitudes, and supporting sentences are intended to keep those distinctions visible.

The design also has a practical trade-off. A fixed term set provides consistency but limits coverage. If an AI-specific license contains a nuanced condition outside the 23 terms, the tool may not represent it. If two clauses must be interpreted together, assigning an attitude to each term may lose the interaction.