Вы можете довольно легко передать начальные значения записи, когда создаете ее через карту расширений:
(defrecord Foo [])
(def foo (Foo. nil {:bar 1 :baz 2}))
В свете этого я обычно создаю функцию конструктора, которая объединяет некоторые значения по умолчанию (которые вы можете переопределить по своему усмотрению):
(defn make-foo [values-map]
(let [default-values {:bar 1 :baz 2}]
(Foo. nil (merge default-values values-map))))
(make-foo {:fiz 3 :bar 8})
=> #:user.Foo{:fiz 3, :bar 8, :baz 2}