Модель контрактных (договорных) сетей, разработанная в начале 80-х гг. Р. Смитом, предназначена для обеспечения координации агентов в системах распределенного решения задач. Каждый узел сети – это агент, способный выполнять определенные задачи. Если в процессе решения задачи один агент (заказчик) оказывается не в состоянии найти решение самостоятельно, то он обращается к другим агентам – потенциальным исполнителям. Обычно он это делает не сам, а через посредника, который называется агентом-менеджером (брокером). Вполне естественной является реализация агента-менеджера как мобильного агента, путешествующего по сети, в то время как все остальные агенты расположены в своих узлах. Поскольку на запрос заказчика обычно откликаются несколько агентов, организуется конкурс на выбор наиболее подходящего подрядчика. При этом используется механизм торгов. Из числа потенциальных агентов-исполнителей выбирается реальный исполнитель – подрядчик. В результате между заказчиком и победившим в конкурсе агентом заключается договор. Ему предшествует итеративный процесс переговоров между агентом-менеджером и агентом-подрядчиком по вопросу определения итоговой цены контракта.
Основное преимущество модели договорных сетей состоит в ее простоте и легкости реализации. К числу недостатков данной модели относятся, в первую очередь, отсутствие продуманного механизма выбора подрядчика и высокая загрузка коммуникационных каналов. Кроме того, модель договорных сетей не препятствует появлению агентов-посредников, которые выступают как спекулянты, покупая и перепродавая одну и ту же задачу несколько раз.
Известны различные усовершенствования модели Смита. Например, могут вводиться специальные промежуточные агенты-консультанты, роль которых состоит в оказании помощи координаторам при оповещении потенциальных исполнителей и обработке предложений. На сегодня самым удачным вариантом развития модели договорных сетей считается комбинированная модель Т. Сандхольма, где агентам-подрядчикам разрешено выполнять одновременно несколько задач. Для каждого подрядчика формируется пакет текущих задач, причем при добавлении к этому пакету новой задачи учитываются не только ее характеристики, но и уже принятые обязательства.