DevelopersAutonomous Agents
Agent Framework

Autonomous RA Agents

Seven specialized agents that handle the full product compliance lifecycle. Each maps to a real-world regulatory affairs role, uses scoped MCP tools, and escalates to humans when confidence drops.

7Specialized Agents
12MCP Tools
HITLEscalation Built-in

Overview

Inlet's agent framework provides seven autonomous regulatory affairs (RA) agents that mirror the roles on a real compliance team. Agents run via the Claude API with scoped MCP tool access, enabling them to read and write platform data while respecting permission boundaries.

Pipeline Orchestration

Agents execute in a defined sequence, with each stage feeding the next.

Scoped Tool Access

Each agent only sees the MCP tools relevant to its role -- no over-permissioning.

Human-in-the-Loop

Escalation triggers pause the pipeline and surface issues for human review.

Agent Delegation

Agents can invoke other agents when the task crosses role boundaries.

Multi-Tenant Isolation

All agent actions are scoped to the requesting company -- no data leakage.

Full Audit Trail

Every action, delegation, and escalation is logged with timestamps and rationale.

How It Works

  1. 1You call POST /api/v1/agents/pipeline/run with a SKU ID and target markets.
  2. 2The Formulation Analyst agent picks up the SKU, validates ingredients, and passes it to the Compliance Analyst.
  3. 3Each agent runs its checks using its scoped MCP tools, creates tasks for any issues, and delegates to the next agent.
  4. 4If an escalation trigger fires, the pipeline pauses and notifies your team for human review (HITL).
  5. 5After QA approval, the pipeline completes and the SKU is ready for market submission.

Pipeline Flow

The default pipeline runs agents in sequence. Market Intelligence and Regulatory Strategist agents run independently or are invoked on-demand by other agents.

Default Pipeline

Formulation
Compliance
Label Review
Submission
QA
Human Review

Market Intelligence

Independent / On-demand

Monitors regulatory databases continuously. Can be scheduled on a cron or invoked by the Regulatory Strategist when assessing a new market.

Regulatory Strategist

Independent / On-demand

Advises on market entry sequencing and regulatory pathways. Invoked ad-hoc or by the Compliance Analyst when multi-market strategy is needed.

Agent Profiles

Click any agent to expand its full profile, including allowed MCP tools, pipeline stages, task types, escalation triggers, and delegation targets.

API Reference

All agent endpoints require a valid API key with the Growth or Enterprise plan. Requests are scoped to your company.

GET/api/v1/agents/profiles

Returns all agent profiles with their capabilities, allowed tools, pipeline stages, and escalation triggers.

bash
curl https://api.inlet.run/api/v1/agents/profiles \
  -H "Authorization: Bearer ink_live_your_key_here"
POST/api/v1/agents/pipeline/run

Runs the complete autonomous RA pipeline for a SKU across one or more target markets. Returns a run ID you can use to poll for status.

curl -X POST https://api.inlet.run/api/v1/agents/pipeline/run \
  -H "Authorization: Bearer ink_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "sku_id": "550e8400-e29b-41d4-a716-446655440000",
    "target_markets": ["US", "EU"],
    "skip_stages": []
  }'

Response

json
{
  "run_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "running",
  "actions_taken": 0,
  "escalations": 0,
  "current_agent": "formulation_analyst",
  "started_at": "2026-04-13T10:30:00Z"
}
POST/api/v1/agents/run

Run a single agent ad-hoc outside the pipeline. Useful for targeted checks, re-running a specific stage, or building custom workflows.

curl -X POST https://api.inlet.run/api/v1/agents/run \
  -H "Authorization: Bearer ink_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_role": "compliance_analyst",
    "sku_id": "550e8400-e29b-41d4-a716-446655440000",
    "instruction": "Check this SKU against EU cosmetics regulation",
    "target_markets": ["EU"]
  }'
GET/api/v1/agents/pipeline/runs/{run_id}

Poll for the status of a pipeline run. Returns the current agent, actions taken, escalations, and completion status.

bash
curl https://api.inlet.run/api/v1/agents/pipeline/runs/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "Authorization: Bearer ink_live_your_key_here"

Response (completed)

json
{
  "run_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "completed",
  "actions_taken": 12,
  "escalations": 0,
  "current_agent": null,
  "started_at": "2026-04-13T10:30:00Z",
  "completed_at": "2026-04-13T10:32:15Z",
  "stages_completed": [
    "formulation_analyst",
    "compliance_analyst",
    "label_reviewer",
    "submission_coordinator",
    "quality_assurance"
  ],
  "results": {
    "compliance_status": "compliant",
    "markets_checked": ["US", "EU"],
    "tasks_created": 3,
    "labels_reviewed": 1
  }
}

Run Status Values

runningPipeline is actively executing agents
completedAll stages finished successfully
awaiting_humanPaused for HITL review (escalation triggered)
failedAn unrecoverable error occurred
escalatedEscalation sent to team, awaiting resolution

Configuration

Configure API access, HITL checkpoints, and custom instructions for agent runs.

API Key Setup

  1. 1Navigate to Settings → API Keys in your Inlet dashboard.
  2. 2Create a new key with the agents:run scope. Keys are prefixed with ink_live_.
  3. 3Store the key securely. It is shown only once at creation time. Agent access requires the Growth or Enterprise plan.

