working draft: python agent