这个故事发生在20世纪50年代。解放初期,新中国欣欣向荣、百废待兴。
一九五六年五月二十七日,在北京公安局工作的龙飞接到一个消息。江南,一支考古队发掘出埋有大量人骨的新鲜墓地,而墓地所属地属于一所正在使用的监狱,此监狱在解放前是国民党的监狱,所以公安局高度怀疑发现的人骨是国民党监狱处决的犯人,其中大部分应该是政治犯。这些新中国的无名烈士的身份亟待辨认,以使他们的家属能够重新安葬他们祭奠他们。
龙飞熟悉江南监狱的名字,因为前恋人戴秀雅(代号鸽子)被捕后就关押在这里,这些无名的尸骨中会不会有戴秀雅?他心里带着对戴秀雅(代号鸽子)生死的无尽揣测,被派往江南监狱。
南下的列车上,龙飞回忆往昔,多年前和戴秀雅(代号鸽子)的情感过往历历在目。
龙飞恰巧碰到同一工作系统的女公安干警应山红,前来调查解放前地下组织领导人蒋仁(代号猫眼)被害一案。
龙飞与应山红结伴同行,来到监狱墓地。一番调查之后,龙飞无意中发现墓地里藏着七个竖井,其中五口井中填满人骨。他推断这就是寻找解放后遗留下来的潜伏特务的重要线索。更让龙飞意外的是,烈士蒋仁被捕的日期和戴秀雅(代号鸽子)被捕居然是同一天。龙飞将种种线索联系在一起,隐约觉得烈士蒋仁案件、墓地尸骨案件以及前恋人鸽子的下落有着某种特殊的关联。墓地的挖掘工作在进行,死者家属们来认领遗物,但七个竖井中的五具尸体辨认仍然没有进展。
与此同时,女干警应山红的调查工作也在紧锣密鼓地进行着。
应山红打探到重要线索,那就是当年和烈士“猫眼”一起被捕的还有三名中共女特工,他们分别是江灿英(代号孔雀)、孟丹(代号红隼)、以及戴秀雅(代号鸽子)。而出卖蒋仁的叛徒很有可能就在三人当中。面对应山红的质疑,想到鸽子可能是变节者,龙飞显得手足无措。
应山红找到了尚在监狱中服役的孔雀。孔雀回忆了当年她和红隼、鸽子三人为保护蒋仁所做的决定:由孔雀假叛变指认红隼是地下党领导人“猫眼”,这样红隼就会被处决,鸽子和蒋仁将会被释放。但出人意料的是,红隼被处决,随后蒋仁也被国民党杀害。那么到底是谁出卖了蒋仁呢?孔雀怀疑变节者是鸽子。因为在三位女特工中,自己和蒋仁是夫妇;红隼是热血沸腾的革命青年;而鸽子胆小爱哭、意志薄弱,最有叛变的可能。