Multi-Agent Attribution
Multi-agent systems — workflows where multiple AI agents collaborate to complete a task — create a unique attribution challenge. When a research agent identifies a product, a comparison agent evaluates alternatives, and a procurement agent completes the purchase, which agent gets credit for the conversion? The answer determines how commission flows through the system.
The Multi-Agent Attribution Problem
In single-agent attribution, the model is straightforward: one agent recommends, one conversion occurs, one commission is paid. Multi-agent systems break this simplicity because:
- Multiple agents contribute to a single conversion decision
- Different agents play different roles — discovery, evaluation, decision, execution
- Agent chains vary in length — some conversions involve two agents, others involve five
- The most valuable contribution may not be the final action
This is analogous to multi-touch attribution in digital marketing (first click vs. last click vs. linear), but with a critical difference: in multi-agent systems, the "touches" are structured API calls between identifiable agent identities, not anonymous browser sessions. We can track the full chain with precision.
Attribution Models
Syndicate Links supports several attribution models for multi-agent workflows:
Last Agent (Default)
The agent that submitted the final attribution event before the conversion receives 100% of the commission. Simple and unambiguous.
Best for: Workflows where the final recommending agent is clearly the one that influenced the purchase decision.
First Agent
The agent that initiated the referral chain receives 100% of the commission. Rewards discovery over execution.
Best for: Workflows where the initial product discovery is the most valuable contribution and execution is commoditized.
Linear Split
Commission is divided equally among all agents that submitted attribution events in the conversion chain.
Best for: Collaborative workflows where each agent makes a roughly equal contribution.
Weighted Split
Commission is divided according to predefined weights assigned to each role in the chain.
Example configuration:
{
"attribution_model": "weighted",
"weights": {
"discovery": 0.40,
"evaluation": 0.25,
"recommendation": 0.25,
"execution": 0.10
}
}
Best for: Complex workflows where the relative value of each contribution is known and consistent.
How Chain-of-Referral Works
Multi-agent attribution in Syndicate Links uses a chain-of-referral mechanism:
1. First Agent Initiates the Chain
# Research agent discovers a relevant product
chain = sl_client.track(
merchant_id="datadog",
product_id="pro_plan",
metadata={
"role": "discovery",
"agent_type": "research"
}
)
chain_id = chain.chain_id # Unique chain identifier
2. Subsequent Agents Join the Chain
# Comparison agent evaluates the product
sl_client.track(
merchant_id="datadog",
product_id="pro_plan",
chain_id=chain_id, # Links to the existing chain
metadata={
"role": "evaluation",
"agent_type": "comparison",
"alternatives_evaluated": ["newrelic", "grafana"]
}
)
3. Final Agent Completes the Chain
# Procurement agent recommends the purchase
sl_client.track(
merchant_id="datadog",
product_id="pro_plan",
chain_id=chain_id,
metadata={
"role": "recommendation",
"agent_type": "procurement"
}
)
4. Conversion and Split
When the merchant confirms the conversion, Syndicate Links identifies all agents in the chain and splits the commission according to the configured attribution model.
Framework-Specific Patterns
CrewAI
In CrewAI, each crew member (agent) has a defined role. Map the crew roles to attribution roles:
from crewai import Agent, Task, Crew
researcher = Agent(role="Research Analyst", ...)
evaluator = Agent(role="Product Evaluator", ...)
recommender = Agent(role="Purchase Advisor", ...)
# Each agent's task includes attribution tracking
research_task = Task(
description="Research monitoring tools...",
agent=researcher,
# Attribution tracked via SL MCP tool within the task
)
LangChain
In LangChain agent chains, attribution events can be submitted as tool calls within the chain:
from langchain.tools import Tool
track_attribution = Tool(
name="track_referral",
func=sl_client.track,
description="Track a product recommendation for commission attribution"
)
# Agent chain includes attribution as a tool
agent = initialize_agent(
tools=[search_tool, compare_tool, track_attribution],
llm=llm,
agent=AgentType.OPENAI_FUNCTIONS
)
Commission Split Examples
Scenario: Three agents collaborate to recommend Datadog Pro ($500/month, 20% commission = $100/month).
| Model | Discovery Agent | Evaluation Agent | Recommendation Agent |
|---|---|---|---|
| Last Agent | $0 | $0 | $100 |
| First Agent | $100 | $0 | $0 |
| Linear | $33.33 | $33.33 | $33.34 |
| Weighted (40/25/35) | $40 | $25 | $35 |
When To Use Multi-Agent Attribution
Not every multi-agent system needs chain-of-referral tracking. Use it when:
- Multiple independently operated agents contribute to a single conversion
- Agent operators want per-agent commission breakdowns
- The workflow has distinct phases (discovery → evaluation → recommendation) handled by different agents
- Fair compensation across agent operators requires splitting commission
For single-operator multi-agent systems where all agents are controlled by the same organization, simple last-agent attribution is usually sufficient — the commission goes to the same entity regardless of which agent gets credit.
Related Docs
- How Agent Attribution Works — the technical spec for single and multi-agent attribution
- AI Referral Tracking — the full spectrum of AI referral tracking scenarios
- What Is Agent Commerce? — how multi-agent systems participate in commerce