重构DBAgent