Get Started
RAI for Researchers
How to register an agent, mint an RAI, cite it in your paper, and make your research permanently callable.
Why mint an RAI?
When you register your research code as a CIFR agent and mint an RAI, you get:
- A permanent identifier that works in citations, URLs, and machine invocations
- A public landing page showing your agent's metadata, paper reference, and trust tier
- An invocation endpoint so other researchers can call your methodology with their own data
- A version history tracking every published version of your agent
- Citation tracking showing which other agents depend on yours
Step 1: Write your cifr.yml
Every CIFR agent has a cifr.yml contract that declares its identity, interface, and paper metadata:
agent:
name: resiliency-pds
rai: 18.cifr/2016.chanda.resiliency-pds
version: 1.0.0
description: >
Composite resiliency index for power distribution systems
with multiple microgrids, via AHP + percolation theory.
provenance_type: author_original
paper:
title: "Defining and Enabling Resiliency of Electric Distribution Systems..."
doi: "10.1109/TSG.2016.2561303"
year: 2016
venue: IEEE Transactions on Smart Grid
authors:
- name: Sayonsom Chanda
- name: Anurag K. Srivastava
inputs:
- name: topology
format: application/json
description: Network graph with bus/branch data
outputs:
- name: resiliency_index
format: application/json
description: R_total and sub-metrics
invoke: python main.py
Step 2: Choose your RAI
Your RAI follows the format 18.cifr/YYYY.author.slug:
- YYYY — the year your paper was published (or the year of first registration for unpublished work)
- author — your surname, lowercase
- slug — a short, descriptive kebab-case name for the work
Tips:
- Pick a slug that won't age badly:
resiliency-pdsis better than2024-results-final-v2 - If you have multiple papers on the same topic from the same year, distinguish them:
mnist-baselinevsmnist-augmented - Once minted, an RAI cannot be renamed — choose deliberately
Step 3: Register your agent
Submit your agent through CIFR:
- Go to cifr.org.in/agents/new and upload your code with the
cifr.yml - CIFR builds your code in an isolated container and runs the canonical execution
- If the run succeeds, your agent is registered and the RAI is live
Your RAI immediately resolves at:
https://rai.cifr.org.in/18.cifr/YYYY.author.slug
Step 4: Cite your RAI
In your paper, cite the RAI inline:
We implement the methodology described in this paper as a CIFR agent, available at
rai:18.cifr/2016.chanda.resiliency-pds. Researchers can invoke this agent with their own network topology data to reproduce our results or apply the method to new systems.
In a BibTeX entry:
@misc{chanda2016resiliency_agent,
title = {Resiliency-PDS CIFR Agent},
author = {Chanda, Sayonsom},
year = {2016},
note = {rai:18.cifr/2016.chanda.resiliency-pds},
url = {https://rai.cifr.org.in/18.cifr/2016.chanda.resiliency-pds}
}
Step 5: Compose with other agents
If your methodology builds on another paper's code, declare the dependency:
agent:
name: enhanced-resiliency
rai: 18.cifr/2026.kumar.enhanced-resiliency
depends_on:
- 18.cifr/2016.chanda.resiliency-pds
inputs:
- name: topology
format: application/json
- name: resiliency_baseline
format: application/json
from_agent:
rai: 18.cifr/2016.chanda.resiliency-pds
output: resiliency_index
inputs_from:
topology: topology
When your agent runs, CIFR automatically calls the upstream agent first and feeds its output into your agent. The citation graph builds itself.
Publishing new versions
Update your cifr.yml version field and re-register:
agent:
rai: 18.cifr/2016.chanda.resiliency-pds
version: 2.0.0 # bumped from 1.0.0
- The RAI stays the same — only the version changes
- Callers using
?version=1.0.0still get the old version - Callers without a version pin automatically get 2.0.0
- Both versions appear in the descriptor's
version_history