Prime Minister Narendra Modi and Chinese President Xi Jinping signed the agreement as they began the two-day Shanghai Cooperation Organisation (SCO) summit.
"Our talks will add further vigour to the India-China friendship," PM Modi said on Twitter, as the two countries try to reset troubled ties months after the Doklam standoff.
The SCO, launched in 2001 mainly to combat radical Islam and other security concerns across Central Asia, added India and Pakistan as members last year.
Under two deals signed on the sidelines of the SCO summit on Saturday, China will share hydrological data on the Brahmaputra river and amend certain requirements on Indian exports of rice other than the premium Basmati variety to China, India's foreign ministry spokesman, Raveesh Kumar, said on Twitter.
India said last year that China had not stuck to an agreement to share hydrological data, or scientific information on the movement, distribution and quality of water for the Brahmaputra river. China had cited "technological" reasons.
New Delhi has also been concerned about the rising trade deficit with China, and has sought greater access to the world's second-largest economy for products such as rice, rapeseed, soybeans and sugar.
The rice deal should help India finally crack the market in China, the world's biggest buyer of the commodity, traders said.
The United Nations Food and Agriculture Organisation estimates that China will buy 6.4 million tonnes of rice in 2018, while India will export a total of 11.9 million tonnes.
"Despite competitive prices, India was unable to export rice to China due to their phytosanitary norms," said a New Delhi based dealer with a global trading firm, referring to food standards as well as animal and plant hygiene.
"As the norms are going to change, India can easily export more than 1 million tonnes rice every year to China."
Get the latest election news, live updates and election schedule for Lok Sabha Elections 2019 on ndtv.com/elections. Like us on Facebook or follow us on Twitter and Instagram for updates from each of the 543 parliamentary seats for the 2019 Indian general elections. Election results will be out on May 23.