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:

  1. Multiple agents contribute to a single conversion decision
  2. Different agents play different roles — discovery, evaluation, decision, execution
  3. Agent chains vary in length — some conversions involve two agents, others involve five
  4. 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).

ModelDiscovery AgentEvaluation AgentRecommendation 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.