Clojure is a functional programming language and all of its main data structures are immutable and persistent. That also includes vector.
Your example needs managing a state. Clojure provides several abstractions for this, out of which, I think atoms fit your use case best.
user=> (defrecord Item [name])
user.Item
user=> (def item-list (atom []))
#'user/item-list
user=> (defn add-item [db i] (swap! db #(conj % i)))
#'user/add-item
user=> (defn put-records []
(doseq [i (range 10)]
(add-item item-list (Item. "test"))))
#'user/put-records
user=> (put-records)
nil
user=> item-list
#<Atom@4204: [#user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"} #user.Item{:name "test"}]>