HITL Checkpoints

By default, escalation triggers pause the pipeline and notify your team. You can configure which triggers require human review and which should auto-resolve.

json
{
  "hitl_config": {
    "pause_on": [
      "novel_ingredient",
      "regulatory_ambiguity",
      "approval_gate"
    ],
    "auto_resolve": [
      "confidence_below_threshold"
    ],
    "notify_channels": ["slack", "email"],
    "timeout_hours": 48,
    "fallback_action": "escalate_to_owner"
  }
}

Custom Instructions

Pass custom instructions to any agent to override default behavior. Instructions are appended to the agent's system prompt for that run only.

python
resp = requests.post(
    "https://api.inlet.run/api/v1/agents/run",
    headers={"Authorization": "Bearer ink_live_your_key_here"},
    json={
        "agent_role": "label_reviewer",
        "sku_id": "550e8400-...",
        "instruction": (
            "Focus on EU allergen disclosure requirements. "
            "Flag any missing INCI names for fragrance components. "
            "Apply strict interpretation of Regulation 1223/2009 Annex III."
        ),
        "target_markets": ["EU"],
    },
)

Integration Patterns

Common patterns for embedding agents into your existing workflows.

Trigger Pipeline on SKU Creation

Use a webhook listener to automatically run the full pipeline whenever a new SKU is created or moves to "active" status.

# When you receive a sku.activated webhook, trigger the pipeline:
curl -X POST https://api.inlet.run/api/v1/agents/pipeline/run \
  -H "Authorization: Bearer ink_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "sku_id": "550e8400-e29b-41d4-a716-446655440000",
    "target_markets": ["US", "EU"]
  }'

Schedule Market Intelligence Runs

Run the Market Intelligence agent on a schedule to monitor regulatory changes and generate proactive alerts.

python
# Using APScheduler or any cron-compatible scheduler
from apscheduler.schedulers.blocking import BlockingScheduler
import requests

API_KEY = "ink_live_your_key_here"

def run_market_intelligence():
    requests.post(
        "https://api.inlet.run/api/v1/agents/run",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "agent_role": "market_intelligence",
            "instruction": "Scan all monitored markets for regulatory changes in the last 24 hours.",
            "target_markets": ["US", "EU", "UK", "CA", "MY", "SG"],
        },
    )

scheduler = BlockingScheduler()
scheduler.add_job(run_market_intelligence, "cron", hour=6, minute=0)
scheduler.start()

Build a Custom Agent with MCP Tools

Use the MCP tool endpoints directly to build your own agent logic. This gives you full control over tool orchestration while leveraging Inlet's compliance data.

python
import anthropic
import requests

INLET_API = "https://api.inlet.run/api/v1"
API_KEY = "ink_live_your_key_here"

# Fetch available MCP tools
tools_resp = requests.get(
    f"{INLET_API}/mcp/tools",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
inlet_tools = tools_resp.json()["tools"]

# Use tools with Claude
client = anthropic.Anthropic()
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=4096,
    system="You are a regulatory compliance assistant.",
    tools=inlet_tools,
    messages=[{
        "role": "user",
        "content": "List all SKUs that are non-compliant in the EU market.",
    }],
)

# Execute tool calls via Inlet MCP
for block in response.content:
    if block.type == "tool_use":
        result = requests.post(
            f"{INLET_API}/mcp/execute",
            headers={"Authorization": f"Bearer {API_KEY}"},
            json={"tool": block.name, "arguments": block.input},
        )
        print(result.json())

Connect Agents to Slack Notifications

Inlet's Slack integration automatically posts agent escalations and pipeline completions to your configured channel. Install via Settings → Integrations → Slack.

Navi12:31 PM

Pipeline completed for Hydrating Serum SPF30 across US, EU. 12 actions taken, 0 escalations. Status: compliant.

Escalation Triggers

When an agent encounters a situation outside its confidence bounds, it fires an escalation trigger. The pipeline pauses and your team is notified.

TriggerDescriptionAgents
novel_ingredientIngredient not found in master database or has no regulatory data
formulation_analyst
confidence_below_thresholdAgent confidence score falls below the role-specific threshold
formulation_analystcompliance_analystquality_assurance
regulatory_ambiguityRegulation text is ambiguous or multiple interpretations are possible
compliance_analystregulatory_strategistlabel_reviewer
conflicting_regulationsTwo or more regulations contradict each other for the same ingredient or claim
compliance_analystmarket_intelligencequality_assurance
high_risk_marketTarget market has strict or rapidly changing regulatory requirements
regulatory_strategistmarket_intelligence
approval_gatePipeline stage requires explicit human sign-off before proceeding
submission_coordinatorquality_assurance
customer_requestCustomer has specifically requested manual review or custom handling
label_reviewersubmission_coordinator

Handling Escalations

When a pipeline enters the awaiting_human state, your team can review the escalation, make a decision, and resume the pipeline.

bash
# Resume a paused pipeline after human review
curl -X POST https://api.inlet.run/api/v1/agents/pipeline/runs/{run_id}/resume \
  -H "Authorization: Bearer ink_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "resolution": "approved",
    "notes": "Reviewed novel ingredient -- acceptable for EU market per SCCS opinion 2025/03."
  }'